diff options
Diffstat (limited to 'laptop/.bin/numkeys')
-rwxr-xr-x | laptop/.bin/numkeys | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/laptop/.bin/numkeys b/laptop/.bin/numkeys new file mode 100755 index 0000000..9b284bb --- /dev/null +++ b/laptop/.bin/numkeys @@ -0,0 +1,57 @@ +#!/bin/sh +set -eu +set -o pipefail + +on() { + xmodmap -e 'keycode 10 = exclam 1' + xmodmap -e 'keycode 11 = at 2' + xmodmap -e 'keycode 12 = numbersign 3' + xmodmap -e 'keycode 13 = dollar 4' + xmodmap -e 'keycode 14 = percent 5' + xmodmap -e 'keycode 15 = asciicircum 6' + xmodmap -e 'keycode 16 = ampersand 7' + xmodmap -e 'keycode 17 = asterisk 8' + xmodmap -e 'keycode 18 = parenleft 9' + xmodmap -e 'keycode 19 = parenright 0' + xmodmap -e 'keycode 20 = underscore minus' + xmodmap -e 'keycode 34 = braceleft bracketleft' + xmodmap -e 'keycode 35 = braceright bracketright' + xmodmap -e 'keycode 49 = asciitilde grave' + xmodmap -e 'keycode 51 = bar backslash' +} + +off() { + xmodmap -e 'keycode 10 = 1 exclam' + xmodmap -e 'keycode 11 = 2 at' + xmodmap -e 'keycode 12 = 3 numbersign' + xmodmap -e 'keycode 13 = 4 dollar' + xmodmap -e 'keycode 14 = 5 percent' + xmodmap -e 'keycode 15 = 6 asciicircum' + xmodmap -e 'keycode 16 = 7 ampersand' + xmodmap -e 'keycode 17 = 8 asterisk' + xmodmap -e 'keycode 18 = 9 parenleft' + xmodmap -e 'keycode 19 = 0 parenright' + xmodmap -e 'keycode 20 = minus underscore' + xmodmap -e 'keycode 34 = bracketleft braceleft' + xmodmap -e 'keycode 35 = bracketright braceright' + xmodmap -e 'keycode 49 = grave asciitilde' + xmodmap -e 'keycode 51 = backslash bar' +} + +toggle() { + if xmodmap -pk | grep -q '(1).*(exclam).*(1).*(exclam)'; then + on + else + off + fi +} + +case "$1" in +on) on ;; +off) off ;; +toggle) toggle ;; +*) + echo invalid 1>&2 + exit 1 + ;; +esac |