Recently I found myself in the unfortunate position that the 1 2 3 4 5 6 7 8 9 0
keys on my laptop stopped working, which is more cumbersome than you might think. While waiting on a replacement keyboard module I came up with a temporary hack that works just enough to save the day when using only the laptop keyboard.
In the case you'll need this too:
touch ~/.Xmodmap
vi ~/.Xmodmap
- Then add the following lines:
! DIRECT SHIFT+ MSWITCH+
keycode 9 = Escape 0 parenright Escape Escape Escape
keycode 67 = F1 1 exclam F1 F1 XF86Switch_VT_1
keycode 68 = F2 2 at F2 F2 XF86Switch_VT_2
keycode 69 = F3 3 numbersign F3 F3 XF86Switch_VT_3
keycode 70 = F4 4 dollar F4 F4 XF86Switch_VT_4
keycode 71 = F5 5 percent F5 F5 XF86Switch_VT_5
keycode 72 = F6 6 asciicircum F6 F6 XF86Switch_VT_6
keycode 73 = F7 7 ampersand F7 F7 XF86Switch_VT_7
keycode 74 = F8 8 asterisk F8 F8 XF86Switch_VT_8
keycode 75 = F9 9 parenleft F9 F9 XF86Switch_VT_9
keycode 76 = F10 F10 F10 F10 F10 XF86Switch_VT_10
! Making right control ModeSwitch
keycode 105 = Mode_switch NoSymbol Mode_switch NoSymbol Mode_switch
- Save the file, and test it with
xmodmap ~/.Xmodmap
.
In case you want this behavior to be applied when you log in:
touch ~/.xinitrc
vi ~/.xinitrc
- Add:
[[ -f ~/.Xmodmap ]] && xmodmap ~/.Xmodmap
The normal functionality under F1..F9
will work, but once when you combine with right control
or right shift
you'll get numbers or characters. I do notice issues with common keybindings off course, so in the end getting a new keyboard module is best :-)