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