Add PPA install instructions to README.md
[indicator-keyboard-led.git] / README.md
CommitLineData
fc1c0791
AIL
1# indicator-keyboard-led - simulate keyboard lock keys LED
2
3This is a Unity application indicator designed for keyboards without lock
4keys LED. It allows the user to check the state of the three locks (Caps lock,
5Num lock and Scroll lock) without requiring any mouse or keyboard action. It
6also allows the lock keys to be toggled with mouse clicks, which could be
7useful for keyboards without Scroll lock keys or malfunctioning keyboards.
8
9## Screenshots
10
9900bce1 11![indicator default][sc1]
fc1c0791
AIL
12Default appearance of the indicator with Num lock on and Caps and Scroll locks
13off.
14
9900bce1 15![indicator menu][sc2]
fc1c0791
AIL
16Menu of the indicator, shown on click. The locks can be toggled by clicking
17the respective item in the menu.
18
9900bce1 19![indicator short][sc3]
fc1c0791
AIL
20Alternative (short) appearance of the indicator.
21
017d8bd1 22## Installation from Ubuntu PPA
fc1c0791 23
947c2183
AIL
24 sudo add-apt-repository ppa:adrianiainlam/indicator-keyboard-led
25 sudo apt-get update
26 sudo apt-get install indicator-keyboard-led
fc1c0791 27
017d8bd1
AIL
28After installation the postinst script will prompt you for preferences
29configuration. These config are explained here:
fc1c0791 30
017d8bd1 31### Short label
73e49461 32
017d8bd1
AIL
33The default appearance of the indicator has long labels:
34![⚫Num ⚫Caps ⚫Scroll][sc1]
73e49461 35
017d8bd1
AIL
36On small displays it may be preferable to use short labels:
37![⚫N ⚫C ⚫S][sc3]
fc1c0791 38
017d8bd1 39### Order
170ff396 40
017d8bd1
AIL
41This option allows you to reorder the locks and also to hide
42some locks if you don't need them.
170ff396 43
017d8bd1
AIL
44Use a string consisting of zero or one occurrence of the
45characters 'N', 'C' and 'S' to set this option.
170ff396 46
017d8bd1
AIL
47For exampe, the default order is "Num Caps Scroll".
48![⚫Num ⚫Caps ⚫Scroll][sc1]
170ff396 49
017d8bd1
AIL
50**CNS** changes this to "Caps Num Scroll".
51![⚫Caps ⚫Num ⚫Scroll][sc4]
170ff396 52
017d8bd1
AIL
53**NC** hides Scroll lock from the default appearance.
54![⚫Num ⚫Caps][sc5]
170ff396 55
017d8bd1
AIL
56**C**, combined with the previous *short* option,
57would give a very compact Caps lock indicator.
58![⚫C][sc6]
f462ecb9 59
170ff396
AIL
60[sc1]: screenshots/sc1.png
61[sc2]: screenshots/sc2.png
62[sc3]: screenshots/sc3.png
63[sc4]: screenshots/sc4.png
64[sc5]: screenshots/sc5.png
65[sc6]: screenshots/sc6.png
017d8bd1
AIL
66
67### xdotool
68
69`xdotool` is used to emulate key strokes to set/unset locks on mouse clicks.
70If you installed xdotool at a non-default location, please provide its full
71path (e.g. /home/user/bin/xdotool) with this option.
72
73If it is installed in your $PATH environment variable, or not installed at
74all, leave this option blank.
75
76### Changing your mind
77
78If you want to change these settings afterwards, simply run
79
80 sudo dpkg-reconfigure indicator-keyboard-led
81
82and you will be prompted again.
83
84## Usage
85
cd02f43e
AIL
86The indicator will be configured to autostart on log-in. To start using the
87indicator after installation, log-out and log-in again, or manually start
88the indicator (search for "indicator-keyboard-led" in the dash).
89
017d8bd1
AIL
90The indicator should be shown at the top right corner, with a filled circle
91representing a lock turned on and an unfilled circle representing a lock
92turned off.
93
94Clicking on the indicator should result in a menu with the three locks.
95Clicking on the menu item would cause the corresponding lock to toggle.
170ff396 96
94a2b01e 97## Known bugs / Troubleshooting
9900bce1 98
73e49461
AIL
99### Pressing Scroll Lock does nothing
100
9900bce1
AIL
101It seems to be a common problem that Scroll Lock is not usable in Ubuntu.
102To solve this, do the following (assuming US keyboard):
103
104 > # backup your symbols file
105 > sudo cp /usr/share/X11/xkb/symbols/us{,.distribution}
106 >
107 > Add the following line in the `xkb_symbols "basic" {` section. Do not worry
108 > if that second line is not there, it is only there for some languages and
109 > was not there for us on my system.
110 >
111 > ...
112 > modifier_map Mod3 { Scroll_Lock }; <==<< Add this line
113 >
114 > include "level3(ralt_switch)" <==<< before this line
115 > };
116 >
117 >
118 > You may have to do the same in your other layouts if you switch between
119 > languages.
120 >
121 > Also, there is a cache where xkb layouts live. You should clear it before
122 > restarting your X server to check the new keyboard symbol file(s).
123 >
124 > sudo dpkg-reconfigure xkb-data
125
126*By Pykler and Giovanni Toraldo on AskUbuntu.* [Source][quotesrc]. Slightly
127modified. [Original source][origsrc] by dm+ on PCLinuxOS-Forums.
128
129[origsrc]: http://www.pclinuxos.com/forum/index.php/topic,125690.msg1052201.html?PHPSESSID=2qsv83lve6dgd0ivq14bfcjc30#msg1052201
130[quotesrc]: http://askubuntu.com/a/597757/274080
f462ecb9 131
94a2b01e 132### Scroll lock does not appear on indicator
73e49461 133
94a2b01e 134Your installed GTK+ version is probably older than 3.18, which
017d8bd1
AIL
135does not support [`gdk_keymap_get_scroll_lock_state ()`][gtkdoc-scroll].
136The earliest Ubuntu release that supports GTK+ 3.18 is 16.04 (Xenial).
137If you use an older version, Scroll lock functionality will be disabled.
138Please consider upgrading your system if you really want Scroll lock.
73e49461 139
94a2b01e 140If your installed GTK+ is 3.18+ then please file a bug report.
73e49461 141
017d8bd1
AIL
142[gtkdoc-scroll]: https://developer.gnome.org/gdk3/stable/gdk3-Keyboard-Handling.html#gdk-keymap-get-scroll-lock-state
143
94a2b01e
AIL
144### Drop-down menu only has "Quit", the clickable locks do not appear
145
146Please verify that xdotool is installed in your PATH with the executable
147bit set. If you provided a custom path to xdotool please verify that it
148is correct and is an executable regular file.
73e49461 149
f462ecb9
AIL
150## Localization
151
152As motivated by Issue #1, this script has been localized to French (with
153the assistance of Wikipedia and Google Translate). Corrections to the
154translation, as well as translations to other languages, are welcome.
155Feel free to create a pull request or open an issue.
9900bce1 156
017d8bd1
AIL
157![indicator default, French locale][sc7]
158Default appearance in a French locale.
159
160[sc7]: screenshots/sc7.png
161
fc1c0791
AIL
162## License
163
164The program "indicator-keyboard-led.py" is released under the MIT License.
165Please refer to the file for the full text of the license.
166
017d8bd1 167The icon "indicator-keyboard-led.svg" is released to the public domain.
fc1c0791
AIL
168
169## Credits
170
171I would like to thank [Tobias Schlitt](https://github.com/tobyS), who wrote
172[indicator-chars](https://github.com/tobyS/indicator-chars) which I used
173as a reference when writing this software.
174
017d8bd1
AIL
175The icon used in the indicator (indicator-keyboard-led.svg) is modified
176from the file "emblem-readonly.svg" by
177[Jakub Steiner](http://jimmac.musichall.cz)
fc1c0791
AIL
178who released it to the public domain for the
179[Tango Icon Library](http://tango.freedesktop.org/Tango_Icon_Library).
180
181---
182
183## Motivation
184
185I was a user of [indicator-keylock][ind-kl], but only one key lock can be shown
186on the panel. I didn't like the Notify OSD events either.
187
188I then came across [lks-indicator][lks] and [indicator-xbdmod][xbdmod], but
189I didn't like the fact that they refresh the indicator on a regular time
190interval (every *x* milliseconds) rather than on state changes (only when
191the locks are toggled).
192
193I also thought it would be fun to be able to toggle the locks on-screen.
194
195[ind-kl]: https://launchpad.net/~tsbarnes/+archive/ubuntu/indicator-keylock
196[lks]: https://github.com/SergKolo/lks-indicator
197[xbdmod]: https://github.com/sneetsher/indicator-xkbmod