Disable XF86Back/Forward

Real ThinkPad keyboards (not this monstruous ignominy) have directly accessible keys for XF86Back and XF86Forward. That is really problematic with web browsers such as Firefox or Chromium since pressing those keys transparently go back or forward into your history, discarding anything you were typing in the process, including that 3 hours long bug report you were just about to submit. That’s rather annoying, to say the least.

Some other blog post suggest to simply disable them with xmodmap. That is in ~/.xmodmaprc (or whatever it is you use):

keycode 166 = NoSymbol
keycode 167 = NoSymbol

I personally prefer to remap them to Next/Prior keys. Having these near the navigation keys might come up handy:

keycode 166 = Next
keycode 167 = Prior

That’s on Linux though, on FreeBSD the keycodes are 233 and 234:

keycode 233 = Next
keycode 234 = Prior

Anyway use the xev command and xmodmap -pke to find the keycodes and remap them to any other interesting key symbol.

Get rid of that Non-Breaking space

The non-breaking space is a variant of the space character which as the name suggests prevents automatic line breaking when using a space character. Another common use of it is to avoid collapsing of white-spaces in formats such as TeX or HTML. There are also some others specific typographic uses but nevermind.

From my point of view this character is a real pain, a annoying remain of a former era when the only editor you had was plain-text and which is now just good at invisibly polluting your work so that no compiler, interpreter or any other ASCII oriented tool would accept it anymore. For ASCII is not dead, it’s 7-bit, it’s common, it’s the neutral zone of all character set and No-Break Space shall not interfere therefore it must be eradicated from the very surface of earth or at least from my own keyboards.
There are several options to do that under Xorg. The first one would be to use the setxkbmap command to specify the nbsp:none option for your keyboard.
setxkbmap -option "nbsp:none"

However this won’t work as you might expect it especially when you have multiple keyboards with different layouts. So another solution would be to specify XkbOption directly within the Xorg configuration file, one for each input device. But this won’t work neither if you use a Bépo layout as this option will simply disable the use of underscore (AltGr Space). So the final solution is based on xmodmap to modify the list of keysyms assigned to the space keycode (0x41). You may just add the following line to ~/.xmodmap and ensure that the file is loaded when your session starts with xmodmap ~/.xmodmap.

keycode 65 = space space space space underscore underscore space space

TypeMatrix 2030

I was looking to replace my really bad logitech keyboard and at the same time make the switch to the Bepo layout (a french and free ergonomic keyboard layout similar to Dvorak). We have long sought after a quality keyboard like the classic ThinkPad keyboard and avoid the many badly designed toys we found on the market. Macish like keyboards with their flat smooth keys and soft press were right out. I really hate these even if everyone seems to swear only by them nowadays.

So we ordered three TypeMatrix keyboards one month ago and we just received them this week. One of the distinguishing feature of this keyboard is that it doesn’t conform with the classical staggered layout remaining unchanged from the typewriter era and use a vertical columns layout instead which reduces motions. It also comes with a optional switchable skins with different layouts (qwerty, azerty, dvorak, bepo). These not only makes the layout switching easier but also makes the keyboard waterproof and dirt-free. The keyboard itself requires no drivers though you may want to add the following to /etc/X11/xorg.d/typematrix.conf to setup the default layout :

Section "InputClass"
Identifier "Typematrix"
MatchIsKeyboard "on"
MatchVendor "TypeMatrix.com"
MatchProduct "USB Keyboard"
Driver "evdev"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
Option "XkbVariant" "bepo"
Option "XkbOptions" ""
EndSection