Emoji Keyboard Linux Version

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):