├── debian ├── compat ├── source │ └── format ├── files ├── postrm ├── postinst ├── control ├── install ├── copyright └── changelog ├── .envrc ├── data ├── icons │ ├── 8x8 │ │ └── touchpad-indicator.png │ ├── 14x14 │ │ └── touchpad-indicator.png │ ├── 16x16 │ │ └── touchpad-indicator.png │ ├── 32x32 │ │ └── touchpad-indicator.png │ ├── 48x48 │ │ └── touchpad-indicator.png │ ├── 96x96 │ │ └── touchpad-indicator.png │ ├── 1024x1024 │ │ └── touchpad-indicator.png │ ├── 128x128 │ │ └── touchpad-indicator.png │ ├── 192x192 │ │ └── touchpad-indicator.png │ ├── 256x256 │ │ └── touchpad-indicator.png │ ├── 512x512 │ │ └── touchpad-indicator.png │ ├── github.svg │ ├── facebook.svg │ ├── twitter.svg │ ├── google.svg │ ├── translate.svg │ ├── touchpad-indicator-light-enabled.svg │ └── touchpad-indicator-normal-enabled.svg ├── touchpad-indicator.desktop ├── 00_check_touchpad_status ├── touchpad-indicator-autostart.desktop ├── 00_check_touchpad_status_systemd └── schemas │ ├── org.mate.desktop.keybindings.touchpad-indicator.gschema.xml │ ├── org.cinnamon.desktop.keybindings.custom-keybindings.touchpad-indicator.gschema.xml │ └── org.gnome.settings-daemon.plugins.media-keys.custom-keybindings.touchpad-indicator.gschema.xml ├── .github └── workflows │ └── autoassign.yml ├── requirements.lock ├── requirements-dev.lock ├── pyproject.toml ├── LICENSE.txt ├── src ├── idleobject.py ├── change_touchpad_state.py ├── configurator.py ├── machine_information.py ├── utils.py ├── check_touchpad_status.py ├── dconfigurator.py ├── doitinbackground.py ├── keyboard_monitor.py ├── comun.py ├── device_list.py ├── xconfigurator.py └── watchdog.py ├── bin └── touchpad-indicator ├── .gitignore ├── README.md └── po ├── po.pot ├── mn.po ├── zh_HK.po ├── en.po ├── si.po ├── ka.po ├── lt.po ├── pl.po ├── sv.po ├── sr.po ├── cs.po └── zh_CN.po /debian/compat: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | source .venv/bin/activate 2 | -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (native) 2 | -------------------------------------------------------------------------------- /debian/files: -------------------------------------------------------------------------------- 1 | touchpad-indicator_2.2.3-ubuntu20.04.0_source.buildinfo utils extra 2 | -------------------------------------------------------------------------------- /data/icons/8x8/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/8x8/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/14x14/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/14x14/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/16x16/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/16x16/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/32x32/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/32x32/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/48x48/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/48x48/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/96x96/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/96x96/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/1024x1024/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/1024x1024/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/128x128/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/128x128/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/192x192/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/192x192/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/256x256/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/256x256/touchpad-indicator.png -------------------------------------------------------------------------------- /data/icons/512x512/touchpad-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/Touchpad-Indicator/HEAD/data/icons/512x512/touchpad-indicator.png -------------------------------------------------------------------------------- /debian/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sed -i -E 's/.*#TPI$//g' /usr/local/sbin/adduser.local 3 | for user in $(cat /etc/passwd | grep -v /bin/false | grep -v nologin | grep /home | cut -d : -f 1) 4 | do 5 | if [ `grep -q "input:.*${user}.*" /etc/group` ] 6 | then 7 | deluser $user input 8 | fi 9 | done 10 | -------------------------------------------------------------------------------- /data/touchpad-indicator.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Touchpad Indicator 3 | GenericName=Touchpad Indicator 4 | Exec=/usr/bin/touchpad-indicator 5 | TryExec=touchpad-indicator 6 | Icon=touchpad-indicator 7 | Type=Application 8 | Terminal=false 9 | StartupNotify=true 10 | Encoding=UTF-8 11 | Categories=Utility; 12 | X-Ubuntu-Gettext-Domain=touchpad-indicator 13 | Name[es]=Touchpad Indicator -------------------------------------------------------------------------------- /data/00_check_touchpad_status: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #copy to /etc/pm/sleep.d 3 | LOGFILE="/var/log/sleep.log" 4 | 5 | case "$1" in 6 | resume|thaw) 7 | echo "Resume normal from suspend at `date`" >> "$LOGFILE" 8 | /usr/bin/python3 /usr/share/touchpad-indicator/check_touchpad_status.py resume 9 | echo "Touchpad enabled" 10 | ;; 11 | esac 12 | -------------------------------------------------------------------------------- /.github/workflows/autoassign.yml: -------------------------------------------------------------------------------- 1 | name: Issue assignment 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | 8 | jobs: 9 | auto-assign: 10 | runs-on: ubuntu-latest 11 | permissions: 12 | issues: write 13 | steps: 14 | - name: 'Auto-assign issue' 15 | uses: pozil/auto-assign-issue@v2 16 | with: 17 | assignees: atareao 18 | numOfAssignee: 1 19 | allowSelfAssign: true 20 | -------------------------------------------------------------------------------- /data/touchpad-indicator-autostart.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Exec=/usr/bin/python3 /usr/bin/touchpad-indicator 4 | Hidden=false 5 | NoDisplay=false 6 | Name[es_ES]=Touchpad Indicator Autostart 7 | Name=Touchpad Indicator Autostart 8 | X-MATE-Autostart-Phase=Applications 9 | X-MATE-Autostart-Delay=2 10 | X-MATE-Autostart-enabled=true 11 | X-GNOME-Autostart-Phase=Applications 12 | X-GNOME-Autostart-Delay=2 13 | X-GNOME-Autostart-enabled=true 14 | -------------------------------------------------------------------------------- /debian/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for user in $(cat /etc/passwd | grep -v /bin/false | grep -v nologin | grep /home | cut -d : -f 1) 3 | do 4 | usermod -aG input $user 5 | done 6 | if [ ! -e "/usr/local/sbin/adduser.local" ] 7 | then 8 | echo "No existe" 9 | touch "/usr/local/sbin/adduser.local" 10 | echo "#!/bin/bash" > /usr/local/sbin/adduser.local 11 | chmod +x "/usr/local/sbin/adduser.local" 12 | fi 13 | echo 'usermod -aG input "${1:?}" #TPI' >> /usr/local/sbin/adduser.local 14 | -------------------------------------------------------------------------------- /requirements.lock: -------------------------------------------------------------------------------- 1 | # generated by rye 2 | # use `rye lock` or `rye sync` to update this lockfile 3 | # 4 | # last locked with the following flags: 5 | # pre: false 6 | # features: [] 7 | # all-features: false 8 | # with-sources: false 9 | # generate-hashes: false 10 | # universal: false 11 | 12 | -e file:. 13 | dbus-python==1.3.2 14 | # via touchpad-indicator 15 | evdev==1.7.1 16 | # via touchpad-indicator 17 | pycairo==1.27.0 18 | # via pygobject 19 | pygobject==3.50.0 20 | # via touchpad-indicator 21 | pyudev==0.24.3 22 | # via touchpad-indicator 23 | -------------------------------------------------------------------------------- /requirements-dev.lock: -------------------------------------------------------------------------------- 1 | # generated by rye 2 | # use `rye lock` or `rye sync` to update this lockfile 3 | # 4 | # last locked with the following flags: 5 | # pre: false 6 | # features: [] 7 | # all-features: false 8 | # with-sources: false 9 | # generate-hashes: false 10 | # universal: false 11 | 12 | -e file:. 13 | dbus-python==1.3.2 14 | # via touchpad-indicator 15 | evdev==1.7.1 16 | # via touchpad-indicator 17 | pycairo==1.27.0 18 | # via pygobject 19 | pygobject==3.50.0 20 | # via touchpad-indicator 21 | pyudev==0.24.3 22 | # via touchpad-indicator 23 | -------------------------------------------------------------------------------- /data/00_check_touchpad_status_systemd: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #copy to /etc/pm/sleep.d 3 | LOGFILE="/var/log/sleep.log" 4 | 5 | case $1/$2 in 6 | pre/*) 7 | echo "Going to $2..." 8 | # Place your pre suspend commands here, or `exit 0` if no pre suspend action required 9 | ;; 10 | post/*) 11 | echo "Waking up from $2..." 12 | # Place your post suspend (resume) commands here, or `exit 0` if no post suspend action required 13 | echo "Resume systemd from suspend at `date`" >> "$LOGFILE" 14 | /usr/bin/python3 /usr/share/touchpad-indicator/check_touchpad_status.py resume 15 | echo "Touchpad enabled" 16 | ;; 17 | esac 18 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "touchpad-indicator" 3 | version = "0.1.0" 4 | description = "Add your description here" 5 | authors = [ 6 | { name = "Lorenzo Carbonell =3.50.0", 10 | "dbus-python>=1.3.2", 11 | "pyudev>=0.24.3", 12 | "evdev>=1.7.1", 13 | ] 14 | readme = "README.md" 15 | requires-python = ">= 3.8" 16 | license = { text = "MIT" } 17 | 18 | [build-system] 19 | requires = ["hatchling"] 20 | build-backend = "hatchling.build" 21 | 22 | [tool.rye] 23 | managed = true 24 | dev-dependencies = [] 25 | 26 | [tool.hatch.metadata] 27 | allow-direct-references = true 28 | 29 | [tool.hatch.build.targets.wheel] 30 | packages = ["src/touchpad_indicator"] 31 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: touchpad-indicator 2 | Section: utils 3 | Priority: extra 4 | Maintainer: Lorenzo Carbonell Cerezo 5 | Build-Depends: debhelper (>= 9) 6 | Standards-Version: 3.9.4 7 | Homepage: http://www.atareao.es 8 | 9 | Package: touchpad-indicator 10 | Architecture: all 11 | Depends: ${misc:Depends}, ${python:Depends}, 12 | gir1.2-gtk-3.0, 13 | gir1.2-gdkpixbuf-2.0, 14 | gir1.2-appindicator3-0.1, 15 | gir1.2-notify-0.7, 16 | gir1.2-gconf-2.0, 17 | gir1.2-rsvg-2.0, 18 | python3-xlib, 19 | python3-pyudev, 20 | python3-dbus, 21 | python3-evdev, 22 | xinput 23 | Description: An indicator for the touchpad 24 | With touchpad-indicator you can enable or disable the touchpad, with shortcuts 25 | or by clicking on menu. Besides, it enables or disables the touchpad, when 26 | the computer returns from hibernation. 27 | -------------------------------------------------------------------------------- /data/schemas/org.mate.desktop.keybindings.touchpad-indicator.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | '' 6 | Binding for touchpad 7 | Binding for touchpad. 8 | 9 | 10 | '/usr/bin/python3 /usr/share/touchpad-indicator/change_touchpad_state.py' 11 | Command to change touchpad status 12 | Command to change touchpad status. 13 | 14 | 15 | 'touchpad-indicator' 16 | touchpad-indicator 17 | touchpad-indicator. 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | 11 | -------------------------------------------------------------------------------- /data/schemas/org.cinnamon.desktop.keybindings.custom-keybindings.touchpad-indicator.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | [] 6 | Binding for touchpad 7 | Binding for touchpad. 8 | 9 | 10 | '/usr/bin/python3 /usr/share/touchpad-indicator/change_touchpad_state.py' 11 | Command to change touchpad status 12 | Command to change touchpad status. 13 | 14 | 15 | 'touchpad-indicator' 16 | touchpad-indicator 17 | touchpad-indicator. 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /data/schemas/org.gnome.settings-daemon.plugins.media-keys.custom-keybindings.touchpad-indicator.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | '' 6 | Binding for touchpad 7 | Binding for touchpad. 8 | 9 | 10 | '/usr/bin/python3 /usr/share/touchpad-indicator/change_touchpad_state.py' 11 | Command to change touchpad status 12 | Command to change touchpad status. 13 | 14 | 15 | 'touchpad-indicator' 16 | touchpad-indicator 17 | touchpad-indicator. 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /debian/install: -------------------------------------------------------------------------------- 1 | bin/* /usr/bin 2 | debian/changelog /usr/share/touchpad-indicator 3 | src/*.py /usr/share/touchpad-indicator 4 | data/icons/*.svg /usr/share/touchpad-indicator/icons 5 | data/schemas/*.xml /usr/share/glib-2.0/schemas 6 | data/00_check_touchpad_status /etc/pm/sleep.d 7 | data/00_check_touchpad_status_systemd /usr/lib/systemd/system-sleep/ 8 | data/touchpad-indicator.desktop /usr/share/applications 9 | data/touchpad-indicator-autostart.desktop /usr/share/touchpad-indicator 10 | data/icons/touchpad-indicator.svg /usr/share/icons/hicolor/scalable/apps 11 | data/icons/8x8/*.png /usr/share/icons/hicolor/8x8/apps 12 | data/icons/16x16/*.png /usr/share/icons/hicolor/16x16/apps 13 | data/icons/32x32/*.png /usr/share/icons/hicolor/32x32/apps 14 | data/icons/48x48/*.png /usr/share/icons/hicolor/48x48/apps 15 | data/icons/96x96/*.png /usr/share/icons/hicolor/96x96/apps 16 | data/icons/128x128/*.png /usr/share/icons/hicolor/128x128/apps 17 | data/icons/192x192/*.png /usr/share/icons/hicolor/192x192/apps 18 | data/icons/256x256/*.png /usr/share/icons/hicolor/256x256/apps 19 | data/icons/512x512/*.png /usr/share/icons/hicolor/512x512/apps 20 | data/icons/1024x1024/*.png /usr/share/icons/hicolor/1024x1024/apps 21 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | Format: http://dep.debian.net/deps/dep5 2 | Upstream-Name: touchpad-indicator 3 | Source: http://www.atareao.es 4 | 5 | Files: * 6 | Copyright: 2010, 2018 Lorenzo Carbonell 7 | License: GPL-3.0+ 8 | 9 | Files: debian/*, watchdog.py, PreferencesManager.py 10 | Copyright: 2011 Miguel Angel Santamaría Rogado 11 | License: GPL-3.0+ 12 | 13 | License: GPL-3.0+ 14 | This program is free software: you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation, either version 3 of the License, or 17 | (at your option) any later version. 18 | . 19 | This package is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | . 24 | You should have received a copy of the GNU General Public License 25 | along with this program. If not, see . 26 | . 27 | On Debian systems, the complete text of the GNU General 28 | Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". 29 | -------------------------------------------------------------------------------- /src/idleobject.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | from gi.repository import GObject 23 | from gi.repository import GLib 24 | 25 | 26 | class IdleObject(GObject.GObject): 27 | """ 28 | Override GObject.GObject to always emit signals in the main thread 29 | by emmitting on an idle handler 30 | """ 31 | def __init__(self): 32 | GObject.GObject.__init__(self) 33 | 34 | def emit(self, *args): 35 | GLib.idle_add(GObject.GObject.emit, self, *args) 36 | -------------------------------------------------------------------------------- /bin/touchpad-indicator: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # -*- coding: UTF-8 -*- 3 | # 4 | # touchpad-Indicator launcher 5 | # 6 | # Copyright (C) 2011-2018 Lorenzo Carbonell Cerezo 7 | # lorenzo.carbonell.cerezo@gmail.com 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | # 22 | # 23 | # 24 | import os 25 | import sys 26 | 27 | if __name__ == '__main__': 28 | if __file__.startswith('/usr') or os.getcwd().startswith('/usr'): 29 | sys.path.insert(1, '/usr/share/touchpad-indicator') 30 | else: 31 | sys.path.insert(1, os.path.normpath( 32 | os.path.join(os.path.dirname(__file__), '../src'))) 33 | #################################################################### 34 | from touchpadindicator import main 35 | #################################################################### 36 | main() 37 | exit(0) 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | .hypothesis/ 47 | 48 | # Translations 49 | *.mo 50 | *.pot 51 | 52 | # Django stuff: 53 | *.log 54 | local_settings.py 55 | 56 | # Flask instance folder 57 | instance/ 58 | 59 | # Scrapy stuff: 60 | .scrapy 61 | 62 | # Sphinx documentation 63 | docs/_build/ 64 | 65 | # PyBuilder 66 | target/ 67 | 68 | # IPython Notebook 69 | .ipynb_checkpoints 70 | 71 | # pyenv 72 | .python-version 73 | 74 | # celery beat schedule file 75 | celerybeat-schedule 76 | 77 | # dotenv 78 | .env 79 | 80 | # virtualenv 81 | venv/ 82 | ENV/ 83 | 84 | # Spyder project settings 85 | .spyderproject 86 | 87 | # Rope project settings 88 | .ropeproject 89 | src/.mypy_cache/ 90 | debian/files 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Welcome to Touchpad-Indicator 👋

2 |

3 | 4 | 5 | Documentation 6 | 7 | 8 | Twitter: atareao 9 | 10 |

11 | 12 | > With Touchpad Indicator you can enable or disable the touchpad, with shortcuts or by clicking on menu. Besides, it enables or disables the touchpad, when the computer returns from hibernation. 13 | 14 | ### 🏠 [Homepage](https://www.atareao.es/aplicacion/touchpad-indicator-para-ubuntu/) 15 | 16 | ## Requirements 17 | 18 | Required dependencies 19 | 20 | ``` 21 | gir1.2-gtk-3.0, 22 | gir1.2-gdkpixbuf-2.0, 23 | gir1.2-appindicator3-0.1, 24 | gir1.2-notify-0.7, 25 | gir1.2-gconf-2.0, 26 | gir1.2-rsvg-2.0, 27 | python3-xlib, 28 | python3-pyudev, 29 | python3-dbus, 30 | xinput 31 | ``` 32 | 33 | ## Install from PPA 34 | 35 | ```sh 36 | sudo add-apt-repository ppa:atareao/atareao 37 | sudo apt update 38 | sudo apt install touchpad-indicator 39 | ``` 40 | 41 | ## Build it from source and install it after that 42 | 43 | ```sh 44 | git clone https://github.com/atareao/Touchpad-Indicator 45 | cd Touchpad-Indicator 46 | rm ./debian/source/format 47 | dpkg-buildpackage 48 | cd .. 49 | sudo dpkg -i touchpad-indicator_*_all.deb 50 | sudo apt-get install -f -y 51 | ``` 52 | 53 | ## Usage 54 | 55 | ```sh 56 | touchpad-indicator 57 | ``` 58 | 59 | ## Author 60 | 61 | 👤 **Lorenzo Carbonell** 62 | 63 | * Twitter: [@atareao](https://twitter.com/atareao) 64 | * Github: [@atareao](https://github.com/atareao) 65 | 66 | ## 🤝 Contributing 67 | 68 | Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/atareao/Touchpad-Indicator/issues). 69 | 70 | ## Show your support 71 | 72 | Give a ⭐️ if this project helped you! 73 | 74 | *** 75 | _This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_ 76 | -------------------------------------------------------------------------------- /src/change_touchpad_state.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import dbus 23 | from touchpad import Touchpad 24 | from configurator import Configuration 25 | 26 | bus = dbus.SessionBus() 27 | 28 | 29 | if __name__ == '__main__': 30 | try: 31 | touchpad_indicator_service = bus.get_object( 32 | 'es.atareao.TouchpadIndicator', '/es/atareao/TouchpadIndicator') 33 | change_state = touchpad_indicator_service.get_dbus_method( 34 | 'change_state', 'es.atareao.TouchpadIndicator') 35 | change_state() 36 | print('Touchpad-Indicator is working') 37 | except dbus.exceptions.DBusException as argument: 38 | print(argument) 39 | print('Touchpad-Indicator is not working') 40 | touchpad = Touchpad() 41 | status = touchpad.are_all_touchpad_enabled() 42 | if status: 43 | touchpad.disable_all_touchpads() 44 | else: 45 | touchpad.enable_all_touchpads() 46 | newstatus = touchpad.are_all_touchpad_enabled() 47 | if newstatus != status: 48 | configuration = Configuration() 49 | configuration.set('touchpad_enabled', newstatus) 50 | configuration.save() 51 | if newstatus: 52 | print('Touchpad is enabled') 53 | else: 54 | print('Touchpad is disabled') 55 | exit(0) 56 | -------------------------------------------------------------------------------- /src/configurator.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import codecs 23 | import os 24 | import json 25 | import comun 26 | 27 | 28 | class Configuration(object): 29 | def __init__(self): 30 | self.params = comun.PARAMS 31 | self.read() 32 | 33 | def get(self, key): 34 | try: 35 | return self.params[key] 36 | except KeyError as e: 37 | print(e) 38 | self.params[key] = comun.PARAMS[key] 39 | return self.params[key] 40 | 41 | def set(self, key, value): 42 | self.params[key] = value 43 | 44 | def reset(self): 45 | if os.path.exists(comun.CONFIG_FILE): 46 | os.remove(comun.CONFIG_FILE) 47 | self.params = comun.PARAMS 48 | self.save() 49 | 50 | def set_defaults(self): 51 | self.params = comun.PARAMS 52 | self.save() 53 | 54 | def read(self): 55 | try: 56 | f = codecs.open(comun.CONFIG_FILE, 'r', 'utf-8') 57 | self.params = json.loads(f.read()) 58 | f.close() 59 | except Exception as e: 60 | print(e) 61 | self.set_defaults() 62 | 63 | def save(self): 64 | if not os.path.exists(comun.CONFIG_APP_DIR): 65 | os.makedirs(comun.CONFIG_APP_DIR) 66 | f = codecs.open(comun.CONFIG_FILE, 'w', 'utf-8') 67 | f.write(json.dumps(self.params)) 68 | f.close() 69 | -------------------------------------------------------------------------------- /src/machine_information.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import re 23 | import shlex 24 | import subprocess 25 | 26 | 27 | def run(comando): 28 | args = shlex.split(comando) 29 | p = subprocess.Popen(args, bufsize=10000, stdout=subprocess.PIPE) 30 | valor = p.communicate()[0].decode('utf-8') 31 | return valor 32 | 33 | 34 | class DistroInfo(): 35 | def __init__(self): 36 | self.architecture = run('uname -m') 37 | test_str = run('lsb_release -a') 38 | regex = r'Distributor\s*ID:\s*(.*)\nDescription:\s*(.*)\nRelease:\s*(.*)\nCodename:\s*(.*)' 39 | matches = re.search(regex, test_str, re.M | re.I) 40 | if matches is not None: 41 | self.distributor = matches.group(1) 42 | self.description = matches.group(2) 43 | self.release = matches.group(3) 44 | self.codename = matches.group(4) 45 | else: 46 | self.distributor = '' 47 | self.description = '' 48 | self.release = '' 49 | self.codename = '' 50 | 51 | def __str__(self): 52 | information = 'Distributor: %s\n' % self.distributor 53 | information += 'Description: %s\n' % self.description 54 | information += 'Release: %s\n' % self.release 55 | information += 'Codename: %s\n' % self.codename 56 | information += 'Architecture: %s' % self.architecture 57 | return information 58 | 59 | 60 | def get_information(): 61 | information = '#####################################################\n' 62 | information += str(DistroInfo()) 63 | information += '#####################################################\n' 64 | return information 65 | 66 | 67 | if __name__ == '__main__': 68 | print(get_information()) 69 | exit(0) 70 | -------------------------------------------------------------------------------- /src/utils.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import subprocess 23 | import shlex 24 | from os.path import isfile, join, basename 25 | import glob 26 | 27 | 28 | def get_version(): 29 | command = 'lsb_release -c' 30 | po = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE, 31 | stderr=subprocess.PIPE, shell=False) 32 | out, err = po.communicate() 33 | return_code = po.wait() 34 | if return_code == 0: 35 | return out.decode().split('Codename:\t')[1].replace('\n', '') 36 | return None 37 | 38 | 39 | def is_package_installed(package_name): 40 | command = 'dpkg-query --show --showformat="${db:Status-Status}\n" "%s"' % ( 41 | package_name) 42 | po = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE, 43 | stderr=subprocess.PIPE, shell=False) 44 | out, err = po.communicate() 45 | return_code = po.wait() 46 | if return_code == 0: 47 | return True 48 | return False 49 | 50 | 51 | def is_ppa_repository_added(repository): 52 | if repository.find('/') and repository.startswith('ppa:'): 53 | repository = repository[4:] 54 | firstpart, secondpart = repository.split('/') 55 | mypath = '/etc/apt/sources.list.d' 56 | onlyfiles = [basename(f).replace('.list', '') for f in 57 | glob.glob(join(mypath, '*.list')) 58 | if isfile(join(mypath, f))] 59 | for element in onlyfiles: 60 | if element.startswith(firstpart) and \ 61 | element[len(firstpart):].find(secondpart) > -1: 62 | return True 63 | return False 64 | 65 | 66 | if __name__ == '__main__': 67 | print(is_package_installed('my-weather-indicator')) 68 | print(is_package_installed('xserver-xorg-input-libinput')) 69 | print(get_version()) 70 | print(is_ppa_repository_added('ppa:atareao/atareao')) 71 | print(exists_psmouse()) -------------------------------------------------------------------------------- /data/icons/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 21 | image/svg+xml 22 | 24 | 25 | 26 | 27 | 28 | 30 | 50 | 54 | 55 | -------------------------------------------------------------------------------- /src/check_touchpad_status.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import dbus 23 | from touchpad import Touchpad 24 | from configurator import Configuration 25 | import sys 26 | 27 | if __name__ == '__main__': 28 | try: 29 | bus = dbus.SessionBus() 30 | touchpad_indicator_service = bus.get_object( 31 | 'es.atareao.TouchpadIndicator', '/es/atareao/TouchpadIndicator') 32 | if len(sys.argv) > 1 and sys.argv[1] == 'resume': 33 | print(sys.argv) 34 | check_status_from_resume = \ 35 | touchpad_indicator_service.get_dbus_method( 36 | 'check_status_from_resume', 'es.atareao.TouchpadIndicator') 37 | check_status_from_resume() 38 | else: 39 | check_status = touchpad_indicator_service.get_dbus_method( 40 | 'check_status', 'es.atareao.TouchpadIndicator') 41 | check_status() 42 | print('Touchpad-Indicator is working') 43 | except dbus.exceptions.DBusException as argument: 44 | print(argument) 45 | touchpad = Touchpad() 46 | configuration = Configuration() 47 | touchpad_enabled = configuration.get('touchpad_enabled') 48 | touchpad_indicator_working = configuration.get('is_working') 49 | status = touchpad.are_all_touchpad_enabled() 50 | if touchpad_indicator_working: 51 | print('Touchpad-Indicator is working') 52 | if touchpad_enabled != status: 53 | if touchpad_enabled: 54 | touchpad.enable_all_touchpads() 55 | else: 56 | touchpad.disable_all_touchpads() 57 | newstatus = touchpad.are_all_touchpad_enabled() 58 | if status != newstatus: 59 | configuration.set('touchpad_enabled', newstatus) 60 | configuration.save() 61 | status = newstatus 62 | else: 63 | print('Touchpad-Indicator is not working') 64 | if status: 65 | print('Touchpad is enabled') 66 | else: 67 | print('Touchpad is disabled') 68 | exit(0) 69 | -------------------------------------------------------------------------------- /data/icons/facebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml -------------------------------------------------------------------------------- /src/dconfigurator.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import gi 23 | try: 24 | gi.require_version('Gio', '2.0') 25 | gi.require_version('GLib', '2.0') 26 | except Exception as e: 27 | print(e) 28 | exit(-1) 29 | from gi.repository import Gio 30 | from gi.repository import GLib 31 | 32 | 33 | class DConfManager(object): 34 | def __init__(self, key): 35 | self.setting = Gio.Settings(key) 36 | 37 | def get_keys(self): 38 | keys = [] 39 | for entry in self.setting.list_keys(): 40 | keys.append(entry) 41 | return keys 42 | 43 | def set_value(self, entry, value): 44 | if type(value) == str: 45 | self.setting.set_value(entry, GLib.Variant('s', value)) 46 | return True 47 | elif type(value) == bool: 48 | self.setting.set_value(entry, GLib.Variant('b', value)) 49 | return True 50 | elif type(value) == int: 51 | self.setting.set_value(entry, GLib.Variant('i', value)) 52 | return True 53 | elif type(value) == list: 54 | self.setting.set_value(entry, GLib.Variant('as', value)) 55 | return True 56 | return False 57 | 58 | def get_value(self, entry): 59 | value = self.setting.get_value(entry) 60 | if value.get_type_string().endswith('as'): 61 | return self.setting.get_strv(entry) 62 | elif value.get_type_string().endswith('s'): 63 | return self.setting.get_string(entry) 64 | elif value.get_type_string().endswith('b'): 65 | return self.setting.get_boolean(entry) 66 | elif value.get_type_string().endswith('i'): 67 | return self.setting.get_int(entry) 68 | return None 69 | 70 | def get_values(self): 71 | values = [] 72 | for entry in self.setting.list_keys(): 73 | values.append(self.get_value(entry)) 74 | return values 75 | 76 | def get_children(self): 77 | print(self.setting.list_children()) 78 | 79 | 80 | if __name__ == '__main__': 81 | dcm = DConfManager('org.mate.SettingsDaemon.plugins.media-keys') 82 | for key in dcm.get_keys(): 83 | print(key, dcm.get_value(key)) 84 | dcm = DConfManager('org.mate.desktop.keybindings.touchpad-indicator') 85 | print('action', dcm.get_value('action')) 86 | print('binding', dcm.get_value('binding')) 87 | print('name', dcm.get_value('name')) 88 | -------------------------------------------------------------------------------- /data/icons/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xml -------------------------------------------------------------------------------- /src/doitinbackground.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import gi 23 | try: 24 | gi.require_version('GObject', '2.0') 25 | gi.require_version('GLib', '2.0') 26 | except Exception as e: 27 | print(e) 28 | exit(-1) 29 | from gi.repository import GObject 30 | from gi.repository import GLib 31 | from idleobject import IdleObject 32 | from threading import Thread 33 | import subprocess 34 | import os 35 | import shlex 36 | import time 37 | 38 | 39 | class DoItInBackground(IdleObject, Thread): 40 | __gsignals__ = { 41 | 'started': (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, (int, )), 42 | 'ended': (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, (bool,)), 43 | 'done_one': (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, 44 | (str,)), 45 | } 46 | 47 | def __init__(self, printer, commands): 48 | IdleObject.__init__(self) 49 | Thread.__init__(self) 50 | self.printer = printer 51 | self.commands = commands 52 | self.stopit = False 53 | self.ok = True 54 | self.daemon = True 55 | 56 | def execute(self, command): 57 | GLib.idle_add(self.printer.feed, ('\n\r$ %s\n\r' % (command)).encode()) 58 | env = os.environ.copy() 59 | answer = '' 60 | try: 61 | po = subprocess.Popen(shlex.split(command), 62 | shell=False, 63 | stdout=subprocess.PIPE, 64 | stderr=subprocess.PIPE, 65 | universal_newlines=True, 66 | env=env) 67 | for stdout_line in iter(po.stdout.readline, ''): 68 | answer += stdout_line 69 | stdout_line = stdout_line.replace('\n', '\n\r') 70 | GLib.idle_add(self.printer.feed, stdout_line.encode()) 71 | return_code = po.wait() 72 | if return_code: 73 | output = 'Error: %s\n\r' % (return_code) 74 | output = output + po.stderr.read().replace('\n', '\n\r') +\ 75 | '\n\r' 76 | GLib.idle_add(self.printer.feed, output.encode()) 77 | self.ok = False 78 | except OSError as e: 79 | print('Execution failed:', e) 80 | self.ok = False 81 | 82 | def stop(self, *args): 83 | self.stopit = True 84 | 85 | def run(self): 86 | self.emit('started', len(self.commands)) 87 | for index, command in enumerate(self.commands): 88 | if self.stopit is True: 89 | break 90 | self.execute(command) 91 | print(command) 92 | self.emit('done_one', command) 93 | time.sleep(1) 94 | self.emit('ended', self.ok) 95 | 96 | 97 | if __name__ == '__main__': 98 | from progreso import Progreso 99 | 100 | class testclass(): 101 | def __init__(self): 102 | pass 103 | 104 | def feed(self, astring): 105 | print(astring.decode()) 106 | 107 | tc = testclass() 108 | commands = ['ls', 'ls -la', 'ls'] 109 | diib = DoItInBackground(tc, commands) 110 | progreso = Progreso('Adding new ppa', None, len(commands)) 111 | diib.connect('done_one', progreso.increase) 112 | diib.connect('ended', progreso.close) 113 | progreso.connect('i-want-stop', diib.stop) 114 | diib.start() 115 | -------------------------------------------------------------------------------- /src/keyboard_monitor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # 8 | # This program is free software: you can redistribute it and/or modify 9 | # it under the terms of the GNU General Public License as published by 10 | # the Free Software Foundation, either version 3 of the License, or 11 | # (at your option) any later version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU General Public License 19 | # along with this program. If not, see . 20 | 21 | import gi 22 | try: 23 | gi.require_version('GObject', '2.0') 24 | except Exception as e: 25 | print(e) 26 | exit(-1) 27 | from gi.repository import GObject 28 | from threading import Thread 29 | import evdev 30 | from evdev import ecodes 31 | import selectors 32 | from selectors import DefaultSelector, EVENT_READ 33 | import time 34 | 35 | KEY_PRESSED = 1 36 | KEY_RELEASED = 0 37 | KEY_NONE = -1 38 | 39 | ignore_key_codes = [ecodes.KEY_LEFTCTRL, ecodes.KEY_LEFTSHIFT, 40 | ecodes.KEY_RIGHTSHIFT, ecodes.KEY_LEFTALT, 41 | ecodes.KEY_RIGHTCTRL, ecodes.KEY_RIGHTALT, 42 | ecodes.KEY_LEFTMETA, ecodes.KEY_HOME, ecodes.KEY_UP, 43 | ecodes.KEY_PAGEUP, ecodes.KEY_LEFT, ecodes.KEY_RIGHT, 44 | ecodes.KEY_END, ecodes.KEY_DOWN, ecodes.KEY_PAGEDOWN, 45 | ecodes.KEY_MUTE, ecodes.KEY_VOLUMEDOWN, 46 | ecodes.KEY_VOLUMEUP, ecodes.KEY_PAUSE] 47 | 48 | def get_keyboards(): 49 | keyboards = [] 50 | devices = [evdev.InputDevice(path) for path in evdev.list_devices()] 51 | for device in devices: 52 | evDevDevice = evdev.InputDevice(device) 53 | caps = evDevDevice.capabilities() 54 | if ecodes.EV_KEY in caps and ecodes.KEY_ESC in caps[ecodes.EV_KEY]: 55 | keyboards.append(evDevDevice) 56 | return keyboards 57 | 58 | class KeyboardMonitor(Thread, GObject.GObject): 59 | __gsignals__ = { 60 | 'key_pressed': (GObject.SIGNAL_RUN_FIRST, None, ()), 61 | 'key_released': (GObject.SIGNAL_RUN_FIRST, None, ()), 62 | } 63 | 64 | def __init__(self, elapsed_time): 65 | Thread.__init__(self) 66 | GObject.GObject.__init__(self) 67 | self.daemon = True 68 | 69 | self.elapsed_time = float(elapsed_time)/1000.0 70 | self.last_keypress = 0 71 | self.last_emited = '' 72 | 73 | self.work = True 74 | self.on = False 75 | 76 | def update_last_keypress(self, event): 77 | if event.type == ecodes.EV_KEY and not event.code in ignore_key_codes: 78 | self.last_keypress = event.timestamp() 79 | 80 | def run(self): 81 | selector = selectors.DefaultSelector() 82 | for keyboard in get_keyboards(): 83 | selector.register(keyboard, selectors.EVENT_READ) 84 | while self.work: 85 | if self.last_emited != 'key_released' and self.on: 86 | self.emit('key_released') 87 | self.last_emited = 'key_released' 88 | for key, mask in selector.select(): 89 | device = key.fileobj 90 | while True: # we will stay in this loop until we can enable the touchpad again 91 | try: 92 | for event in device.read(): 93 | self.update_last_keypress(event) 94 | except BlockingIOError: # this will be raised by device. read() if there is no more event to read 95 | pass 96 | timeToSleep = (self.last_keypress + self.elapsed_time) - time.time() 97 | if timeToSleep <= 0.005: # you can set this to 0, but that may result in unnecessarily short (and imperceptible) sleep times. 98 | # touchpad can be enabled again, so break loop. 99 | break 100 | else: 101 | # disable touchpad and wait until we need to check next. disableTouchpad() takes care of only invoking xinput if necessary. 102 | if self.last_emited != 'key_pressed' and self.on: 103 | self.emit('key_pressed') 104 | self.last_emited = 'key_pressed' 105 | print(timeToSleep) 106 | time.sleep(timeToSleep) 107 | 108 | def end(self): 109 | self.work = False 110 | 111 | def is_on(self): 112 | return self.on 113 | 114 | def set_on(self, on): 115 | self.on = on 116 | -------------------------------------------------------------------------------- /src/comun.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import os 23 | import sys 24 | import locale 25 | import gettext 26 | 27 | USRDIR = '/usr' 28 | 29 | 30 | def is_package(): 31 | return (__file__.startswith(USRDIR) or os.getcwd().startswith(USRDIR)) 32 | 33 | 34 | APPNAME = 'Touchpad Indicator' 35 | APP = 'touchpad-indicator' 36 | APPCONF = APP + '.conf' 37 | 38 | 39 | PARAMS = { 40 | 'first-time': True, 41 | 'version': '', 42 | 'is_working': False, 43 | 'autostart': False, 44 | 'on_mouse_plugged': False, 45 | 'on_start': 1, 46 | 'on_end': 1, 47 | 'disable_on_typing': False, 48 | 'interval': 800, 49 | 'start_hidden': False, 50 | 'show_notifications': True, 51 | 'theme': 'light', 52 | 'touchpad_enabled': True, 53 | 'natural_scrolling': True, 54 | 'speed': 0.0, 55 | 'tapping': True, 56 | 'two_finger_scrolling': True, 57 | 'edge_scrolling': False, 58 | 'cicular_scrolling': True, 59 | 'right-top-corner': 0, 60 | 'right-bottom-corner': 0, 61 | 'left-top-corner': 0, 62 | 'left-bottom-corner': 0, 63 | 'one-finger-tap': 0, 64 | 'two-finger-tap': 0, 65 | 'three-finger-tap': 0, 66 | 'faulty-devices' : ['11/2/a/0', # TPPS/2 IBM TrackPoint 67 | '11/2/5/7326', # ImPS/2 ALPS GlidePoint 68 | '11/2/1/0', 69 | '11/2/6/0', # ImExPS/2 70 | ] 71 | } 72 | 73 | # check if running from source 74 | STATUS_ICON = {} 75 | if is_package(): 76 | ROOTDIR = '/usr/share/' 77 | LANGDIR = os.path.join(ROOTDIR, 'locale-langpack') 78 | APPDIR = os.path.join(ROOTDIR, APP) 79 | AUTOSTART_SOURCE_DIR = APPDIR 80 | ICONDIR = os.path.join(APPDIR, 'icons') 81 | SOCIALDIR = os.path.join(APPDIR, 'social') 82 | CHANGELOG = os.path.join(APPDIR, 'changelog') 83 | else: 84 | ROOTDIR = os.path.dirname(__file__) 85 | LANGDIR = os.path.normpath(os.path.join(ROOTDIR, '../po')) 86 | APPDIR = ROOTDIR 87 | AUTOSTART_SOURCE_DIR = os.path.normpath(os.path.join(APPDIR, '../data')) 88 | ICONDIR = os.path.normpath(os.path.join(APPDIR, '../data/icons')) 89 | DEBIANDIR = os.path.normpath(os.path.join(ROOTDIR, '../debian')) 90 | CHANGELOG = os.path.join(DEBIANDIR, 'changelog') 91 | 92 | ICON = os.path.join(ICONDIR, 'touchpad-indicator-normal-enabled.svg') 93 | STATUS_ICON['normal'] = (os.path.join(ICONDIR, 94 | 'touchpad-indicator-normal-enabled.svg'), 95 | os.path.join(ICONDIR, 96 | 'touchpad-indicator-normal-disabled.svg')) 97 | STATUS_ICON['light'] = (os.path.join(ICONDIR, 98 | 'touchpad-indicator-light-enabled.svg'), 99 | os.path.join(ICONDIR, 100 | 'touchpad-indicator-light-disabled.svg')) 101 | STATUS_ICON['dark'] = (os.path.join(ICONDIR, 102 | 'touchpad-indicator-dark-enabled.svg'), 103 | os.path.join(ICONDIR, 104 | 'touchpad-indicator-dark-disabled.svg')) 105 | 106 | 107 | CONFIG_DIR = os.path.join(os.path.expanduser('~'), '.config') 108 | CONFIG_APP_DIR = os.path.join(CONFIG_DIR, APP) 109 | CONFIG_FILE = os.path.join(CONFIG_APP_DIR, APPCONF) 110 | 111 | AUTOSTART_DIR = os.path.join(CONFIG_DIR, 'autostart') 112 | FILE_AUTO_START_NAME = 'touchpad-indicator-autostart.desktop' 113 | FILE_AUTO_START_SRC = os.path.join(AUTOSTART_SOURCE_DIR, FILE_AUTO_START_NAME) 114 | FILE_AUTO_START = os.path.join(AUTOSTART_DIR, FILE_AUTO_START_NAME) 115 | WATCHDOG = os.path.join(APPDIR, 'watchdog.py') 116 | 117 | f = open(CHANGELOG, 'r') 118 | line = f.readline() 119 | f.close() 120 | pos = line.find('(') 121 | posf = line.find(')', pos) 122 | VERSION = line[pos + 1: posf].strip() 123 | if not is_package(): 124 | VERSION = VERSION + '-src' 125 | 126 | try: 127 | current_locale, encoding = locale.getdefaultlocale() 128 | language = gettext.translation(APP, LANGDIR, [current_locale]) 129 | language.install() 130 | print(language) 131 | if sys.version_info[0] == 3: 132 | _ = language.gettext 133 | else: 134 | _ = language.ugettext 135 | except Exception as e: 136 | print(e) 137 | _ = str 138 | -------------------------------------------------------------------------------- /src/device_list.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import os 23 | import machine_information 24 | import comun 25 | import syslog 26 | try: 27 | import pyudev 28 | except Exception as e: 29 | print(e, 'Error: no pyudev installed.') 30 | 31 | FILEOUTPUT = os.path.join(os.environ['HOME'], 'device_list.txt') 32 | 33 | 34 | def print_device_attrib(Device, fileoutput=None): 35 | if Device: 36 | for key in Device.keys(): 37 | print('{0} -> {1}'.format(key, Device[key])) 38 | sys_name = Device.sys_name 39 | if not sys_name: 40 | sys_name = '' 41 | sys_number = Device.sys_number 42 | if not sys_number: 43 | sys_number = '' 44 | print('------------------------------------------------------') 45 | print('sys_name: ' + sys_name) 46 | print('sys_number: ' + sys_number) 47 | for child in Device.children: 48 | child_sys_name = child.sys_name 49 | if not child_sys_name: 50 | child_sys_name = '' 51 | child_sys_number = child.sys_number 52 | if not child_sys_number: 53 | child_sys_number = '' 54 | print('%s: %s' % (child_sys_name, child_sys_number)) 55 | if fileoutput is not None: 56 | fileoutput.write('---------------------------------------------\n') 57 | fileoutput.write('sys_name: ' + sys_name + '\n') 58 | fileoutput.write('sys_number: ' + sys_number + '\n') 59 | for child in Device.children: 60 | child_sys_name = child.sys_name 61 | if not child_sys_name: 62 | child_sys_name = '' 63 | child_sys_number = child.sys_number 64 | if not child_sys_number: 65 | child_sys_number = '' 66 | fileoutput.write('%s: %s\n' % (child_sys_name, 67 | child_sys_number)) 68 | 69 | 70 | def print_devices(kind, context, fileoutput=None): 71 | if kind == 'MOUSE': 72 | search = '---------------MICE----------------' 73 | devices_list = context.list_devices(subsystem='input', 74 | ID_INPUT_MOUSE=True) 75 | elif kind == 'TOUCHPAD': 76 | search = '-------------TOUCHPADS-------------' 77 | devices_list = context.list_devices(subsystem='input', 78 | ID_INPUT_TOUCHPAD=True) 79 | else: 80 | search = '-----------OTHER DEVICES-----------' 81 | devices_list = context.list_devices(subsystem='input') 82 | print('\n\n') 83 | print(search) 84 | for device in devices_list: 85 | print('device: ' + device.sys_name) 86 | print('device number: ' + str(device.sys_number)) 87 | try: 88 | print('parent name: ' + device.parent['NAME']) 89 | print('parent attributes:') 90 | print_device_attrib(device.parent) 91 | except Exception as e: 92 | print(e, device.sys_name + ' has no parent') 93 | print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') 94 | print('device atributes:') 95 | print_device_attrib(device) 96 | if fileoutput is not None: 97 | fileoutput.write('\n\n') 98 | fileoutput.write(search + '\n') 99 | for device in devices_list: 100 | fileoutput.write('device: ' + device.sys_name + '\n') 101 | fileoutput.write('device number: ' + str(device.sys_number) + '\n') 102 | try: 103 | fileoutput.write('parent name: ' + device.parent['NAME'] + 104 | '\n') 105 | fileoutput.write('parent attributes:\n') 106 | print_device_attrib(device.parent, fileoutput) 107 | except Exception as e: 108 | fileoutput.write('Error: ' + str(e) + device.sys_name + ' has no parent\n') 109 | fileoutput.write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n') 110 | fileoutput.write('device atributes:\n') 111 | print_device_attrib(device, fileoutput) 112 | 113 | 114 | def header(fileoutput): 115 | fileoutput.write('#####################################################\n') 116 | fileoutput.write(machine_information.get_information()) 117 | fileoutput.write('Touchpad-Indicator version: %s\n' % comun.VERSION) 118 | fileoutput.write('#####################################################\n') 119 | 120 | 121 | def list(): 122 | context = pyudev.Context() 123 | context.log_priority = syslog.LOG_EMERG 124 | fileoutput = open(FILEOUTPUT, 'w') 125 | header(fileoutput) 126 | print_devices('MOUSE', context, fileoutput) 127 | print_devices('TOUCHPAD', context, fileoutput) 128 | print_devices('OTHER', context, fileoutput) 129 | fileoutput.close() 130 | 131 | 132 | if __name__ == "__main__": 133 | list() 134 | exit(0) 135 | -------------------------------------------------------------------------------- /data/icons/google.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | image/svg+xmlLayer 1 -------------------------------------------------------------------------------- /data/icons/translate.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 49 | 51 | 59 | 62 | 66 | 67 | 74 | 77 | 81 | 82 | 89 | 92 | 96 | 97 | 104 | 107 | 111 | 112 | 120 | 123 | 127 | 128 | 129 | 133 | 138 | 143 | 146 | 151 | 156 | 157 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /src/xconfigurator.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import re 23 | import os 24 | import subprocess 25 | from subprocess import Popen, PIPE 26 | 27 | 28 | XFCONFQUERY = '/usr/bin/xfconf-query' 29 | 30 | 31 | def xfconfquery_exists(): 32 | return os.path.exists(XFCONFQUERY) 33 | 34 | 35 | def is_running(process): 36 | # From http://www.bloggerpolis.com/2011/05/\ 37 | # how-to-check-if-a-process-is-running-using-python/ 38 | # and http://richarddingwall.name/2009/06/18/\ 39 | # windows-equivalents-of-ps-and-kill-commands/ 40 | try: # Linux/Unix 41 | s = subprocess.Popen(["ps", "axw"], stdout=subprocess.PIPE) 42 | except Exception as e: # Windows 43 | print(e) 44 | s = subprocess.Popen(["tasklist", "/v"], stdout=subprocess.PIPE) 45 | for x in s.stdout: 46 | if re.search(process, x.decode()): 47 | return True 48 | return False 49 | 50 | 51 | def get_desktop_environment(): 52 | desktop_session = os.environ.get("DESKTOP_SESSION") 53 | # easier to match if we doesn't have to deal with caracter cases 54 | if desktop_session is not None: 55 | desktop_session = desktop_session.lower() 56 | if desktop_session in ["gnome", "unity", "cinnamon", "mate", 57 | "budgie-desktop", "xfce4", "lxde", "fluxbox", 58 | "blackbox", "openbox", "icewm", "jwm", 59 | "afterstep", "trinity", "kde"]: 60 | return desktop_session 61 | # ## Special cases ## 62 | # Canonical sets $DESKTOP_SESSION to Lubuntu rather than 63 | # LXDE if using LXDE. 64 | # There is no guarantee that they will not do the same with 65 | # the other desktop environments. 66 | elif "xfce" in desktop_session or\ 67 | desktop_session.startswith("xubuntu"): 68 | return "xfce4" 69 | elif desktop_session.startswith("ubuntu"): 70 | return "unity" 71 | elif desktop_session.startswith("lubuntu"): 72 | return "lxde" 73 | elif desktop_session.startswith("kubuntu"): 74 | return "kde" 75 | elif desktop_session.startswith("razor"): # e.g. razorkwin 76 | return "razor-qt" 77 | elif desktop_session.startswith("wmaker"): # eg. wmaker-common 78 | return "windowmaker" 79 | if os.environ.get('KDE_FULL_SESSION') == 'true': 80 | return "kde" 81 | elif os.environ.get('GNOME_DESKTOP_SESSION_ID'): 82 | if "deprecated" not in os.environ.get( 83 | 'GNOME_DESKTOP_SESSION_ID'): 84 | return "gnome2" 85 | # From http://ubuntuforums.org/showthread.php?t=652320 86 | elif is_running("xfce-mcs-manage"): 87 | return "xfce4" 88 | elif is_running("ksmserver"): 89 | return "kde" 90 | return "unknown" 91 | 92 | 93 | def getoutput(cmd): 94 | val = Popen(cmd, shell=True, stdout=PIPE).communicate()[0].decode("utf-8") 95 | return val.rstrip().lstrip() 96 | 97 | 98 | class XFCEConfiguration: 99 | def __init__(self, channel): 100 | self.channel = channel 101 | 102 | def get_keys(self): 103 | out = getoutput('xfconf-query -c %s -l' % self.channel) 104 | keys = [] 105 | for key in out.split('\n'): 106 | if '\override' not in key: 107 | key = key.rstrip().lstrip() 108 | value = self.get_value(key) 109 | keys.append({'key': key, 'value': value}) 110 | return keys 111 | 112 | def set_property(self, property, value): 113 | val = getoutput('xfconf-query -c %s --create --property "%s" \ 114 | --set "%s" --type string' % (self.channel, property, value)) 115 | return val 116 | 117 | def reset_property(self, property): 118 | val = getoutput('xfconf-query -c %s --reset --property "%s"' % ( 119 | self.channel, property)) 120 | return val 121 | 122 | def get_value(self, property): 123 | if len(property) > 0: 124 | val = getoutput('xfconf-query -c %s --property "%s"' % ( 125 | self.channel, property)) 126 | return val 127 | return None 128 | 129 | def search_for_value_in_properties_startswith(self, startswith, value): 130 | found_keys = [] 131 | keys = self.search_for_property_startswith(startswith) 132 | for key in keys: 133 | if key['value'] == value: 134 | found_keys.append(key) 135 | return found_keys 136 | 137 | def search_for_property_startswith(self, startswith): 138 | found_keys = [] 139 | keys = self.get_keys() 140 | for key in keys: 141 | if key['key'].startswith(startswith) and key not in found_keys: 142 | found_keys.append(key) 143 | return found_keys 144 | 145 | 146 | if __name__ == '__main__': 147 | print(get_desktop_environment()) 148 | if get_desktop_environment() == 'xfce4' and xfconfquery_exists(): 149 | key = 't' 150 | xfceconf = XFCEConfiguration('xfce4-keyboard-shortcuts') 151 | akeys = xfceconf.search_for_value_in_properties_startswith( 152 | '/commands/custom/', 153 | '/usr/share/touchpad-indicator/change_touchpad_state.py') 154 | print('akeys: ' + str(akeys)) 155 | if akeys: 156 | for akey in akeys: 157 | print('akey: ' + str(akey)) 158 | xfceconf.reset_property(akey['key']) 159 | if True: 160 | key = key.replace('', '') 161 | print(key) 162 | print(xfceconf.set_property( 163 | '/commands/custom/' + key, 164 | '/usr/share/touchpad-indicator/change_touchpad_state.py')) 165 | exit(0) 166 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | touchpad-indicator (2.2.3-ubuntu20.04.0) focal; urgency=medium 2 | 3 | * fix minimal error 4 | 5 | -- Lorenzo Carbonell Wed, 09 Jun 2021 06:11:29 +0200 6 | 7 | touchpad-indicator (2.2.2-0extras19.04.1) disco; urgency=medium 8 | 9 | * Reverted touchpad controller 10 | * Changed postrm 11 | 12 | -- Lorenzo Carbonell Sat, 13 Jul 2019 13:51:20 +0200 13 | 14 | touchpad-indicator (2.2.0-0extras19.04.2) disco; urgency=medium 15 | 16 | * New way to capture touchpad and keyboard events 17 | 18 | -- Lorenzo Carbonell Tue, 18 Jun 2019 22:12:06 +0200 19 | 20 | touchpad-indicator (2.1.4-0extras19.04.1) disco; urgency=medium 21 | 22 | * Set udev log to ERR 23 | 24 | -- Lorenzo Carbonell Thu, 13 Jun 2019 07:26:21 +0200 25 | 26 | touchpad-indicator (2.1.3-0extras18.04.0) bionic; urgency=medium 27 | 28 | * Merge pull request #29 from alito/includepath 29 | * Merge pull request #30 from alito/configurabl 30 | * Merge pull request #31 from alito/nospeedifto 31 | * Merge pull request #32 from alito/guardagains 32 | * Guard against missing xinput IDS 33 | * Fix AttributeError when touchpad not recognis 34 | * Make the list of faulty devices expandable 35 | * Change the src path added to be with respect 36 | 37 | -- Lorenzo Carbonell Tue, 16 Oct 2018 23:35:04 +0200 38 | 39 | touchpad-indicator (2.1.2-0extras18.04.0) bionic; urgency=medium 40 | 41 | * Fixed bug #16 https://github.com/atareao/Touchpad-Indicator/issues/16 42 | 43 | -- Lorenzo Carbonell Sun, 13 May 2018 22:11:25 +0200 44 | 45 | touchpad-indicator (2.1.1-0extras18.04.0) xenial; urgency=medium 46 | 47 | * Fixed bug # 12 - https://github.com/atareao/Touchpad-Indicator/issues/12 48 | 49 | -- Lorenzo Carbonell Fri, 06 Apr 2018 19:05:31 +0200 50 | 51 | touchpad-indicator (2.1.0-0extras18.04.2) xenial; urgency=medium 52 | 53 | * Corner and tapping simulation configurate 54 | * Not disable on typing when Control keys pressed 55 | 56 | -- Lorenzo Carbonell Fri, 06 Apr 2018 12:47:38 +0200 57 | 58 | touchpad-indicator (2.0.4-0extras18.04.3) xenial; urgency=medium 59 | 60 | * On scroll event over indicator up->on, down->off 61 | * Threading to read preferences 62 | * Bug #1758520 63 | * Slimbook bug fixed 64 | 65 | -- Lorenzo Carbonell Fri, 30 Mar 2018 09:01:38 +0200 66 | 67 | touchpad-indicator (2.0.0-0extras18.04.6) xenial; urgency=medium 68 | 69 | * Shortcut only for Unity, GNOME, Cinnamon and Mate 70 | 71 | -- Lorenzo Carbonell Fri, 23 Mar 2018 08:10:14 +0100 72 | 73 | touchpad-indicator (1.9.9-0extras17.10.22) xenial; urgency=medium 74 | 75 | * Added shortcuts for GNOME, Cinnamon and Mate. Tested and working. 76 | * Set default config for interval 300 ms 77 | 78 | -- Lorenzo Carbonell Tue, 13 Mar 2018 20:53:35 +0100 79 | 80 | touchpad-indicator (1.9.9-0extras17.10.8) xenial; urgency=medium 81 | 82 | * Circular scrolling 83 | * Two finger scrolling 84 | * Edge scrolling 85 | * ImExPS/2 86 | 87 | -- Lorenzo Carbonell Tue, 06 Mar 2018 21:14:48 +0100 88 | 89 | touchpad-indicator (1.9.8-0extras17.10.5) xenial; urgency=medium 90 | 91 | * Fixed some bugs 92 | * Updated icons 93 | * Added speed for evdev controller 94 | 95 | -- Lorenzo Carbonell Fri, 02 Mar 2018 18:35:52 +0100 96 | 97 | touchpad-indicator (1.9.8-0extras17.10.2) xenial; urgency=medium 98 | 99 | * Updated icons 100 | 101 | -- Lorenzo Carbonell Thu, 01 Mar 2018 11:27:51 +0100 102 | 103 | touchpad-indicator (1.9.8-0extras17.10.1) xenial; urgency=medium 104 | 105 | * Updated translations 106 | 107 | -- Lorenzo Carbonell Thu, 01 Mar 2018 10:55:26 +0100 108 | 109 | touchpad-indicator (1.9.8-0extras17.10.0) xenial; urgency=medium 110 | 111 | * Option to edit the grub 112 | 113 | -- Lorenzo Carbonell Tue, 27 Feb 2018 14:17:49 +0100 114 | 115 | touchpad-indicator (1.9.7-0extras17.10.2) xenial; urgency=medium 116 | 117 | * Improved 118 | 119 | -- Lorenzo Carbonell Wed, 21 Feb 2018 19:47:54 +0100 120 | 121 | touchpad-indicator (1.9.6-0extras17.10.5) xenial; urgency=medium 122 | 123 | * Changed install dialog 124 | * Changed preferences dialog 125 | 126 | -- Lorenzo Carbonell Wed, 21 Feb 2018 15:21:27 +0100 127 | 128 | touchpad-indicator (1.9.5-0extras17.10.2) xenial; urgency=medium 129 | 130 | * bug on close 131 | 132 | -- Lorenzo Carbonell Tue, 20 Feb 2018 22:05:30 +0100 133 | 134 | touchpad-indicator (1.9.5-0extras17.10.1) xenial; urgency=medium 135 | 136 | * autostart symlink 137 | 138 | -- Lorenzo Carbonell Tue, 20 Feb 2018 21:33:34 +0100 139 | 140 | touchpad-indicator (1.9.5-0extras17.10.0) xenial; urgency=medium 141 | 142 | * libinput-hwe-16.04 143 | 144 | -- Lorenzo Carbonell Tue, 20 Feb 2018 20:18:49 +0100 145 | 146 | touchpad-indicator (1.9.4-0extras17.10.2) xenial; urgency=medium 147 | 148 | * autostart 149 | 150 | -- Lorenzo Carbonell Tue, 20 Feb 2018 19:17:58 +0100 151 | 152 | touchpad-indicator (1.9.4-0extras17.10.1) xenial; urgency=medium 153 | 154 | * Added tapping and speed for Libinput 155 | 156 | -- Lorenzo Carbonell Tue, 20 Feb 2018 18:32:18 +0100 157 | 158 | touchpad-indicator (1.9.3-0extras17.10.0) xenial; urgency=medium 159 | 160 | * Improved touchpad configuration via xinput 161 | * Improved answer of touchpad 162 | 163 | -- Lorenzo Carbonell Tue, 20 Feb 2018 09:30:07 +0100 164 | 165 | touchpad-indicator (1.9.2-0extras17.10.5) xenial; urgency=medium 166 | 167 | * Spaces in autostart config 168 | 169 | -- Lorenzo Carbonell Mon, 19 Feb 2018 17:09:50 +0100 170 | 171 | touchpad-indicator (1.9.1-0extras17.10.2) xenial; urgency=medium 172 | 173 | * XLib 174 | 175 | -- Lorenzo Carbonell Sun, 18 Feb 2018 12:34:12 +0100 176 | 177 | touchpad-indicator (1.9.1-0extras17.10.1) xenial; urgency=medium 178 | 179 | * Fixed a bug with install Evdev and Libinput 180 | 181 | -- Lorenzo Carbonell Sat, 17 Feb 2018 18:22:26 +0100 182 | 183 | touchpad-indicator (1.9.1-0extras17.10.0) xenial; urgency=medium 184 | 185 | * First commit 186 | 187 | -- Lorenzo Carbonell Fri, 16 Feb 2018 17:47:40 +0100 188 | -------------------------------------------------------------------------------- /src/watchdog.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # This file is part of Touchpad-Indicator 5 | # 6 | # Copyright (C) 2010-2019 Lorenzo Carbonell 7 | # Copyright (C) 2010-2012 Miguel Angel Santamaría Rogado 8 | # 9 | # This program is free software: you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation, either version 3 of the License, or 12 | # (at your option) any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | import pyudev 23 | import dbus 24 | import syslog 25 | from time import sleep 26 | 27 | on_mouse_detected_plugged = None 28 | on_mouse_detected_unplugged = None 29 | check_status = None 30 | check_status_from_resume = None 31 | 32 | faulty_devices = set() 33 | udev_context = pyudev.Context() 34 | udev_context.log_priority = syslog.LOG_EMERG 35 | 36 | 37 | def is_mouse_plugged(blacklist=None): 38 | """Return True if there is any mouse connected. 39 | Handle timing conditions where the device disappears while checking. 40 | :param blacklist: list of devices to discard.""" 41 | retry_count = 3 42 | answer = None 43 | while answer is None: 44 | try: 45 | answer = _is_mouse_plugged(blacklist=blacklist) 46 | except pyudev.device.DeviceNotFoundAtPathError as e: 47 | retry_count -= 1 48 | if retry_count == 0: 49 | print('DeviceNotFoundAtPathError: retry limit exceeded') 50 | raise e 51 | else: 52 | print('DeviceNotFoundAtPathError: retry') 53 | sleep(1) 54 | return answer 55 | 56 | 57 | def _is_mouse_plugged(blacklist=None): 58 | """Return True if there is any mouse connected 59 | :param blacklist: list of devices to discard.""" 60 | return len(_get_every_mouse(blacklist=blacklist)) > 0 61 | 62 | def _get_every_mouse(blacklist=None): 63 | if blacklist is None: 64 | blacklist = faulty_devices 65 | possible_mice = udev_context.list_devices(subsystem="input", 66 | ID_INPUT_MOUSE=True) 67 | mice_list = [] 68 | 69 | if blacklist: 70 | for mouse in possible_mice: 71 | if mouse.parent is not None and mouse.parent.get('PRODUCT') not in blacklist \ 72 | and mouse.get('PRODUCT') not in blacklist: 73 | mice_list.append(mouse) 74 | else: 75 | mice_list = list(possible_mice) 76 | print(mice_list) 77 | return mice_list 78 | 79 | def blacklist_products(products): 80 | faulty_devices.update(set(products)) 81 | 82 | def blacklist_every_current_mouse(): 83 | current = _get_every_mouse() 84 | blacklist_products([mouse.parent.get('PRODUCT') for mouse in current \ 85 | if mouse.parent is not None and mouse.parent.get('PRODUCT') is not None]) 86 | blacklist_products([mouse.get('PRODUCT') for mouse in current \ 87 | if mouse.get('PRODUCT') is not None]) 88 | 89 | 90 | def is_mouse(device, blacklist=None): 91 | """Return True if device is a mouse. 92 | :param device: pyudev.core.Device 93 | :param blacklist: list of devices to discard.""" 94 | 95 | if blacklist is None: 96 | blacklist = faulty_devices 97 | if blacklist: 98 | if device.parent is not None and device.parent.get('PRODUCT') in blacklist or \ 99 | device.get('PRODUCT') in blacklist: 100 | return False 101 | try: 102 | if device.asbool("ID_INPUT_MOUSE"): 103 | return True 104 | else: 105 | return False 106 | except KeyError: 107 | return False 108 | 109 | 110 | def init_dbus(): 111 | """Initialize dbus parameters""" 112 | global on_mouse_detected_plugged 113 | global on_mouse_detected_unplugged 114 | global check_status 115 | global check_status_from_resume 116 | 117 | bus = dbus.SessionBus() 118 | try: 119 | touchpad_indicator_service = bus.get_object( 120 | 'es.atareao.TouchpadIndicator', 121 | '/es/atareao/TouchpadIndicator') 122 | on_mouse_detected_plugged = touchpad_indicator_service.get_dbus_method( 123 | 'on_mouse_detected_plugged', 124 | 'es.atareao.TouchpadIndicator') 125 | on_mouse_detected_unplugged = \ 126 | touchpad_indicator_service.get_dbus_method( 127 | 'on_mouse_detected_unplugged', 128 | 'es.atareao.TouchpadIndicator') 129 | check_status = touchpad_indicator_service.get_dbus_method( 130 | 'check_status', 131 | 'es.atareao.TouchpadIndicator') 132 | check_status_from_resume = touchpad_indicator_service.get_dbus_method( 133 | 'check_status_from_resume', 134 | 'es.atareao.TouchpadIndicator') 135 | except Exception as e: 136 | print(e, 'watchdog: Failed to initialize dbus.') 137 | exit(0) 138 | 139 | 140 | def watch(): 141 | """The watcher""" 142 | 143 | monitor = pyudev.Monitor.from_netlink(udev_context) 144 | # TODO: filter also by device_type, so we can get rid of is_mouse() 145 | monitor.filter_by(subsystem="input", device_type=None) 146 | 147 | while True: 148 | try: 149 | for action, device in monitor: 150 | if is_mouse(device): 151 | print('is mouse') 152 | try: 153 | if action == "add": 154 | on_mouse_detected_plugged() 155 | print('mouse added') 156 | elif action == "remove": 157 | on_mouse_detected_unplugged() 158 | print('mouse removed') 159 | except Exception as e: 160 | print(e) 161 | print('watchdog: failed to comunicate.') 162 | exit(0) 163 | except IOError: 164 | print('watchdog: Return from suspend? Reseting the monitor.') 165 | # reset the monitor, altought not really needed 166 | # if we are coming back from suspend, because it only 167 | # fails the first iteration after the suspend 168 | if not _is_mouse_plugged(): 169 | print('There is no mouse. Activating touchpad') 170 | on_mouse_detected_unplugged() 171 | sleep(1) 172 | monitor = pyudev.Monitor.from_netlink(udev_context) 173 | monitor.filter_by(subsystem="input", device_type=None) 174 | 175 | 176 | if __name__ == "__main__": 177 | """Watcher for plug/unplug of mice from the system""" 178 | init_dbus() 179 | watch() 180 | -------------------------------------------------------------------------------- /data/icons/touchpad-indicator-light-enabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 21 | 25 | 29 | 30 | 32 | 36 | 40 | 41 | 50 | 52 | 56 | 60 | 61 | 71 | 73 | 77 | 81 | 82 | 92 | 94 | 98 | 102 | 103 | 105 | 109 | 113 | 114 | 124 | 126 | 130 | 134 | 135 | 137 | 141 | 145 | 146 | 156 | 158 | 162 | 166 | 167 | 168 | 199 | 202 | 203 | 205 | 206 | 208 | image/svg+xml 209 | 211 | 212 | 213 | 214 | 215 | 220 | 225 | 226 | 227 | -------------------------------------------------------------------------------- /po/po.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=CHARSET\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 21 | msgid "Preferences" 22 | msgstr "" 23 | 24 | #: src/preferences_dialog.py:136 25 | msgid "Shortcut" 26 | msgstr "" 27 | 28 | #: src/preferences_dialog.py:148 29 | msgid "Shortcut enabled" 30 | msgstr "" 31 | 32 | #: src/preferences_dialog.py:173 33 | msgid "Actions" 34 | msgstr "" 35 | 36 | #: src/preferences_dialog.py:185 37 | msgid "Disable touchpad when mouse plugged" 38 | msgstr "" 39 | 40 | #: src/preferences_dialog.py:191 41 | msgid "I declare that there are no mice plugged in" 42 | msgstr "" 43 | 44 | #: src/preferences_dialog.py:192 45 | msgid "" 46 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 47 | "mouse, it might help to unplug all mice and click on this" 48 | msgstr "" 49 | 50 | #: src/preferences_dialog.py:199 51 | msgid "On Touchpad Indicator starts:" 52 | msgstr "" 53 | 54 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 55 | msgid "None" 56 | msgstr "" 57 | 58 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 59 | msgid "Enable touchpad" 60 | msgstr "" 61 | 62 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 63 | msgid "Disable touchpad" 64 | msgstr "" 65 | 66 | #: src/preferences_dialog.py:216 67 | msgid "On Touchpad Indicator ends:" 68 | msgstr "" 69 | 70 | #: src/preferences_dialog.py:234 71 | msgid "Disable touchpad on typing" 72 | msgstr "" 73 | 74 | #: src/preferences_dialog.py:238 75 | msgid "" 76 | "Milliseconds to wait after the last key\n" 77 | "press before enabling the touchpad" 78 | msgstr "" 79 | 80 | #: src/preferences_dialog.py:249 81 | msgid "General options" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:261 85 | msgid "Autostart" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:269 89 | msgid "Start hidden" 90 | msgstr "" 91 | 92 | #: src/preferences_dialog.py:273 93 | msgid "Show notifications" 94 | msgstr "" 95 | 96 | #: src/preferences_dialog.py:279 97 | msgid "Touchpad configuration" 98 | msgstr "" 99 | 100 | #: src/preferences_dialog.py:291 101 | msgid "Natural scrolling" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 105 | #: src/preferences_dialog.py:514 106 | msgid "Touchpad speed" 107 | msgstr "" 108 | 109 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 110 | msgid "Two finger scolling?" 111 | msgstr "" 112 | 113 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 114 | msgid "Edge scolling?" 115 | msgstr "" 116 | 117 | #: src/preferences_dialog.py:329 118 | msgid "Circular scolling?" 119 | msgstr "" 120 | 121 | #: src/preferences_dialog.py:340 122 | msgid "Simulation" 123 | msgstr "" 124 | 125 | #: src/preferences_dialog.py:344 126 | msgid "Right top corner" 127 | msgstr "" 128 | 129 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 130 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 131 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 132 | #: src/preferences_dialog.py:453 133 | msgid "Disable" 134 | msgstr "" 135 | 136 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 137 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 138 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 139 | #: src/preferences_dialog.py:454 140 | msgid "Left button" 141 | msgstr "" 142 | 143 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 144 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 145 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 146 | #: src/preferences_dialog.py:455 147 | msgid "Middle button" 148 | msgstr "" 149 | 150 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 151 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 152 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 153 | #: src/preferences_dialog.py:456 154 | msgid "Right button" 155 | msgstr "" 156 | 157 | #: src/preferences_dialog.py:361 158 | msgid "Right bottom corner" 159 | msgstr "" 160 | 161 | #: src/preferences_dialog.py:378 162 | msgid "Left top corner" 163 | msgstr "" 164 | 165 | #: src/preferences_dialog.py:395 166 | msgid "Left bottom corner" 167 | msgstr "" 168 | 169 | #: src/preferences_dialog.py:412 170 | msgid "One finger tap" 171 | msgstr "" 172 | 173 | #: src/preferences_dialog.py:430 174 | msgid "Two finger tap" 175 | msgstr "" 176 | 177 | #: src/preferences_dialog.py:448 178 | msgid "Three finger tap" 179 | msgstr "" 180 | 181 | #: src/preferences_dialog.py:466 182 | msgid "Driver: Synaptics" 183 | msgstr "" 184 | 185 | #: src/preferences_dialog.py:471 186 | msgid "Tapping" 187 | msgstr "" 188 | 189 | #: src/preferences_dialog.py:510 190 | msgid "Driver: Libinput" 191 | msgstr "" 192 | 193 | #: src/preferences_dialog.py:523 194 | msgid "Driver: Evdev" 195 | msgstr "" 196 | 197 | #: src/preferences_dialog.py:528 198 | msgid "Theme" 199 | msgstr "" 200 | 201 | #: src/preferences_dialog.py:540 202 | msgid "Select theme" 203 | msgstr "" 204 | 205 | #: src/preferences_dialog.py:656 206 | msgid "This shortcut + +" 207 | msgstr "" 208 | 209 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 210 | msgid " is assigned" 211 | msgstr "" 212 | 213 | #: src/preferences_dialog.py:658 214 | msgid "This shortcut + + " 215 | msgstr "" 216 | 217 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 218 | #: src/touchpadindicator.py:516 219 | msgid "Disable Touchpad" 220 | msgstr "" 221 | 222 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 223 | msgid "Enable Touchpad" 224 | msgstr "" 225 | 226 | #: src/touchpadindicator.py:214 227 | msgid "Touchpad Enabled" 228 | msgstr "" 229 | 230 | #: src/touchpadindicator.py:219 231 | msgid "Touchpad Disabled" 232 | msgstr "" 233 | 234 | #: src/touchpadindicator.py:434 235 | msgid "Project page" 236 | msgstr "" 237 | 238 | #: src/touchpadindicator.py:439 239 | msgid "Get help online..." 240 | msgstr "" 241 | 242 | #: src/touchpadindicator.py:444 243 | msgid "Translate this application..." 244 | msgstr "" 245 | 246 | #: src/touchpadindicator.py:449 247 | msgid "Report a bug..." 248 | msgstr "" 249 | 250 | #: src/touchpadindicator.py:455 251 | msgid "El atareao" 252 | msgstr "" 253 | 254 | #: src/touchpadindicator.py:460 255 | msgid "Follow me on Twitter" 256 | msgstr "" 257 | 258 | #: src/touchpadindicator.py:465 259 | msgid "Follow me on Google+" 260 | msgstr "" 261 | 262 | #: src/touchpadindicator.py:470 263 | msgid "Follow me on Facebook" 264 | msgstr "" 265 | 266 | #: src/touchpadindicator.py:503 267 | msgid "About" 268 | msgstr "" 269 | 270 | #: src/touchpadindicator.py:521 271 | msgid "Hide icon" 272 | msgstr "" 273 | 274 | #: src/touchpadindicator.py:532 275 | msgid "Help" 276 | msgstr "" 277 | 278 | #: src/touchpadindicator.py:537 279 | msgid "Exit" 280 | msgstr "" 281 | 282 | #: src/touchpadindicator.py:552 283 | msgid "An indicator for the Touchpad" 284 | msgstr "" 285 | 286 | #: src/touchpadindicator.py:685 287 | msgid "usage: %prog [options]" 288 | msgstr "" 289 | 290 | #: src/touchpadindicator.py:691 291 | msgid "show this help and exit." 292 | msgstr "" 293 | 294 | #: src/touchpadindicator.py:696 295 | msgid "change the touchpad state. If indicator is not running launch it." 296 | msgstr "" 297 | 298 | #: src/touchpadindicator.py:702 299 | msgid "" 300 | "show the icon if indicator is hidden. Default action. If indicator is not " 301 | "running launch it." 302 | msgstr "" 303 | 304 | #: src/touchpadindicator.py:708 305 | msgid "list devices" 306 | msgstr "" 307 | -------------------------------------------------------------------------------- /po/mn.po: -------------------------------------------------------------------------------- 1 | # Mongolian translation for touchpad-indicator 2 | # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2013. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2013-04-04 11:53+0000\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: Mongolian \n" 14 | "Language: mn\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:00+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | msgid "Enable touchpad" 61 | msgstr "" 62 | 63 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 64 | msgid "Disable touchpad" 65 | msgstr "" 66 | 67 | #: src/preferences_dialog.py:216 68 | msgid "On Touchpad Indicator ends:" 69 | msgstr "" 70 | 71 | #: src/preferences_dialog.py:234 72 | msgid "Disable touchpad on typing" 73 | msgstr "" 74 | 75 | #: src/preferences_dialog.py:238 76 | msgid "" 77 | "Milliseconds to wait after the last key\n" 78 | "press before enabling the touchpad" 79 | msgstr "" 80 | 81 | #: src/preferences_dialog.py:249 82 | msgid "General options" 83 | msgstr "" 84 | 85 | #: src/preferences_dialog.py:261 86 | msgid "Autostart" 87 | msgstr "" 88 | 89 | #: src/preferences_dialog.py:269 90 | msgid "Start hidden" 91 | msgstr "" 92 | 93 | #: src/preferences_dialog.py:273 94 | msgid "Show notifications" 95 | msgstr "" 96 | 97 | #: src/preferences_dialog.py:279 98 | msgid "Touchpad configuration" 99 | msgstr "" 100 | 101 | #: src/preferences_dialog.py:291 102 | msgid "Natural scrolling" 103 | msgstr "" 104 | 105 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 106 | #: src/preferences_dialog.py:514 107 | msgid "Touchpad speed" 108 | msgstr "" 109 | 110 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 111 | msgid "Two finger scrolling" 112 | msgstr "" 113 | 114 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 115 | msgid "Edge scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:329 119 | msgid "Circular scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:340 123 | msgid "Simulation" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:344 127 | msgid "Right top corner" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 131 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 132 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 133 | #: src/preferences_dialog.py:453 134 | msgid "Disable" 135 | msgstr "" 136 | 137 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 138 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 139 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 140 | #: src/preferences_dialog.py:454 141 | msgid "Left button" 142 | msgstr "" 143 | 144 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 145 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 146 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 147 | #: src/preferences_dialog.py:455 148 | msgid "Middle button" 149 | msgstr "" 150 | 151 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 152 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 153 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 154 | #: src/preferences_dialog.py:456 155 | msgid "Right button" 156 | msgstr "" 157 | 158 | #: src/preferences_dialog.py:361 159 | msgid "Right bottom corner" 160 | msgstr "" 161 | 162 | #: src/preferences_dialog.py:378 163 | msgid "Left top corner" 164 | msgstr "" 165 | 166 | #: src/preferences_dialog.py:395 167 | msgid "Left bottom corner" 168 | msgstr "" 169 | 170 | #: src/preferences_dialog.py:412 171 | msgid "One finger tap" 172 | msgstr "" 173 | 174 | #: src/preferences_dialog.py:430 175 | msgid "Two finger tap" 176 | msgstr "" 177 | 178 | #: src/preferences_dialog.py:448 179 | msgid "Three finger tap" 180 | msgstr "" 181 | 182 | #: src/preferences_dialog.py:466 183 | msgid "Driver: Synaptics" 184 | msgstr "" 185 | 186 | #: src/preferences_dialog.py:471 187 | msgid "Tapping" 188 | msgstr "" 189 | 190 | #: src/preferences_dialog.py:510 191 | msgid "Driver: Libinput" 192 | msgstr "" 193 | 194 | #: src/preferences_dialog.py:523 195 | msgid "Driver: Evdev" 196 | msgstr "" 197 | 198 | #: src/preferences_dialog.py:528 199 | msgid "Theme" 200 | msgstr "" 201 | 202 | #: src/preferences_dialog.py:540 203 | msgid "Select theme" 204 | msgstr "" 205 | 206 | #: src/preferences_dialog.py:656 207 | msgid "This shortcut + +" 208 | msgstr "" 209 | 210 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 211 | msgid " is assigned" 212 | msgstr "" 213 | 214 | #: src/preferences_dialog.py:658 215 | msgid "This shortcut + + " 216 | msgstr "" 217 | 218 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 219 | #: src/touchpadindicator.py:516 220 | msgid "Disable Touchpad" 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 224 | msgid "Enable Touchpad" 225 | msgstr "" 226 | 227 | #: src/touchpadindicator.py:214 228 | msgid "Touchpad Enabled" 229 | msgstr "" 230 | 231 | #: src/touchpadindicator.py:219 232 | msgid "Touchpad Disabled" 233 | msgstr "" 234 | 235 | #: src/touchpadindicator.py:434 236 | msgid "Project page" 237 | msgstr "" 238 | 239 | #: src/touchpadindicator.py:439 240 | msgid "Get help online..." 241 | msgstr "" 242 | 243 | #: src/touchpadindicator.py:444 244 | msgid "Translate this application..." 245 | msgstr "" 246 | 247 | #: src/touchpadindicator.py:449 248 | msgid "Report a bug..." 249 | msgstr "" 250 | 251 | #: src/touchpadindicator.py:455 252 | msgid "El atareao" 253 | msgstr "" 254 | 255 | #: src/touchpadindicator.py:460 256 | msgid "Follow me on Twitter" 257 | msgstr "" 258 | 259 | #: src/touchpadindicator.py:465 260 | msgid "Follow me on Google+" 261 | msgstr "" 262 | 263 | #: src/touchpadindicator.py:470 264 | msgid "Follow me on Facebook" 265 | msgstr "" 266 | 267 | #: src/touchpadindicator.py:503 268 | msgid "About" 269 | msgstr "" 270 | 271 | #: src/touchpadindicator.py:521 272 | msgid "Hide icon" 273 | msgstr "" 274 | 275 | #: src/touchpadindicator.py:532 276 | msgid "Help" 277 | msgstr "" 278 | 279 | #: src/touchpadindicator.py:537 280 | msgid "Exit" 281 | msgstr "" 282 | 283 | #: src/touchpadindicator.py:552 284 | msgid "An indicator for the Touchpad" 285 | msgstr "" 286 | 287 | #: src/touchpadindicator.py:685 288 | msgid "usage: %prog [options]" 289 | msgstr "" 290 | 291 | #: src/touchpadindicator.py:691 292 | msgid "show this help and exit." 293 | msgstr "" 294 | 295 | #: src/touchpadindicator.py:696 296 | msgid "change the touchpad state. If indicator is not running launch it." 297 | msgstr "" 298 | 299 | #: src/touchpadindicator.py:702 300 | msgid "" 301 | "show the icon if indicator is hidden. Default action. If indicator is not " 302 | "running launch it." 303 | msgstr "" 304 | 305 | #: src/touchpadindicator.py:708 306 | msgid "list devices" 307 | msgstr "" 308 | -------------------------------------------------------------------------------- /po/zh_HK.po: -------------------------------------------------------------------------------- 1 | # Chinese (Hong Kong) translation for touchpad-indicator 2 | # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2013. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2013-01-14 21:32+0000\n" 12 | "Last-Translator: Tom K. C. Chiu \n" 13 | "Language-Team: Chinese (Hong Kong) \n" 14 | "Language: zh_HK\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:00+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | #, fuzzy 61 | msgid "Enable touchpad" 62 | msgstr "啟用觸控板" 63 | 64 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 65 | #, fuzzy 66 | msgid "Disable touchpad" 67 | msgstr "停用觸控板" 68 | 69 | #: src/preferences_dialog.py:216 70 | #, fuzzy 71 | msgid "On Touchpad Indicator ends:" 72 | msgstr "觸控板已啟用" 73 | 74 | #: src/preferences_dialog.py:234 75 | msgid "Disable touchpad on typing" 76 | msgstr "" 77 | 78 | #: src/preferences_dialog.py:238 79 | msgid "" 80 | "Milliseconds to wait after the last key\n" 81 | "press before enabling the touchpad" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:249 85 | msgid "General options" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:261 89 | msgid "Autostart" 90 | msgstr "" 91 | 92 | #: src/preferences_dialog.py:269 93 | msgid "Start hidden" 94 | msgstr "" 95 | 96 | #: src/preferences_dialog.py:273 97 | msgid "Show notifications" 98 | msgstr "" 99 | 100 | #: src/preferences_dialog.py:279 101 | msgid "Touchpad configuration" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:291 105 | msgid "Natural scrolling" 106 | msgstr "" 107 | 108 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 109 | #: src/preferences_dialog.py:514 110 | #, fuzzy 111 | msgid "Touchpad speed" 112 | msgstr "觸控板已停用" 113 | 114 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 115 | msgid "Two finger scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 119 | msgid "Edge scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:329 123 | msgid "Circular scrolling" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:340 127 | msgid "Simulation" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:344 131 | msgid "Right top corner" 132 | msgstr "" 133 | 134 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 135 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 136 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 137 | #: src/preferences_dialog.py:453 138 | #, fuzzy 139 | msgid "Disable" 140 | msgstr "停用觸控板" 141 | 142 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 143 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 144 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 145 | #: src/preferences_dialog.py:454 146 | msgid "Left button" 147 | msgstr "" 148 | 149 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 150 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 151 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 152 | #: src/preferences_dialog.py:455 153 | msgid "Middle button" 154 | msgstr "" 155 | 156 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 157 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 158 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 159 | #: src/preferences_dialog.py:456 160 | msgid "Right button" 161 | msgstr "" 162 | 163 | #: src/preferences_dialog.py:361 164 | msgid "Right bottom corner" 165 | msgstr "" 166 | 167 | #: src/preferences_dialog.py:378 168 | msgid "Left top corner" 169 | msgstr "" 170 | 171 | #: src/preferences_dialog.py:395 172 | msgid "Left bottom corner" 173 | msgstr "" 174 | 175 | #: src/preferences_dialog.py:412 176 | msgid "One finger tap" 177 | msgstr "" 178 | 179 | #: src/preferences_dialog.py:430 180 | msgid "Two finger tap" 181 | msgstr "" 182 | 183 | #: src/preferences_dialog.py:448 184 | msgid "Three finger tap" 185 | msgstr "" 186 | 187 | #: src/preferences_dialog.py:466 188 | msgid "Driver: Synaptics" 189 | msgstr "" 190 | 191 | #: src/preferences_dialog.py:471 192 | msgid "Tapping" 193 | msgstr "" 194 | 195 | #: src/preferences_dialog.py:510 196 | msgid "Driver: Libinput" 197 | msgstr "" 198 | 199 | #: src/preferences_dialog.py:523 200 | msgid "Driver: Evdev" 201 | msgstr "" 202 | 203 | #: src/preferences_dialog.py:528 204 | msgid "Theme" 205 | msgstr "" 206 | 207 | #: src/preferences_dialog.py:540 208 | msgid "Select theme" 209 | msgstr "" 210 | 211 | #: src/preferences_dialog.py:656 212 | msgid "This shortcut + +" 213 | msgstr "" 214 | 215 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 216 | msgid " is assigned" 217 | msgstr "" 218 | 219 | #: src/preferences_dialog.py:658 220 | msgid "This shortcut + + " 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 224 | #: src/touchpadindicator.py:516 225 | msgid "Disable Touchpad" 226 | msgstr "停用觸控板" 227 | 228 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 229 | msgid "Enable Touchpad" 230 | msgstr "啟用觸控板" 231 | 232 | #: src/touchpadindicator.py:214 233 | msgid "Touchpad Enabled" 234 | msgstr "觸控板已啟用" 235 | 236 | #: src/touchpadindicator.py:219 237 | msgid "Touchpad Disabled" 238 | msgstr "觸控板已停用" 239 | 240 | #: src/touchpadindicator.py:434 241 | msgid "Project page" 242 | msgstr "" 243 | 244 | #: src/touchpadindicator.py:439 245 | msgid "Get help online..." 246 | msgstr "取得網上協助..." 247 | 248 | #: src/touchpadindicator.py:444 249 | msgid "Translate this application..." 250 | msgstr "翻譯本程式..." 251 | 252 | #: src/touchpadindicator.py:449 253 | msgid "Report a bug..." 254 | msgstr "報告問題..." 255 | 256 | #: src/touchpadindicator.py:455 257 | msgid "El atareao" 258 | msgstr "" 259 | 260 | #: src/touchpadindicator.py:460 261 | msgid "Follow me on Twitter" 262 | msgstr "" 263 | 264 | #: src/touchpadindicator.py:465 265 | msgid "Follow me on Google+" 266 | msgstr "" 267 | 268 | #: src/touchpadindicator.py:470 269 | msgid "Follow me on Facebook" 270 | msgstr "" 271 | 272 | #: src/touchpadindicator.py:503 273 | msgid "About" 274 | msgstr "關於" 275 | 276 | #: src/touchpadindicator.py:521 277 | msgid "Hide icon" 278 | msgstr "隱藏圖示" 279 | 280 | #: src/touchpadindicator.py:532 281 | msgid "Help" 282 | msgstr "" 283 | 284 | #: src/touchpadindicator.py:537 285 | msgid "Exit" 286 | msgstr "" 287 | 288 | #: src/touchpadindicator.py:552 289 | msgid "An indicator for the Touchpad" 290 | msgstr "" 291 | 292 | #: src/touchpadindicator.py:685 293 | msgid "usage: %prog [options]" 294 | msgstr "" 295 | 296 | #: src/touchpadindicator.py:691 297 | msgid "show this help and exit." 298 | msgstr "" 299 | 300 | #: src/touchpadindicator.py:696 301 | msgid "change the touchpad state. If indicator is not running launch it." 302 | msgstr "" 303 | 304 | #: src/touchpadindicator.py:702 305 | msgid "" 306 | "show the icon if indicator is hidden. Default action. If indicator is not " 307 | "running launch it." 308 | msgstr "" 309 | 310 | #: src/touchpadindicator.py:708 311 | msgid "list devices" 312 | msgstr "" 313 | 314 | #~ msgid "Homepage..." 315 | #~ msgstr "主頁面..." 316 | -------------------------------------------------------------------------------- /po/en.po: -------------------------------------------------------------------------------- 1 | # English translations for touchpad-indicator package. 2 | # Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # Lorenzo Carbonell , 2010. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2011-10-15 06:00+0000\n" 12 | "Last-Translator: Lorenzo Carbonell \n" 13 | "Language-Team: English\n" 14 | "Language: en\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:01+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "Shortcut" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | #, fuzzy 61 | msgid "Enable touchpad" 62 | msgstr "Enable Touchpad" 63 | 64 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 65 | #, fuzzy 66 | msgid "Disable touchpad" 67 | msgstr "Disable Touchpad" 68 | 69 | #: src/preferences_dialog.py:216 70 | #, fuzzy 71 | msgid "On Touchpad Indicator ends:" 72 | msgstr "Touchpad Enabled" 73 | 74 | #: src/preferences_dialog.py:234 75 | msgid "Disable touchpad on typing" 76 | msgstr "" 77 | 78 | #: src/preferences_dialog.py:238 79 | msgid "" 80 | "Milliseconds to wait after the last key\n" 81 | "press before enabling the touchpad" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:249 85 | msgid "General options" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:261 89 | msgid "Autostart" 90 | msgstr "" 91 | 92 | #: src/preferences_dialog.py:269 93 | msgid "Start hidden" 94 | msgstr "" 95 | 96 | #: src/preferences_dialog.py:273 97 | msgid "Show notifications" 98 | msgstr "" 99 | 100 | #: src/preferences_dialog.py:279 101 | msgid "Touchpad configuration" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:291 105 | msgid "Natural scrolling" 106 | msgstr "" 107 | 108 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 109 | #: src/preferences_dialog.py:514 110 | #, fuzzy 111 | msgid "Touchpad speed" 112 | msgstr "Touchpad Disabled" 113 | 114 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 115 | msgid "Two finger scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 119 | msgid "Edge scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:329 123 | msgid "Circular scrolling" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:340 127 | msgid "Simulation" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:344 131 | msgid "Right top corner" 132 | msgstr "" 133 | 134 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 135 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 136 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 137 | #: src/preferences_dialog.py:453 138 | #, fuzzy 139 | msgid "Disable" 140 | msgstr "Disable Touchpad" 141 | 142 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 143 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 144 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 145 | #: src/preferences_dialog.py:454 146 | msgid "Left button" 147 | msgstr "" 148 | 149 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 150 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 151 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 152 | #: src/preferences_dialog.py:455 153 | msgid "Middle button" 154 | msgstr "" 155 | 156 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 157 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 158 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 159 | #: src/preferences_dialog.py:456 160 | msgid "Right button" 161 | msgstr "" 162 | 163 | #: src/preferences_dialog.py:361 164 | msgid "Right bottom corner" 165 | msgstr "" 166 | 167 | #: src/preferences_dialog.py:378 168 | msgid "Left top corner" 169 | msgstr "" 170 | 171 | #: src/preferences_dialog.py:395 172 | msgid "Left bottom corner" 173 | msgstr "" 174 | 175 | #: src/preferences_dialog.py:412 176 | msgid "One finger tap" 177 | msgstr "" 178 | 179 | #: src/preferences_dialog.py:430 180 | msgid "Two finger tap" 181 | msgstr "" 182 | 183 | #: src/preferences_dialog.py:448 184 | msgid "Three finger tap" 185 | msgstr "" 186 | 187 | #: src/preferences_dialog.py:466 188 | msgid "Driver: Synaptics" 189 | msgstr "" 190 | 191 | #: src/preferences_dialog.py:471 192 | msgid "Tapping" 193 | msgstr "" 194 | 195 | #: src/preferences_dialog.py:510 196 | msgid "Driver: Libinput" 197 | msgstr "" 198 | 199 | #: src/preferences_dialog.py:523 200 | msgid "Driver: Evdev" 201 | msgstr "" 202 | 203 | #: src/preferences_dialog.py:528 204 | msgid "Theme" 205 | msgstr "" 206 | 207 | #: src/preferences_dialog.py:540 208 | msgid "Select theme" 209 | msgstr "" 210 | 211 | #: src/preferences_dialog.py:656 212 | msgid "This shortcut + +" 213 | msgstr "" 214 | 215 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 216 | msgid " is assigned" 217 | msgstr "" 218 | 219 | #: src/preferences_dialog.py:658 220 | msgid "This shortcut + + " 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 224 | #: src/touchpadindicator.py:516 225 | msgid "Disable Touchpad" 226 | msgstr "Disable Touchpad" 227 | 228 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 229 | msgid "Enable Touchpad" 230 | msgstr "Enable Touchpad" 231 | 232 | #: src/touchpadindicator.py:214 233 | msgid "Touchpad Enabled" 234 | msgstr "Touchpad Enabled" 235 | 236 | #: src/touchpadindicator.py:219 237 | msgid "Touchpad Disabled" 238 | msgstr "Touchpad Disabled" 239 | 240 | #: src/touchpadindicator.py:434 241 | msgid "Project page" 242 | msgstr "" 243 | 244 | #: src/touchpadindicator.py:439 245 | msgid "Get help online..." 246 | msgstr "" 247 | 248 | #: src/touchpadindicator.py:444 249 | msgid "Translate this application..." 250 | msgstr "" 251 | 252 | #: src/touchpadindicator.py:449 253 | msgid "Report a bug..." 254 | msgstr "" 255 | 256 | #: src/touchpadindicator.py:455 257 | msgid "El atareao" 258 | msgstr "" 259 | 260 | #: src/touchpadindicator.py:460 261 | msgid "Follow me on Twitter" 262 | msgstr "" 263 | 264 | #: src/touchpadindicator.py:465 265 | msgid "Follow me on Google+" 266 | msgstr "" 267 | 268 | #: src/touchpadindicator.py:470 269 | msgid "Follow me on Facebook" 270 | msgstr "" 271 | 272 | #: src/touchpadindicator.py:503 273 | msgid "About" 274 | msgstr "" 275 | 276 | #: src/touchpadindicator.py:521 277 | msgid "Hide icon" 278 | msgstr "" 279 | 280 | #: src/touchpadindicator.py:532 281 | msgid "Help" 282 | msgstr "" 283 | 284 | #: src/touchpadindicator.py:537 285 | msgid "Exit" 286 | msgstr "Exit" 287 | 288 | #: src/touchpadindicator.py:552 289 | msgid "An indicator for the Touchpad" 290 | msgstr "An indicator for the Touchpad" 291 | 292 | #: src/touchpadindicator.py:685 293 | msgid "usage: %prog [options]" 294 | msgstr "" 295 | 296 | #: src/touchpadindicator.py:691 297 | msgid "show this help and exit." 298 | msgstr "" 299 | 300 | #: src/touchpadindicator.py:696 301 | msgid "change the touchpad state. If indicator is not running launch it." 302 | msgstr "" 303 | 304 | #: src/touchpadindicator.py:702 305 | msgid "" 306 | "show the icon if indicator is hidden. Default action. If indicator is not " 307 | "running launch it." 308 | msgstr "" 309 | 310 | #: src/touchpadindicator.py:708 311 | msgid "list devices" 312 | msgstr "" 313 | -------------------------------------------------------------------------------- /po/si.po: -------------------------------------------------------------------------------- 1 | # Sinhalese translation for touchpad-indicator 2 | # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2013. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2013-06-01 04:26+0000\n" 12 | "Last-Translator: Thambaru Wijesekara \n" 13 | "Language-Team: Sinhalese \n" 14 | "Language: si\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:00+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "අභිප්‍රේත" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | msgid "Enable touchpad" 61 | msgstr "" 62 | 63 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 64 | msgid "Disable touchpad" 65 | msgstr "" 66 | 67 | #: src/preferences_dialog.py:216 68 | msgid "On Touchpad Indicator ends:" 69 | msgstr "" 70 | 71 | #: src/preferences_dialog.py:234 72 | msgid "Disable touchpad on typing" 73 | msgstr "" 74 | 75 | #: src/preferences_dialog.py:238 76 | msgid "" 77 | "Milliseconds to wait after the last key\n" 78 | "press before enabling the touchpad" 79 | msgstr "" 80 | 81 | #: src/preferences_dialog.py:249 82 | msgid "General options" 83 | msgstr "" 84 | 85 | #: src/preferences_dialog.py:261 86 | msgid "Autostart" 87 | msgstr "" 88 | 89 | #: src/preferences_dialog.py:269 90 | msgid "Start hidden" 91 | msgstr "" 92 | 93 | #: src/preferences_dialog.py:273 94 | msgid "Show notifications" 95 | msgstr "" 96 | 97 | #: src/preferences_dialog.py:279 98 | msgid "Touchpad configuration" 99 | msgstr "" 100 | 101 | #: src/preferences_dialog.py:291 102 | msgid "Natural scrolling" 103 | msgstr "" 104 | 105 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 106 | #: src/preferences_dialog.py:514 107 | msgid "Touchpad speed" 108 | msgstr "" 109 | 110 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 111 | msgid "Two finger scrolling" 112 | msgstr "" 113 | 114 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 115 | msgid "Edge scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:329 119 | msgid "Circular scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:340 123 | msgid "Simulation" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:344 127 | msgid "Right top corner" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 131 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 132 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 133 | #: src/preferences_dialog.py:453 134 | msgid "Disable" 135 | msgstr "" 136 | 137 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 138 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 139 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 140 | #: src/preferences_dialog.py:454 141 | msgid "Left button" 142 | msgstr "" 143 | 144 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 145 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 146 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 147 | #: src/preferences_dialog.py:455 148 | msgid "Middle button" 149 | msgstr "" 150 | 151 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 152 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 153 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 154 | #: src/preferences_dialog.py:456 155 | msgid "Right button" 156 | msgstr "" 157 | 158 | #: src/preferences_dialog.py:361 159 | msgid "Right bottom corner" 160 | msgstr "" 161 | 162 | #: src/preferences_dialog.py:378 163 | msgid "Left top corner" 164 | msgstr "" 165 | 166 | #: src/preferences_dialog.py:395 167 | msgid "Left bottom corner" 168 | msgstr "" 169 | 170 | #: src/preferences_dialog.py:412 171 | msgid "One finger tap" 172 | msgstr "" 173 | 174 | #: src/preferences_dialog.py:430 175 | msgid "Two finger tap" 176 | msgstr "" 177 | 178 | #: src/preferences_dialog.py:448 179 | msgid "Three finger tap" 180 | msgstr "" 181 | 182 | #: src/preferences_dialog.py:466 183 | msgid "Driver: Synaptics" 184 | msgstr "" 185 | 186 | #: src/preferences_dialog.py:471 187 | msgid "Tapping" 188 | msgstr "" 189 | 190 | #: src/preferences_dialog.py:510 191 | msgid "Driver: Libinput" 192 | msgstr "" 193 | 194 | #: src/preferences_dialog.py:523 195 | msgid "Driver: Evdev" 196 | msgstr "" 197 | 198 | #: src/preferences_dialog.py:528 199 | msgid "Theme" 200 | msgstr "" 201 | 202 | #: src/preferences_dialog.py:540 203 | msgid "Select theme" 204 | msgstr "" 205 | 206 | #: src/preferences_dialog.py:656 207 | msgid "This shortcut + +" 208 | msgstr "" 209 | 210 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 211 | msgid " is assigned" 212 | msgstr "" 213 | 214 | #: src/preferences_dialog.py:658 215 | msgid "This shortcut + + " 216 | msgstr "" 217 | 218 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 219 | #: src/touchpadindicator.py:516 220 | msgid "Disable Touchpad" 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 224 | msgid "Enable Touchpad" 225 | msgstr "" 226 | 227 | #: src/touchpadindicator.py:214 228 | msgid "Touchpad Enabled" 229 | msgstr "" 230 | 231 | #: src/touchpadindicator.py:219 232 | msgid "Touchpad Disabled" 233 | msgstr "" 234 | 235 | #: src/touchpadindicator.py:434 236 | #, fuzzy 237 | msgid "Project page" 238 | msgstr "නිවස්න පිටුව" 239 | 240 | #: src/touchpadindicator.py:439 241 | msgid "Get help online..." 242 | msgstr "සබැඳිව උදව් ලබා ගන්න..." 243 | 244 | #: src/touchpadindicator.py:444 245 | msgid "Translate this application..." 246 | msgstr "මෙම යෙදුම පරිවර්තනය කරන්න..." 247 | 248 | #: src/touchpadindicator.py:449 249 | msgid "Report a bug..." 250 | msgstr "දෝෂයක් වාර්තා කරන්න..." 251 | 252 | #: src/touchpadindicator.py:455 253 | msgid "El atareao" 254 | msgstr "" 255 | 256 | #: src/touchpadindicator.py:460 257 | #, fuzzy 258 | msgid "Follow me on Twitter" 259 | msgstr "ට්විටර්හි අපව ලුහුබඳින්න" 260 | 261 | #: src/touchpadindicator.py:465 262 | #, fuzzy 263 | msgid "Follow me on Google+" 264 | msgstr "Google+ හි අපව ලුහුබඳින්න" 265 | 266 | #: src/touchpadindicator.py:470 267 | #, fuzzy 268 | msgid "Follow me on Facebook" 269 | msgstr "Facebookහි අපව ලුහුබඳින්න" 270 | 271 | #: src/touchpadindicator.py:503 272 | msgid "About" 273 | msgstr "පිළිබඳව" 274 | 275 | #: src/touchpadindicator.py:521 276 | msgid "Hide icon" 277 | msgstr "අයිකනය සඟවන්න" 278 | 279 | #: src/touchpadindicator.py:532 280 | msgid "Help" 281 | msgstr "උදව්" 282 | 283 | #: src/touchpadindicator.py:537 284 | msgid "Exit" 285 | msgstr "ඉවත්වීම" 286 | 287 | #: src/touchpadindicator.py:552 288 | msgid "An indicator for the Touchpad" 289 | msgstr "ටච්පුවරුව සඳහා දර්ශකය" 290 | 291 | #: src/touchpadindicator.py:685 292 | msgid "usage: %prog [options]" 293 | msgstr "භාවිතය: %prog [විකල්ප]" 294 | 295 | #: src/touchpadindicator.py:691 296 | msgid "show this help and exit." 297 | msgstr "මෙම උදව් පෙන්වන්න හා ඉවත්වන්න." 298 | 299 | #: src/touchpadindicator.py:696 300 | msgid "change the touchpad state. If indicator is not running launch it." 301 | msgstr "" 302 | 303 | #: src/touchpadindicator.py:702 304 | msgid "" 305 | "show the icon if indicator is hidden. Default action. If indicator is not " 306 | "running launch it." 307 | msgstr "" 308 | 309 | #: src/touchpadindicator.py:708 310 | msgid "list devices" 311 | msgstr "" 312 | 313 | #~ msgid "Homepage..." 314 | #~ msgstr "නිවස්න පිටුව..." 315 | -------------------------------------------------------------------------------- /po/ka.po: -------------------------------------------------------------------------------- 1 | # Georgian translation for touchpad-indicator 2 | # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2011. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2011-10-15 06:00+0000\n" 12 | "Last-Translator: Giorgi Maghlakelidze \n" 13 | "Language-Team: Georgian \n" 14 | "Language: ka\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:01+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "გამართვა" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "სენსორული პანელის გათიშვა თაგვის გამოღებისას" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | #, fuzzy 61 | msgid "Enable touchpad" 62 | msgstr "სენსორული პანელის ჩართვა" 63 | 64 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 65 | #, fuzzy 66 | msgid "Disable touchpad" 67 | msgstr "სენსორული პანელის გათიშვა" 68 | 69 | #: src/preferences_dialog.py:216 70 | #, fuzzy 71 | msgid "On Touchpad Indicator ends:" 72 | msgstr "სერსორული პანელი ჩართულია" 73 | 74 | #: src/preferences_dialog.py:234 75 | msgid "Disable touchpad on typing" 76 | msgstr "" 77 | 78 | #: src/preferences_dialog.py:238 79 | msgid "" 80 | "Milliseconds to wait after the last key\n" 81 | "press before enabling the touchpad" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:249 85 | msgid "General options" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:261 89 | msgid "Autostart" 90 | msgstr "ავტოგაშვება" 91 | 92 | #: src/preferences_dialog.py:269 93 | msgid "Start hidden" 94 | msgstr "" 95 | 96 | #: src/preferences_dialog.py:273 97 | msgid "Show notifications" 98 | msgstr "" 99 | 100 | #: src/preferences_dialog.py:279 101 | msgid "Touchpad configuration" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:291 105 | msgid "Natural scrolling" 106 | msgstr "" 107 | 108 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 109 | #: src/preferences_dialog.py:514 110 | #, fuzzy 111 | msgid "Touchpad speed" 112 | msgstr "სერსორული პანელი გათიშულია" 113 | 114 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 115 | msgid "Two finger scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 119 | msgid "Edge scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:329 123 | msgid "Circular scrolling" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:340 127 | msgid "Simulation" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:344 131 | msgid "Right top corner" 132 | msgstr "" 133 | 134 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 135 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 136 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 137 | #: src/preferences_dialog.py:453 138 | #, fuzzy 139 | msgid "Disable" 140 | msgstr "სენსორული პანელის გათიშვა" 141 | 142 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 143 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 144 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 145 | #: src/preferences_dialog.py:454 146 | msgid "Left button" 147 | msgstr "" 148 | 149 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 150 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 151 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 152 | #: src/preferences_dialog.py:455 153 | msgid "Middle button" 154 | msgstr "" 155 | 156 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 157 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 158 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 159 | #: src/preferences_dialog.py:456 160 | msgid "Right button" 161 | msgstr "" 162 | 163 | #: src/preferences_dialog.py:361 164 | msgid "Right bottom corner" 165 | msgstr "" 166 | 167 | #: src/preferences_dialog.py:378 168 | msgid "Left top corner" 169 | msgstr "" 170 | 171 | #: src/preferences_dialog.py:395 172 | msgid "Left bottom corner" 173 | msgstr "" 174 | 175 | #: src/preferences_dialog.py:412 176 | msgid "One finger tap" 177 | msgstr "" 178 | 179 | #: src/preferences_dialog.py:430 180 | msgid "Two finger tap" 181 | msgstr "" 182 | 183 | #: src/preferences_dialog.py:448 184 | msgid "Three finger tap" 185 | msgstr "" 186 | 187 | #: src/preferences_dialog.py:466 188 | msgid "Driver: Synaptics" 189 | msgstr "" 190 | 191 | #: src/preferences_dialog.py:471 192 | msgid "Tapping" 193 | msgstr "" 194 | 195 | #: src/preferences_dialog.py:510 196 | msgid "Driver: Libinput" 197 | msgstr "" 198 | 199 | #: src/preferences_dialog.py:523 200 | msgid "Driver: Evdev" 201 | msgstr "" 202 | 203 | #: src/preferences_dialog.py:528 204 | msgid "Theme" 205 | msgstr "" 206 | 207 | #: src/preferences_dialog.py:540 208 | msgid "Select theme" 209 | msgstr "" 210 | 211 | #: src/preferences_dialog.py:656 212 | msgid "This shortcut + +" 213 | msgstr "" 214 | 215 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 216 | msgid " is assigned" 217 | msgstr "" 218 | 219 | #: src/preferences_dialog.py:658 220 | msgid "This shortcut + + " 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 224 | #: src/touchpadindicator.py:516 225 | msgid "Disable Touchpad" 226 | msgstr "სენსორული პანელის გათიშვა" 227 | 228 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 229 | msgid "Enable Touchpad" 230 | msgstr "სენსორული პანელის ჩართვა" 231 | 232 | #: src/touchpadindicator.py:214 233 | msgid "Touchpad Enabled" 234 | msgstr "სერსორული პანელი ჩართულია" 235 | 236 | #: src/touchpadindicator.py:219 237 | msgid "Touchpad Disabled" 238 | msgstr "სერსორული პანელი გათიშულია" 239 | 240 | #: src/touchpadindicator.py:434 241 | msgid "Project page" 242 | msgstr "" 243 | 244 | #: src/touchpadindicator.py:439 245 | msgid "Get help online..." 246 | msgstr "" 247 | 248 | #: src/touchpadindicator.py:444 249 | msgid "Translate this application..." 250 | msgstr "" 251 | 252 | #: src/touchpadindicator.py:449 253 | msgid "Report a bug..." 254 | msgstr "" 255 | 256 | #: src/touchpadindicator.py:455 257 | msgid "El atareao" 258 | msgstr "" 259 | 260 | #: src/touchpadindicator.py:460 261 | msgid "Follow me on Twitter" 262 | msgstr "" 263 | 264 | #: src/touchpadindicator.py:465 265 | msgid "Follow me on Google+" 266 | msgstr "" 267 | 268 | #: src/touchpadindicator.py:470 269 | msgid "Follow me on Facebook" 270 | msgstr "" 271 | 272 | #: src/touchpadindicator.py:503 273 | msgid "About" 274 | msgstr "" 275 | 276 | #: src/touchpadindicator.py:521 277 | msgid "Hide icon" 278 | msgstr "" 279 | 280 | #: src/touchpadindicator.py:532 281 | msgid "Help" 282 | msgstr "" 283 | 284 | #: src/touchpadindicator.py:537 285 | msgid "Exit" 286 | msgstr "გასვლა" 287 | 288 | #: src/touchpadindicator.py:552 289 | msgid "An indicator for the Touchpad" 290 | msgstr "სერნსორული პანელის ინდიკატორი" 291 | 292 | #: src/touchpadindicator.py:685 293 | msgid "usage: %prog [options]" 294 | msgstr "" 295 | 296 | #: src/touchpadindicator.py:691 297 | msgid "show this help and exit." 298 | msgstr "" 299 | 300 | #: src/touchpadindicator.py:696 301 | msgid "change the touchpad state. If indicator is not running launch it." 302 | msgstr "" 303 | 304 | #: src/touchpadindicator.py:702 305 | msgid "" 306 | "show the icon if indicator is hidden. Default action. If indicator is not " 307 | "running launch it." 308 | msgstr "" 309 | 310 | #: src/touchpadindicator.py:708 311 | msgid "list devices" 312 | msgstr "" 313 | -------------------------------------------------------------------------------- /data/icons/touchpad-indicator-normal-enabled.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 21 | 25 | 29 | 30 | 32 | 36 | 40 | 41 | 50 | 52 | 56 | 60 | 61 | 71 | 73 | 77 | 81 | 82 | 92 | 94 | 98 | 102 | 103 | 105 | 109 | 113 | 114 | 124 | 126 | 130 | 134 | 135 | 137 | 141 | 145 | 146 | 156 | 158 | 162 | 166 | 167 | 168 | 199 | 202 | 203 | 205 | 206 | 208 | image/svg+xml 209 | 211 | 212 | 213 | 214 | 215 | 220 | 226 | 232 | 233 | 234 | -------------------------------------------------------------------------------- /po/lt.po: -------------------------------------------------------------------------------- 1 | # Lithuanian translation for touchpad-indicator 2 | # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2011. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2011-10-15 06:00+0000\n" 12 | "Last-Translator: Mantas Kriaučiūnas \n" 13 | "Language-Team: Lithuanian \n" 14 | "Language: lt\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:01+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "Nustatymai" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "Išjungti jutiklinį kilimėlį (touchpad) prijungus pelę" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | #, fuzzy 61 | msgid "Enable touchpad" 62 | msgstr "Įjungti jutiklinį kilimėlį (touchpad)" 63 | 64 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 65 | #, fuzzy 66 | msgid "Disable touchpad" 67 | msgstr "Išjungti jutiklinį kilimėlį (touchpad)" 68 | 69 | #: src/preferences_dialog.py:216 70 | #, fuzzy 71 | msgid "On Touchpad Indicator ends:" 72 | msgstr "Įjungtas jutiklinis kilimėlis (touchpad)" 73 | 74 | #: src/preferences_dialog.py:234 75 | msgid "Disable touchpad on typing" 76 | msgstr "" 77 | 78 | #: src/preferences_dialog.py:238 79 | msgid "" 80 | "Milliseconds to wait after the last key\n" 81 | "press before enabling the touchpad" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:249 85 | msgid "General options" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:261 89 | msgid "Autostart" 90 | msgstr "Automatinis pasileidimas" 91 | 92 | #: src/preferences_dialog.py:269 93 | msgid "Start hidden" 94 | msgstr "" 95 | 96 | #: src/preferences_dialog.py:273 97 | msgid "Show notifications" 98 | msgstr "" 99 | 100 | #: src/preferences_dialog.py:279 101 | msgid "Touchpad configuration" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:291 105 | msgid "Natural scrolling" 106 | msgstr "" 107 | 108 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 109 | #: src/preferences_dialog.py:514 110 | #, fuzzy 111 | msgid "Touchpad speed" 112 | msgstr "Išjungtas jutiklinis kilimėlis (touchpad)" 113 | 114 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 115 | msgid "Two finger scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 119 | msgid "Edge scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:329 123 | msgid "Circular scrolling" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:340 127 | msgid "Simulation" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:344 131 | msgid "Right top corner" 132 | msgstr "" 133 | 134 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 135 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 136 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 137 | #: src/preferences_dialog.py:453 138 | #, fuzzy 139 | msgid "Disable" 140 | msgstr "Išjungti jutiklinį kilimėlį (touchpad)" 141 | 142 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 143 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 144 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 145 | #: src/preferences_dialog.py:454 146 | msgid "Left button" 147 | msgstr "" 148 | 149 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 150 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 151 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 152 | #: src/preferences_dialog.py:455 153 | msgid "Middle button" 154 | msgstr "" 155 | 156 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 157 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 158 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 159 | #: src/preferences_dialog.py:456 160 | msgid "Right button" 161 | msgstr "" 162 | 163 | #: src/preferences_dialog.py:361 164 | msgid "Right bottom corner" 165 | msgstr "" 166 | 167 | #: src/preferences_dialog.py:378 168 | msgid "Left top corner" 169 | msgstr "" 170 | 171 | #: src/preferences_dialog.py:395 172 | msgid "Left bottom corner" 173 | msgstr "" 174 | 175 | #: src/preferences_dialog.py:412 176 | msgid "One finger tap" 177 | msgstr "" 178 | 179 | #: src/preferences_dialog.py:430 180 | msgid "Two finger tap" 181 | msgstr "" 182 | 183 | #: src/preferences_dialog.py:448 184 | msgid "Three finger tap" 185 | msgstr "" 186 | 187 | #: src/preferences_dialog.py:466 188 | msgid "Driver: Synaptics" 189 | msgstr "" 190 | 191 | #: src/preferences_dialog.py:471 192 | msgid "Tapping" 193 | msgstr "" 194 | 195 | #: src/preferences_dialog.py:510 196 | msgid "Driver: Libinput" 197 | msgstr "" 198 | 199 | #: src/preferences_dialog.py:523 200 | msgid "Driver: Evdev" 201 | msgstr "" 202 | 203 | #: src/preferences_dialog.py:528 204 | msgid "Theme" 205 | msgstr "" 206 | 207 | #: src/preferences_dialog.py:540 208 | msgid "Select theme" 209 | msgstr "" 210 | 211 | #: src/preferences_dialog.py:656 212 | msgid "This shortcut + +" 213 | msgstr "" 214 | 215 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 216 | msgid " is assigned" 217 | msgstr "" 218 | 219 | #: src/preferences_dialog.py:658 220 | msgid "This shortcut + + " 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 224 | #: src/touchpadindicator.py:516 225 | msgid "Disable Touchpad" 226 | msgstr "Išjungti jutiklinį kilimėlį (touchpad)" 227 | 228 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 229 | msgid "Enable Touchpad" 230 | msgstr "Įjungti jutiklinį kilimėlį (touchpad)" 231 | 232 | #: src/touchpadindicator.py:214 233 | msgid "Touchpad Enabled" 234 | msgstr "Įjungtas jutiklinis kilimėlis (touchpad)" 235 | 236 | #: src/touchpadindicator.py:219 237 | msgid "Touchpad Disabled" 238 | msgstr "Išjungtas jutiklinis kilimėlis (touchpad)" 239 | 240 | #: src/touchpadindicator.py:434 241 | msgid "Project page" 242 | msgstr "" 243 | 244 | #: src/touchpadindicator.py:439 245 | msgid "Get help online..." 246 | msgstr "" 247 | 248 | #: src/touchpadindicator.py:444 249 | msgid "Translate this application..." 250 | msgstr "" 251 | 252 | #: src/touchpadindicator.py:449 253 | msgid "Report a bug..." 254 | msgstr "" 255 | 256 | #: src/touchpadindicator.py:455 257 | msgid "El atareao" 258 | msgstr "" 259 | 260 | #: src/touchpadindicator.py:460 261 | msgid "Follow me on Twitter" 262 | msgstr "" 263 | 264 | #: src/touchpadindicator.py:465 265 | msgid "Follow me on Google+" 266 | msgstr "" 267 | 268 | #: src/touchpadindicator.py:470 269 | msgid "Follow me on Facebook" 270 | msgstr "" 271 | 272 | #: src/touchpadindicator.py:503 273 | msgid "About" 274 | msgstr "" 275 | 276 | #: src/touchpadindicator.py:521 277 | msgid "Hide icon" 278 | msgstr "" 279 | 280 | #: src/touchpadindicator.py:532 281 | msgid "Help" 282 | msgstr "" 283 | 284 | #: src/touchpadindicator.py:537 285 | msgid "Exit" 286 | msgstr "Baigti" 287 | 288 | #: src/touchpadindicator.py:552 289 | msgid "An indicator for the Touchpad" 290 | msgstr "Jutiklinio kilimėlio (touchpad) indikatorius" 291 | 292 | #: src/touchpadindicator.py:685 293 | msgid "usage: %prog [options]" 294 | msgstr "" 295 | 296 | #: src/touchpadindicator.py:691 297 | msgid "show this help and exit." 298 | msgstr "" 299 | 300 | #: src/touchpadindicator.py:696 301 | msgid "change the touchpad state. If indicator is not running launch it." 302 | msgstr "" 303 | 304 | #: src/touchpadindicator.py:702 305 | msgid "" 306 | "show the icon if indicator is hidden. Default action. If indicator is not " 307 | "running launch it." 308 | msgstr "" 309 | 310 | #: src/touchpadindicator.py:708 311 | msgid "list devices" 312 | msgstr "" 313 | -------------------------------------------------------------------------------- /po/pl.po: -------------------------------------------------------------------------------- 1 | # Polish translation for touchpad-indicator 2 | # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2011. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2011-10-15 06:00+0000\n" 12 | "Last-Translator: Lorenzo Carbonell \n" 13 | "Language-Team: Polish \n" 14 | "Language: pl\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:01+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "Ustawienia" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "Aktywator" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "Wyłącz Touchpad gdy myszka jest podłączona" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | #, fuzzy 61 | msgid "Enable touchpad" 62 | msgstr "Włącz Touchpad" 63 | 64 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 65 | #, fuzzy 66 | msgid "Disable touchpad" 67 | msgstr "Wyłącz Touchpad" 68 | 69 | #: src/preferences_dialog.py:216 70 | #, fuzzy 71 | msgid "On Touchpad Indicator ends:" 72 | msgstr "Touchpad włączony" 73 | 74 | #: src/preferences_dialog.py:234 75 | msgid "Disable touchpad on typing" 76 | msgstr "" 77 | 78 | #: src/preferences_dialog.py:238 79 | msgid "" 80 | "Milliseconds to wait after the last key\n" 81 | "press before enabling the touchpad" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:249 85 | msgid "General options" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:261 89 | msgid "Autostart" 90 | msgstr "Uruchamiaj automatycznie" 91 | 92 | #: src/preferences_dialog.py:269 93 | msgid "Start hidden" 94 | msgstr "Uruchom ukryty" 95 | 96 | #: src/preferences_dialog.py:273 97 | msgid "Show notifications" 98 | msgstr "" 99 | 100 | #: src/preferences_dialog.py:279 101 | msgid "Touchpad configuration" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:291 105 | msgid "Natural scrolling" 106 | msgstr "" 107 | 108 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 109 | #: src/preferences_dialog.py:514 110 | #, fuzzy 111 | msgid "Touchpad speed" 112 | msgstr "Touchpad wyłączony" 113 | 114 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 115 | msgid "Two finger scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 119 | msgid "Edge scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:329 123 | msgid "Circular scrolling" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:340 127 | msgid "Simulation" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:344 131 | msgid "Right top corner" 132 | msgstr "" 133 | 134 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 135 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 136 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 137 | #: src/preferences_dialog.py:453 138 | #, fuzzy 139 | msgid "Disable" 140 | msgstr "Wyłącz Touchpad" 141 | 142 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 143 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 144 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 145 | #: src/preferences_dialog.py:454 146 | msgid "Left button" 147 | msgstr "" 148 | 149 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 150 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 151 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 152 | #: src/preferences_dialog.py:455 153 | msgid "Middle button" 154 | msgstr "" 155 | 156 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 157 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 158 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 159 | #: src/preferences_dialog.py:456 160 | msgid "Right button" 161 | msgstr "" 162 | 163 | #: src/preferences_dialog.py:361 164 | msgid "Right bottom corner" 165 | msgstr "" 166 | 167 | #: src/preferences_dialog.py:378 168 | msgid "Left top corner" 169 | msgstr "" 170 | 171 | #: src/preferences_dialog.py:395 172 | msgid "Left bottom corner" 173 | msgstr "" 174 | 175 | #: src/preferences_dialog.py:412 176 | msgid "One finger tap" 177 | msgstr "" 178 | 179 | #: src/preferences_dialog.py:430 180 | msgid "Two finger tap" 181 | msgstr "" 182 | 183 | #: src/preferences_dialog.py:448 184 | msgid "Three finger tap" 185 | msgstr "" 186 | 187 | #: src/preferences_dialog.py:466 188 | msgid "Driver: Synaptics" 189 | msgstr "" 190 | 191 | #: src/preferences_dialog.py:471 192 | msgid "Tapping" 193 | msgstr "" 194 | 195 | #: src/preferences_dialog.py:510 196 | msgid "Driver: Libinput" 197 | msgstr "" 198 | 199 | #: src/preferences_dialog.py:523 200 | msgid "Driver: Evdev" 201 | msgstr "" 202 | 203 | #: src/preferences_dialog.py:528 204 | msgid "Theme" 205 | msgstr "" 206 | 207 | #: src/preferences_dialog.py:540 208 | msgid "Select theme" 209 | msgstr "" 210 | 211 | #: src/preferences_dialog.py:656 212 | msgid "This shortcut + +" 213 | msgstr "" 214 | 215 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 216 | msgid " is assigned" 217 | msgstr "" 218 | 219 | #: src/preferences_dialog.py:658 220 | msgid "This shortcut + + " 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 224 | #: src/touchpadindicator.py:516 225 | msgid "Disable Touchpad" 226 | msgstr "Wyłącz Touchpad" 227 | 228 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 229 | msgid "Enable Touchpad" 230 | msgstr "Włącz Touchpad" 231 | 232 | #: src/touchpadindicator.py:214 233 | msgid "Touchpad Enabled" 234 | msgstr "Touchpad włączony" 235 | 236 | #: src/touchpadindicator.py:219 237 | msgid "Touchpad Disabled" 238 | msgstr "Touchpad wyłączony" 239 | 240 | #: src/touchpadindicator.py:434 241 | msgid "Project page" 242 | msgstr "" 243 | 244 | #: src/touchpadindicator.py:439 245 | msgid "Get help online..." 246 | msgstr "Uzyskaj pomoc w sieci..." 247 | 248 | #: src/touchpadindicator.py:444 249 | msgid "Translate this application..." 250 | msgstr "Przetłumacz ten program..." 251 | 252 | #: src/touchpadindicator.py:449 253 | msgid "Report a bug..." 254 | msgstr "Zgłoś błąd..." 255 | 256 | #: src/touchpadindicator.py:455 257 | msgid "El atareao" 258 | msgstr "" 259 | 260 | #: src/touchpadindicator.py:460 261 | msgid "Follow me on Twitter" 262 | msgstr "" 263 | 264 | #: src/touchpadindicator.py:465 265 | msgid "Follow me on Google+" 266 | msgstr "" 267 | 268 | #: src/touchpadindicator.py:470 269 | msgid "Follow me on Facebook" 270 | msgstr "" 271 | 272 | #: src/touchpadindicator.py:503 273 | msgid "About" 274 | msgstr "O programie" 275 | 276 | #: src/touchpadindicator.py:521 277 | msgid "Hide icon" 278 | msgstr "Ukryj ikonę" 279 | 280 | #: src/touchpadindicator.py:532 281 | msgid "Help" 282 | msgstr "Pomoc" 283 | 284 | #: src/touchpadindicator.py:537 285 | msgid "Exit" 286 | msgstr "Zakończ" 287 | 288 | #: src/touchpadindicator.py:552 289 | msgid "An indicator for the Touchpad" 290 | msgstr "Wskaźnik Touchpad" 291 | 292 | #: src/touchpadindicator.py:685 293 | msgid "usage: %prog [options]" 294 | msgstr "" 295 | 296 | #: src/touchpadindicator.py:691 297 | msgid "show this help and exit." 298 | msgstr "" 299 | 300 | #: src/touchpadindicator.py:696 301 | msgid "change the touchpad state. If indicator is not running launch it." 302 | msgstr "" 303 | 304 | #: src/touchpadindicator.py:702 305 | msgid "" 306 | "show the icon if indicator is hidden. Default action. If indicator is not " 307 | "running launch it." 308 | msgstr "" 309 | 310 | #: src/touchpadindicator.py:708 311 | msgid "list devices" 312 | msgstr "" 313 | 314 | #~ msgid "Normal" 315 | #~ msgstr "Normalny" 316 | 317 | #~ msgid "Select icon theme" 318 | #~ msgstr "Wybierz styl ikon" 319 | 320 | #~ msgid "Application Web..." 321 | #~ msgstr "Strona programu..." 322 | -------------------------------------------------------------------------------- /po/sv.po: -------------------------------------------------------------------------------- 1 | # Swedish translation for touchpad-indicator 2 | # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2011. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2011-10-15 06:00+0000\n" 12 | "Last-Translator: Isak Frants \n" 13 | "Language-Team: Swedish \n" 14 | "Language: sv\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:01+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "Inställningar" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "Genväg" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "Inaktivera styrplatta när mus ikopplas" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | #, fuzzy 61 | msgid "Enable touchpad" 62 | msgstr "Aktivera Styrplatta" 63 | 64 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 65 | #, fuzzy 66 | msgid "Disable touchpad" 67 | msgstr "Inaktivera Styrplatta" 68 | 69 | #: src/preferences_dialog.py:216 70 | #, fuzzy 71 | msgid "On Touchpad Indicator ends:" 72 | msgstr "Styrplattan Aktiverad" 73 | 74 | #: src/preferences_dialog.py:234 75 | msgid "Disable touchpad on typing" 76 | msgstr "" 77 | 78 | #: src/preferences_dialog.py:238 79 | msgid "" 80 | "Milliseconds to wait after the last key\n" 81 | "press before enabling the touchpad" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:249 85 | msgid "General options" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:261 89 | msgid "Autostart" 90 | msgstr "Starta automatiskt" 91 | 92 | #: src/preferences_dialog.py:269 93 | msgid "Start hidden" 94 | msgstr "Starta dold" 95 | 96 | #: src/preferences_dialog.py:273 97 | msgid "Show notifications" 98 | msgstr "" 99 | 100 | #: src/preferences_dialog.py:279 101 | msgid "Touchpad configuration" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:291 105 | msgid "Natural scrolling" 106 | msgstr "" 107 | 108 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 109 | #: src/preferences_dialog.py:514 110 | #, fuzzy 111 | msgid "Touchpad speed" 112 | msgstr "Styrplattan Inaktiverad" 113 | 114 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 115 | msgid "Two finger scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 119 | msgid "Edge scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:329 123 | msgid "Circular scrolling" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:340 127 | msgid "Simulation" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:344 131 | msgid "Right top corner" 132 | msgstr "" 133 | 134 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 135 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 136 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 137 | #: src/preferences_dialog.py:453 138 | #, fuzzy 139 | msgid "Disable" 140 | msgstr "Inaktivera Styrplatta" 141 | 142 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 143 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 144 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 145 | #: src/preferences_dialog.py:454 146 | msgid "Left button" 147 | msgstr "" 148 | 149 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 150 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 151 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 152 | #: src/preferences_dialog.py:455 153 | msgid "Middle button" 154 | msgstr "" 155 | 156 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 157 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 158 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 159 | #: src/preferences_dialog.py:456 160 | msgid "Right button" 161 | msgstr "" 162 | 163 | #: src/preferences_dialog.py:361 164 | msgid "Right bottom corner" 165 | msgstr "" 166 | 167 | #: src/preferences_dialog.py:378 168 | msgid "Left top corner" 169 | msgstr "" 170 | 171 | #: src/preferences_dialog.py:395 172 | msgid "Left bottom corner" 173 | msgstr "" 174 | 175 | #: src/preferences_dialog.py:412 176 | msgid "One finger tap" 177 | msgstr "" 178 | 179 | #: src/preferences_dialog.py:430 180 | msgid "Two finger tap" 181 | msgstr "" 182 | 183 | #: src/preferences_dialog.py:448 184 | msgid "Three finger tap" 185 | msgstr "" 186 | 187 | #: src/preferences_dialog.py:466 188 | msgid "Driver: Synaptics" 189 | msgstr "" 190 | 191 | #: src/preferences_dialog.py:471 192 | msgid "Tapping" 193 | msgstr "" 194 | 195 | #: src/preferences_dialog.py:510 196 | msgid "Driver: Libinput" 197 | msgstr "" 198 | 199 | #: src/preferences_dialog.py:523 200 | msgid "Driver: Evdev" 201 | msgstr "" 202 | 203 | #: src/preferences_dialog.py:528 204 | msgid "Theme" 205 | msgstr "" 206 | 207 | #: src/preferences_dialog.py:540 208 | msgid "Select theme" 209 | msgstr "" 210 | 211 | #: src/preferences_dialog.py:656 212 | msgid "This shortcut + +" 213 | msgstr "" 214 | 215 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 216 | msgid " is assigned" 217 | msgstr "" 218 | 219 | #: src/preferences_dialog.py:658 220 | msgid "This shortcut + + " 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 224 | #: src/touchpadindicator.py:516 225 | msgid "Disable Touchpad" 226 | msgstr "Inaktivera Styrplatta" 227 | 228 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 229 | msgid "Enable Touchpad" 230 | msgstr "Aktivera Styrplatta" 231 | 232 | #: src/touchpadindicator.py:214 233 | msgid "Touchpad Enabled" 234 | msgstr "Styrplattan Aktiverad" 235 | 236 | #: src/touchpadindicator.py:219 237 | msgid "Touchpad Disabled" 238 | msgstr "Styrplattan Inaktiverad" 239 | 240 | #: src/touchpadindicator.py:434 241 | msgid "Project page" 242 | msgstr "" 243 | 244 | #: src/touchpadindicator.py:439 245 | msgid "Get help online..." 246 | msgstr "Få hjälp online..." 247 | 248 | #: src/touchpadindicator.py:444 249 | msgid "Translate this application..." 250 | msgstr "Översätt programmet..." 251 | 252 | #: src/touchpadindicator.py:449 253 | msgid "Report a bug..." 254 | msgstr "Rapportera en bugg..." 255 | 256 | #: src/touchpadindicator.py:455 257 | msgid "El atareao" 258 | msgstr "" 259 | 260 | #: src/touchpadindicator.py:460 261 | msgid "Follow me on Twitter" 262 | msgstr "" 263 | 264 | #: src/touchpadindicator.py:465 265 | msgid "Follow me on Google+" 266 | msgstr "" 267 | 268 | #: src/touchpadindicator.py:470 269 | msgid "Follow me on Facebook" 270 | msgstr "" 271 | 272 | #: src/touchpadindicator.py:503 273 | msgid "About" 274 | msgstr "Om" 275 | 276 | #: src/touchpadindicator.py:521 277 | msgid "Hide icon" 278 | msgstr "Dölj ikon" 279 | 280 | #: src/touchpadindicator.py:532 281 | msgid "Help" 282 | msgstr "Hjälp" 283 | 284 | #: src/touchpadindicator.py:537 285 | msgid "Exit" 286 | msgstr "Avsluta" 287 | 288 | #: src/touchpadindicator.py:552 289 | msgid "An indicator for the Touchpad" 290 | msgstr "En indikator för styrplatta" 291 | 292 | #: src/touchpadindicator.py:685 293 | msgid "usage: %prog [options]" 294 | msgstr "" 295 | 296 | #: src/touchpadindicator.py:691 297 | msgid "show this help and exit." 298 | msgstr "" 299 | 300 | #: src/touchpadindicator.py:696 301 | msgid "change the touchpad state. If indicator is not running launch it." 302 | msgstr "" 303 | 304 | #: src/touchpadindicator.py:702 305 | msgid "" 306 | "show the icon if indicator is hidden. Default action. If indicator is not " 307 | "running launch it." 308 | msgstr "" 309 | 310 | #: src/touchpadindicator.py:708 311 | msgid "list devices" 312 | msgstr "" 313 | 314 | #~ msgid "Select icon theme" 315 | #~ msgstr "Välj ikontema" 316 | 317 | #~ msgid "Normal" 318 | #~ msgstr "Normal" 319 | 320 | #~ msgid "Dark" 321 | #~ msgstr "Mörk" 322 | 323 | #~ msgid "Light" 324 | #~ msgstr "Ljus" 325 | -------------------------------------------------------------------------------- /po/sr.po: -------------------------------------------------------------------------------- 1 | # Serbian translation for touchpad-indicator 2 | # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2011. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2013-06-09 08:06+0000\n" 12 | "Last-Translator: Мирослав Николић \n" 13 | "Language-Team: Serbian \n" 14 | "Language: sr\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:01+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "Поставке" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "Пречица" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | #, fuzzy 61 | msgid "Enable touchpad" 62 | msgstr "Укључи додирну таблу" 63 | 64 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 65 | #, fuzzy 66 | msgid "Disable touchpad" 67 | msgstr "Искључи додирну таблу" 68 | 69 | #: src/preferences_dialog.py:216 70 | #, fuzzy 71 | msgid "On Touchpad Indicator ends:" 72 | msgstr "Укључена додирна табла" 73 | 74 | #: src/preferences_dialog.py:234 75 | msgid "Disable touchpad on typing" 76 | msgstr "" 77 | 78 | #: src/preferences_dialog.py:238 79 | msgid "" 80 | "Milliseconds to wait after the last key\n" 81 | "press before enabling the touchpad" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:249 85 | msgid "General options" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:261 89 | msgid "Autostart" 90 | msgstr "Самопокретање" 91 | 92 | #: src/preferences_dialog.py:269 93 | msgid "Start hidden" 94 | msgstr "Започни скривен" 95 | 96 | #: src/preferences_dialog.py:273 97 | msgid "Show notifications" 98 | msgstr "" 99 | 100 | #: src/preferences_dialog.py:279 101 | msgid "Touchpad configuration" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:291 105 | msgid "Natural scrolling" 106 | msgstr "" 107 | 108 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 109 | #: src/preferences_dialog.py:514 110 | #, fuzzy 111 | msgid "Touchpad speed" 112 | msgstr "Искључена додирна табла" 113 | 114 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 115 | msgid "Two finger scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 119 | msgid "Edge scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:329 123 | msgid "Circular scrolling" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:340 127 | msgid "Simulation" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:344 131 | msgid "Right top corner" 132 | msgstr "" 133 | 134 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 135 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 136 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 137 | #: src/preferences_dialog.py:453 138 | #, fuzzy 139 | msgid "Disable" 140 | msgstr "Искључи додирну таблу" 141 | 142 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 143 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 144 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 145 | #: src/preferences_dialog.py:454 146 | msgid "Left button" 147 | msgstr "" 148 | 149 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 150 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 151 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 152 | #: src/preferences_dialog.py:455 153 | msgid "Middle button" 154 | msgstr "" 155 | 156 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 157 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 158 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 159 | #: src/preferences_dialog.py:456 160 | msgid "Right button" 161 | msgstr "" 162 | 163 | #: src/preferences_dialog.py:361 164 | msgid "Right bottom corner" 165 | msgstr "" 166 | 167 | #: src/preferences_dialog.py:378 168 | msgid "Left top corner" 169 | msgstr "" 170 | 171 | #: src/preferences_dialog.py:395 172 | msgid "Left bottom corner" 173 | msgstr "" 174 | 175 | #: src/preferences_dialog.py:412 176 | msgid "One finger tap" 177 | msgstr "" 178 | 179 | #: src/preferences_dialog.py:430 180 | msgid "Two finger tap" 181 | msgstr "" 182 | 183 | #: src/preferences_dialog.py:448 184 | msgid "Three finger tap" 185 | msgstr "" 186 | 187 | #: src/preferences_dialog.py:466 188 | msgid "Driver: Synaptics" 189 | msgstr "" 190 | 191 | #: src/preferences_dialog.py:471 192 | msgid "Tapping" 193 | msgstr "" 194 | 195 | #: src/preferences_dialog.py:510 196 | msgid "Driver: Libinput" 197 | msgstr "" 198 | 199 | #: src/preferences_dialog.py:523 200 | msgid "Driver: Evdev" 201 | msgstr "" 202 | 203 | #: src/preferences_dialog.py:528 204 | msgid "Theme" 205 | msgstr "" 206 | 207 | #: src/preferences_dialog.py:540 208 | msgid "Select theme" 209 | msgstr "" 210 | 211 | #: src/preferences_dialog.py:656 212 | msgid "This shortcut + +" 213 | msgstr "" 214 | 215 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 216 | msgid " is assigned" 217 | msgstr "" 218 | 219 | #: src/preferences_dialog.py:658 220 | msgid "This shortcut + + " 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 224 | #: src/touchpadindicator.py:516 225 | msgid "Disable Touchpad" 226 | msgstr "Искључи додирну таблу" 227 | 228 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 229 | msgid "Enable Touchpad" 230 | msgstr "Укључи додирну таблу" 231 | 232 | #: src/touchpadindicator.py:214 233 | msgid "Touchpad Enabled" 234 | msgstr "Укључена додирна табла" 235 | 236 | #: src/touchpadindicator.py:219 237 | msgid "Touchpad Disabled" 238 | msgstr "Искључена додирна табла" 239 | 240 | #: src/touchpadindicator.py:434 241 | #, fuzzy 242 | msgid "Project page" 243 | msgstr "Почетна страна" 244 | 245 | #: src/touchpadindicator.py:439 246 | msgid "Get help online..." 247 | msgstr "Нађите помоћ на мрежи..." 248 | 249 | #: src/touchpadindicator.py:444 250 | msgid "Translate this application..." 251 | msgstr "Преведите овај програм..." 252 | 253 | #: src/touchpadindicator.py:449 254 | msgid "Report a bug..." 255 | msgstr "Пријавите грешку..." 256 | 257 | #: src/touchpadindicator.py:455 258 | msgid "El atareao" 259 | msgstr "" 260 | 261 | #: src/touchpadindicator.py:460 262 | #, fuzzy 263 | msgid "Follow me on Twitter" 264 | msgstr "Пратите нас на Твитеру" 265 | 266 | #: src/touchpadindicator.py:465 267 | #, fuzzy 268 | msgid "Follow me on Google+" 269 | msgstr "Пратите нас на Гугл+" 270 | 271 | #: src/touchpadindicator.py:470 272 | #, fuzzy 273 | msgid "Follow me on Facebook" 274 | msgstr "Пратите нас на Фејсбуку" 275 | 276 | #: src/touchpadindicator.py:503 277 | msgid "About" 278 | msgstr "О програму" 279 | 280 | #: src/touchpadindicator.py:521 281 | msgid "Hide icon" 282 | msgstr "Сакриј иконицу" 283 | 284 | #: src/touchpadindicator.py:532 285 | msgid "Help" 286 | msgstr "Помоћ" 287 | 288 | #: src/touchpadindicator.py:537 289 | msgid "Exit" 290 | msgstr "Напусти" 291 | 292 | #: src/touchpadindicator.py:552 293 | msgid "An indicator for the Touchpad" 294 | msgstr "Указивач за Додирну таблу" 295 | 296 | #: src/touchpadindicator.py:685 297 | msgid "usage: %prog [options]" 298 | msgstr "коришћење: %prog [могућности]" 299 | 300 | #: src/touchpadindicator.py:691 301 | msgid "show this help and exit." 302 | msgstr "приказује ову помоћ и излази." 303 | 304 | #: src/touchpadindicator.py:696 305 | msgid "change the touchpad state. If indicator is not running launch it." 306 | msgstr "" 307 | 308 | #: src/touchpadindicator.py:702 309 | msgid "" 310 | "show the icon if indicator is hidden. Default action. If indicator is not " 311 | "running launch it." 312 | msgstr "" 313 | 314 | #: src/touchpadindicator.py:708 315 | msgid "list devices" 316 | msgstr "" 317 | 318 | #~ msgid "Select icon theme" 319 | #~ msgstr "Изаберите тему иконице" 320 | 321 | #~ msgid "Normal" 322 | #~ msgstr "Нормално" 323 | 324 | #~ msgid "Light" 325 | #~ msgstr "Светло" 326 | 327 | #~ msgid "Dark" 328 | #~ msgstr "Тамно" 329 | -------------------------------------------------------------------------------- /po/cs.po: -------------------------------------------------------------------------------- 1 | # Czech translation for touchpad-indicator 2 | # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2011. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2012-01-08 12:35+0000\n" 12 | "Last-Translator: Jakub Jezbera \n" 13 | "Language-Team: Czech \n" 14 | "Language: cs\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:01+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "Nastavení" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "Klávesová zkratka" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "Zakázat touchpad po zapojení myši" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | msgid "On Touchpad Indicator starts:" 53 | msgstr "" 54 | 55 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 56 | msgid "None" 57 | msgstr "" 58 | 59 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 60 | #, fuzzy 61 | msgid "Enable touchpad" 62 | msgstr "Povolit touchpad" 63 | 64 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 65 | #, fuzzy 66 | msgid "Disable touchpad" 67 | msgstr "Zakázat touchpad" 68 | 69 | #: src/preferences_dialog.py:216 70 | #, fuzzy 71 | msgid "On Touchpad Indicator ends:" 72 | msgstr "Touchpad povolen" 73 | 74 | #: src/preferences_dialog.py:234 75 | msgid "Disable touchpad on typing" 76 | msgstr "" 77 | 78 | #: src/preferences_dialog.py:238 79 | msgid "" 80 | "Milliseconds to wait after the last key\n" 81 | "press before enabling the touchpad" 82 | msgstr "" 83 | 84 | #: src/preferences_dialog.py:249 85 | msgid "General options" 86 | msgstr "" 87 | 88 | #: src/preferences_dialog.py:261 89 | msgid "Autostart" 90 | msgstr "Automatické spuštění" 91 | 92 | #: src/preferences_dialog.py:269 93 | msgid "Start hidden" 94 | msgstr "Spustit minimalizovaný" 95 | 96 | #: src/preferences_dialog.py:273 97 | msgid "Show notifications" 98 | msgstr "Zobrazovat upozornění" 99 | 100 | #: src/preferences_dialog.py:279 101 | msgid "Touchpad configuration" 102 | msgstr "" 103 | 104 | #: src/preferences_dialog.py:291 105 | msgid "Natural scrolling" 106 | msgstr "" 107 | 108 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 109 | #: src/preferences_dialog.py:514 110 | #, fuzzy 111 | msgid "Touchpad speed" 112 | msgstr "Touchpad zakázán" 113 | 114 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 115 | msgid "Two finger scrolling" 116 | msgstr "" 117 | 118 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 119 | msgid "Edge scrolling" 120 | msgstr "" 121 | 122 | #: src/preferences_dialog.py:329 123 | msgid "Circular scrolling" 124 | msgstr "" 125 | 126 | #: src/preferences_dialog.py:340 127 | msgid "Simulation" 128 | msgstr "" 129 | 130 | #: src/preferences_dialog.py:344 131 | msgid "Right top corner" 132 | msgstr "" 133 | 134 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 135 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 136 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 137 | #: src/preferences_dialog.py:453 138 | #, fuzzy 139 | msgid "Disable" 140 | msgstr "Zakázat touchpad" 141 | 142 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 143 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 144 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 145 | #: src/preferences_dialog.py:454 146 | msgid "Left button" 147 | msgstr "" 148 | 149 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 150 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 151 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 152 | #: src/preferences_dialog.py:455 153 | msgid "Middle button" 154 | msgstr "" 155 | 156 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 157 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 158 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 159 | #: src/preferences_dialog.py:456 160 | msgid "Right button" 161 | msgstr "" 162 | 163 | #: src/preferences_dialog.py:361 164 | msgid "Right bottom corner" 165 | msgstr "" 166 | 167 | #: src/preferences_dialog.py:378 168 | msgid "Left top corner" 169 | msgstr "" 170 | 171 | #: src/preferences_dialog.py:395 172 | msgid "Left bottom corner" 173 | msgstr "" 174 | 175 | #: src/preferences_dialog.py:412 176 | msgid "One finger tap" 177 | msgstr "" 178 | 179 | #: src/preferences_dialog.py:430 180 | msgid "Two finger tap" 181 | msgstr "" 182 | 183 | #: src/preferences_dialog.py:448 184 | msgid "Three finger tap" 185 | msgstr "" 186 | 187 | #: src/preferences_dialog.py:466 188 | msgid "Driver: Synaptics" 189 | msgstr "" 190 | 191 | #: src/preferences_dialog.py:471 192 | msgid "Tapping" 193 | msgstr "" 194 | 195 | #: src/preferences_dialog.py:510 196 | msgid "Driver: Libinput" 197 | msgstr "" 198 | 199 | #: src/preferences_dialog.py:523 200 | msgid "Driver: Evdev" 201 | msgstr "" 202 | 203 | #: src/preferences_dialog.py:528 204 | msgid "Theme" 205 | msgstr "" 206 | 207 | #: src/preferences_dialog.py:540 208 | msgid "Select theme" 209 | msgstr "" 210 | 211 | #: src/preferences_dialog.py:656 212 | msgid "This shortcut + +" 213 | msgstr "" 214 | 215 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 216 | msgid " is assigned" 217 | msgstr "" 218 | 219 | #: src/preferences_dialog.py:658 220 | msgid "This shortcut + + " 221 | msgstr "" 222 | 223 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 224 | #: src/touchpadindicator.py:516 225 | msgid "Disable Touchpad" 226 | msgstr "Zakázat touchpad" 227 | 228 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 229 | msgid "Enable Touchpad" 230 | msgstr "Povolit touchpad" 231 | 232 | #: src/touchpadindicator.py:214 233 | msgid "Touchpad Enabled" 234 | msgstr "Touchpad povolen" 235 | 236 | #: src/touchpadindicator.py:219 237 | msgid "Touchpad Disabled" 238 | msgstr "Touchpad zakázán" 239 | 240 | #: src/touchpadindicator.py:434 241 | msgid "Project page" 242 | msgstr "" 243 | 244 | #: src/touchpadindicator.py:439 245 | msgid "Get help online..." 246 | msgstr "Získat pomoc online..." 247 | 248 | #: src/touchpadindicator.py:444 249 | msgid "Translate this application..." 250 | msgstr "Přeložit tuto aplikaci..." 251 | 252 | #: src/touchpadindicator.py:449 253 | msgid "Report a bug..." 254 | msgstr "Nahlásit chybu..." 255 | 256 | #: src/touchpadindicator.py:455 257 | msgid "El atareao" 258 | msgstr "" 259 | 260 | #: src/touchpadindicator.py:460 261 | msgid "Follow me on Twitter" 262 | msgstr "" 263 | 264 | #: src/touchpadindicator.py:465 265 | msgid "Follow me on Google+" 266 | msgstr "" 267 | 268 | #: src/touchpadindicator.py:470 269 | msgid "Follow me on Facebook" 270 | msgstr "" 271 | 272 | #: src/touchpadindicator.py:503 273 | msgid "About" 274 | msgstr "O aplikaci" 275 | 276 | #: src/touchpadindicator.py:521 277 | msgid "Hide icon" 278 | msgstr "Skrýt ikonu" 279 | 280 | #: src/touchpadindicator.py:532 281 | msgid "Help" 282 | msgstr "Nápoveda" 283 | 284 | #: src/touchpadindicator.py:537 285 | msgid "Exit" 286 | msgstr "Ukončit" 287 | 288 | #: src/touchpadindicator.py:552 289 | msgid "An indicator for the Touchpad" 290 | msgstr "Indikátor pro touchpad" 291 | 292 | #: src/touchpadindicator.py:685 293 | msgid "usage: %prog [options]" 294 | msgstr "" 295 | 296 | #: src/touchpadindicator.py:691 297 | msgid "show this help and exit." 298 | msgstr "" 299 | 300 | #: src/touchpadindicator.py:696 301 | msgid "change the touchpad state. If indicator is not running launch it." 302 | msgstr "" 303 | 304 | #: src/touchpadindicator.py:702 305 | msgid "" 306 | "show the icon if indicator is hidden. Default action. If indicator is not " 307 | "running launch it." 308 | msgstr "" 309 | 310 | #: src/touchpadindicator.py:708 311 | msgid "list devices" 312 | msgstr "" 313 | 314 | #~ msgid "Select icon theme" 315 | #~ msgstr "Nastavit vzhled ikony" 316 | 317 | #~ msgid "Normal" 318 | #~ msgstr "Normální" 319 | 320 | #~ msgid "Light" 321 | #~ msgstr "Světlá" 322 | 323 | #~ msgid "Dark" 324 | #~ msgstr "Tmavá" 325 | 326 | #~ msgid "Application Web..." 327 | #~ msgstr "Webová stránka aplikace..." 328 | 329 | #~ msgid "Super+" 330 | #~ msgstr "Super+" 331 | 332 | #~ msgid "Alt+" 333 | #~ msgstr "Alt+" 334 | 335 | #~ msgid "Ctrl+" 336 | #~ msgstr "Ctrl+" 337 | -------------------------------------------------------------------------------- /po/zh_CN.po: -------------------------------------------------------------------------------- 1 | # Chinese (Simplified) translation for touchpad-indicator 2 | # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 3 | # This file is distributed under the same license as the touchpad-indicator package. 4 | # FIRST AUTHOR , 2011. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: touchpad-indicator 2.0.4\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2019-06-15 12:48+0200\n" 11 | "PO-Revision-Date: 2013-09-01 14:21+0000\n" 12 | "Last-Translator: Wang Dianjin \n" 13 | "Language-Team: Chinese (Simplified) \n" 14 | "Language: zh_CN\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Launchpad (build 17196)\n" 19 | "X-Launchpad-Export-Date: 2014-09-18 20:00+0000\n" 20 | 21 | #: src/preferences_dialog.py:112 src/touchpadindicator.py:526 22 | msgid "Preferences" 23 | msgstr "首选项" 24 | 25 | #: src/preferences_dialog.py:136 26 | msgid "Shortcut" 27 | msgstr "快捷键" 28 | 29 | #: src/preferences_dialog.py:148 30 | msgid "Shortcut enabled" 31 | msgstr "快捷键已启用" 32 | 33 | #: src/preferences_dialog.py:173 34 | msgid "Actions" 35 | msgstr "动作列表" 36 | 37 | #: src/preferences_dialog.py:185 38 | msgid "Disable touchpad when mouse plugged" 39 | msgstr "鼠标接入时禁用触摸板" 40 | 41 | #: src/preferences_dialog.py:191 42 | msgid "I declare that there are no mice plugged in" 43 | msgstr "" 44 | 45 | #: src/preferences_dialog.py:192 46 | msgid "" 47 | "If Touchpad Indicator is not re-enabling the touchpad when you unplug your " 48 | "mouse, it might help to unplug all mice and click on this" 49 | msgstr "" 50 | 51 | #: src/preferences_dialog.py:199 52 | #, fuzzy 53 | msgid "On Touchpad Indicator starts:" 54 | msgstr "启动时启用触摸板" 55 | 56 | #: src/preferences_dialog.py:205 src/preferences_dialog.py:222 57 | msgid "None" 58 | msgstr "" 59 | 60 | #: src/preferences_dialog.py:209 src/preferences_dialog.py:226 61 | #, fuzzy 62 | msgid "Enable touchpad" 63 | msgstr "启用触摸板" 64 | 65 | #: src/preferences_dialog.py:213 src/preferences_dialog.py:230 66 | #, fuzzy 67 | msgid "Disable touchpad" 68 | msgstr "禁用触摸板" 69 | 70 | #: src/preferences_dialog.py:216 71 | #, fuzzy 72 | msgid "On Touchpad Indicator ends:" 73 | msgstr "触摸板指示器" 74 | 75 | #: src/preferences_dialog.py:234 76 | msgid "Disable touchpad on typing" 77 | msgstr "" 78 | 79 | #: src/preferences_dialog.py:238 80 | msgid "" 81 | "Milliseconds to wait after the last key\n" 82 | "press before enabling the touchpad" 83 | msgstr "" 84 | 85 | #: src/preferences_dialog.py:249 86 | msgid "General options" 87 | msgstr "常规选项" 88 | 89 | #: src/preferences_dialog.py:261 90 | msgid "Autostart" 91 | msgstr "开机时自动运行" 92 | 93 | #: src/preferences_dialog.py:269 94 | msgid "Start hidden" 95 | msgstr "启动时自动隐藏" 96 | 97 | #: src/preferences_dialog.py:273 98 | msgid "Show notifications" 99 | msgstr "显示通知" 100 | 101 | #: src/preferences_dialog.py:279 102 | msgid "Touchpad configuration" 103 | msgstr "" 104 | 105 | #: src/preferences_dialog.py:291 106 | msgid "Natural scrolling" 107 | msgstr "" 108 | 109 | #: src/preferences_dialog.py:305 src/preferences_dialog.py:479 110 | #: src/preferences_dialog.py:514 111 | #, fuzzy 112 | msgid "Touchpad speed" 113 | msgstr "触摸板已禁用" 114 | 115 | #: src/preferences_dialog.py:313 src/preferences_dialog.py:489 116 | msgid "Two finger scrolling" 117 | msgstr "" 118 | 119 | #: src/preferences_dialog.py:321 src/preferences_dialog.py:500 120 | msgid "Edge scrolling" 121 | msgstr "" 122 | 123 | #: src/preferences_dialog.py:329 124 | msgid "Circular scrolling" 125 | msgstr "" 126 | 127 | #: src/preferences_dialog.py:340 128 | msgid "Simulation" 129 | msgstr "" 130 | 131 | #: src/preferences_dialog.py:344 132 | msgid "Right top corner" 133 | msgstr "" 134 | 135 | #: src/preferences_dialog.py:349 src/preferences_dialog.py:366 136 | #: src/preferences_dialog.py:383 src/preferences_dialog.py:400 137 | #: src/preferences_dialog.py:417 src/preferences_dialog.py:435 138 | #: src/preferences_dialog.py:453 139 | #, fuzzy 140 | msgid "Disable" 141 | msgstr "禁用触摸板" 142 | 143 | #: src/preferences_dialog.py:350 src/preferences_dialog.py:367 144 | #: src/preferences_dialog.py:384 src/preferences_dialog.py:401 145 | #: src/preferences_dialog.py:418 src/preferences_dialog.py:436 146 | #: src/preferences_dialog.py:454 147 | msgid "Left button" 148 | msgstr "" 149 | 150 | #: src/preferences_dialog.py:351 src/preferences_dialog.py:368 151 | #: src/preferences_dialog.py:385 src/preferences_dialog.py:402 152 | #: src/preferences_dialog.py:419 src/preferences_dialog.py:437 153 | #: src/preferences_dialog.py:455 154 | msgid "Middle button" 155 | msgstr "" 156 | 157 | #: src/preferences_dialog.py:352 src/preferences_dialog.py:369 158 | #: src/preferences_dialog.py:386 src/preferences_dialog.py:403 159 | #: src/preferences_dialog.py:420 src/preferences_dialog.py:438 160 | #: src/preferences_dialog.py:456 161 | msgid "Right button" 162 | msgstr "" 163 | 164 | #: src/preferences_dialog.py:361 165 | msgid "Right bottom corner" 166 | msgstr "" 167 | 168 | #: src/preferences_dialog.py:378 169 | msgid "Left top corner" 170 | msgstr "" 171 | 172 | #: src/preferences_dialog.py:395 173 | msgid "Left bottom corner" 174 | msgstr "" 175 | 176 | #: src/preferences_dialog.py:412 177 | msgid "One finger tap" 178 | msgstr "" 179 | 180 | #: src/preferences_dialog.py:430 181 | msgid "Two finger tap" 182 | msgstr "" 183 | 184 | #: src/preferences_dialog.py:448 185 | msgid "Three finger tap" 186 | msgstr "" 187 | 188 | #: src/preferences_dialog.py:466 189 | msgid "Driver: Synaptics" 190 | msgstr "" 191 | 192 | #: src/preferences_dialog.py:471 193 | msgid "Tapping" 194 | msgstr "" 195 | 196 | #: src/preferences_dialog.py:510 197 | msgid "Driver: Libinput" 198 | msgstr "" 199 | 200 | #: src/preferences_dialog.py:523 201 | msgid "Driver: Evdev" 202 | msgstr "" 203 | 204 | #: src/preferences_dialog.py:528 205 | msgid "Theme" 206 | msgstr "主题" 207 | 208 | #: src/preferences_dialog.py:540 209 | msgid "Select theme" 210 | msgstr "选择主题" 211 | 212 | #: src/preferences_dialog.py:656 213 | #, fuzzy 214 | msgid "This shortcut + +" 215 | msgstr "快捷键++ " 216 | 217 | #: src/preferences_dialog.py:657 src/preferences_dialog.py:659 218 | msgid " is assigned" 219 | msgstr " 已分配" 220 | 221 | #: src/preferences_dialog.py:658 222 | msgid "This shortcut + + " 223 | msgstr "快捷键++ " 224 | 225 | #: src/touchpadindicator.py:153 src/touchpadindicator.py:166 226 | #: src/touchpadindicator.py:516 227 | msgid "Disable Touchpad" 228 | msgstr "禁用触摸板" 229 | 230 | #: src/touchpadindicator.py:184 src/touchpadindicator.py:197 231 | msgid "Enable Touchpad" 232 | msgstr "启用触摸板" 233 | 234 | #: src/touchpadindicator.py:214 235 | msgid "Touchpad Enabled" 236 | msgstr "触摸板已启用" 237 | 238 | #: src/touchpadindicator.py:219 239 | msgid "Touchpad Disabled" 240 | msgstr "触摸板已禁用" 241 | 242 | #: src/touchpadindicator.py:434 243 | #, fuzzy 244 | msgid "Project page" 245 | msgstr "主页" 246 | 247 | #: src/touchpadindicator.py:439 248 | msgid "Get help online..." 249 | msgstr "获得在线帮助..." 250 | 251 | #: src/touchpadindicator.py:444 252 | msgid "Translate this application..." 253 | msgstr "翻译此程序..." 254 | 255 | #: src/touchpadindicator.py:449 256 | msgid "Report a bug..." 257 | msgstr "报告错误..." 258 | 259 | #: src/touchpadindicator.py:455 260 | msgid "El atareao" 261 | msgstr "" 262 | 263 | #: src/touchpadindicator.py:460 264 | #, fuzzy 265 | msgid "Follow me on Twitter" 266 | msgstr "在Twitter关注我们" 267 | 268 | #: src/touchpadindicator.py:465 269 | #, fuzzy 270 | msgid "Follow me on Google+" 271 | msgstr "在Google+关注我们" 272 | 273 | #: src/touchpadindicator.py:470 274 | #, fuzzy 275 | msgid "Follow me on Facebook" 276 | msgstr "在Facebook关注我们" 277 | 278 | #: src/touchpadindicator.py:503 279 | msgid "About" 280 | msgstr "关于" 281 | 282 | #: src/touchpadindicator.py:521 283 | msgid "Hide icon" 284 | msgstr "隐藏图标" 285 | 286 | #: src/touchpadindicator.py:532 287 | msgid "Help" 288 | msgstr "帮助" 289 | 290 | #: src/touchpadindicator.py:537 291 | msgid "Exit" 292 | msgstr "退出" 293 | 294 | #: src/touchpadindicator.py:552 295 | msgid "An indicator for the Touchpad" 296 | msgstr "触摸板指示器" 297 | 298 | #: src/touchpadindicator.py:685 299 | msgid "usage: %prog [options]" 300 | msgstr "用法: %prog [options]" 301 | 302 | #: src/touchpadindicator.py:691 303 | msgid "show this help and exit." 304 | msgstr "显示帮助并退出" 305 | 306 | #: src/touchpadindicator.py:696 307 | msgid "change the touchpad state. If indicator is not running launch it." 308 | msgstr "改变触摸板状态,如果程序未运行则启动程序。" 309 | 310 | #: src/touchpadindicator.py:702 311 | msgid "" 312 | "show the icon if indicator is hidden. Default action. If indicator is not " 313 | "running launch it." 314 | msgstr "当程序处于隐藏状态时显示此图标。默认选项。若程序未运行则启动程序。" 315 | 316 | #: src/touchpadindicator.py:708 317 | msgid "list devices" 318 | msgstr "列出设备" 319 | 320 | #~ msgid "Homepage..." 321 | #~ msgstr "项目主页" 322 | 323 | #~ msgid "Enable touchpad on exit" 324 | #~ msgstr "退出时启用触摸板" 325 | 326 | #~ msgid "Disable touchpad on exit" 327 | #~ msgstr "退出时禁用触碰板" 328 | 329 | #~ msgid "Disable touchpad when Touchpad-Indicator starts" 330 | #~ msgstr "Touchpad-Indicator运行时禁用触碰板" 331 | 332 | #~ msgid "Light" 333 | #~ msgstr "浅色" 334 | 335 | #~ msgid "Dark" 336 | #~ msgstr "深色" 337 | 338 | #~ msgid "Esc " 339 | #~ msgstr "Esc " 340 | 341 | #~ msgid "Select icon theme" 342 | #~ msgstr "托盘图标主题" 343 | 344 | #~ msgid "Normal" 345 | #~ msgstr "普通" 346 | 347 | #~ msgid "Application Web..." 348 | #~ msgstr "程序网站..." 349 | --------------------------------------------------------------------------------