Tom Scott recently showed off his ridiculous Emoji-Keyboard made out of 14 full-sized Keyboards. He did it with Windows. I am a Linux guy. So I made my own.
Granted, I only hooked up 4 number pads, but the program is simple and extensible.
I used actkbd to fetch the keyboard input and xdotool to send the Unicode character requested to the active window – eg. Chromium and Twitter. There is a configuration file for every keyboard, so switching out characters and adding new keyboards is easy.
If you are crazy enough, feel free to build your own. I printed out some labels and stuck them to the keyboard with photo stickers.
After downloading and compiling actkbd (it’s simple: wget that archive, untar it and then just make;sudo make install
.
Don’t forget to install xdotool
and Chomium: Firefox doesn’t like unicode characters coming from a keyboard (there would be multiple workarounds, like entering them via ctrl+shift+u->hexcode or using xclip to copy and send ctrl+v to paste a char.)
The configuration is very simple: for every keyboard n connected, a actkbd<n>.conf file is created. For every key one line is added:
98::grab:xdotool key U1f600
where 98 is the scancode of the key and U1f600 is the character you want to display. To get the scancode run sudo actkbd -s -n -d /dev/input/by-id/...
and start pressing keys.
Now all you would need to do is run an instance of actkbd for every keyboard like this:
sudo actkbd -d /dev/input/by-id/usb-<bla> -c actkbd<n>.conf -D
But now see it in action (evil vertical video here, normal video below):