summaryrefslogtreecommitdiffstats
path: root/laptop/.bin/numkeys
blob: 9b284bba24ba21faef432fa9c536c1d2d3476340 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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