summaryrefslogtreecommitdiffstats
path: root/laptop/.bin/numkeys
diff options
context:
space:
mode:
Diffstat (limited to 'laptop/.bin/numkeys')
-rwxr-xr-xlaptop/.bin/numkeys57
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