Tom Scott - Hacking* & The Emoji Keyboard

Thought people might enjoy this.

Tom Scott talks about the general concept of a hack (or a "bodge" as he calls it) and how he learned to coble stuff together, and then goes to explain how he bodged the emoji keyboard into a real thing. He has some history with emojis just in case you were thinking wtf?

Also there is a dig at Linux (not really) but its an interesting reason, and I'd love to hear if anyone would know how to get around it using Linux. Maybe come up with a legit reason why he should have used Linux?


I think his reasoning was that it might be easier in windows. He might not have a lot of experience with linux, but I think he has some. He admits a little bit that it may be easier on linux, if you know what you're doing. I'm not really sure about the cheaper part of using windows... maybe he doesn't have as much experience as I thought. I thought he had a lot, he seems pretty smart. I think he does some security research too, he seems pretty well versed.

1 Like

'Bodge' or 'to bodge' is also a term used in Australia, too. Often a similar meaning, 'bodge' a temporary repair.

A 'bodgie repair' can also mean a repair of dubious quality as well; nomenclature in English can be confusing at times lol.

Generally a hack isn't an elegant solution so this makes sense from a repair point of view. It will do the job but it ain't pretty and will probably break again requiring another bodge.

Nah that translates to English too, makes perfect sense.

I am now very tempted to learn how to do this in Linux using 1 keyboard and stick it to him as I have even less experience than he seems to have. The other thing is he says there is not an emoji keyboard, well... also up my street is custom mechanicals. I am sure with the reprogrammable mechs I can make it type native emoji, and an F24 key.

Basically as good as I am sure he is, he seems like an ignorant know nothing. Not to put him down at all he is certainly smarter than me in some (probably most) aspects, but he comes off as someone who is bullheaded and does not like to research jack shit. He would rather waster hours possibly even days bodging rather than spend a small amount of time to find the best tool for the job, which is odd because as a programmer you are taught to be as "lazy" as possible to make your work faster. Lazy in that you are told if you don't have to rewrite something don't, just copy paste it, you know make your life easy. So a best tool for the job approach would have been much faster.

That and he says at one point "This is Windows! Someone is bound to have done this before." Or something along those lines. That struck me as that is the Linux mentality, with the failover that if it has not then bodge it. Seems odd that he has such a vendetta against Linux, even going so far as to ignore android and talk solely about iOS in his examples.


I would have thought that is a Windows things purely on the fact that Windows has been big for so long that somebody was bound to have built something like that before. And they did, in the flight sim communities. Not sure why you thought that would be Linux. Yes it would be true for the Linux community in terms of things that people are likely to find, but for something as obscure as connecting 14 keyboards together?

I'm not sure he has a vendetta against Linux. More that he is comfortable with Windows and probably gets asked a million times "why don't you use Linux". But who knows though.

But with Linux you would not have needed that as you could just get input from individual device IDs. No mucking about. Like how you can plug two keyboard in and have one solely dedicated to a VM. Both are still recognised by the host but it ignores one, unlike windows where both of them are essentially one keyboard.

1 Like

This guy could sell me anything.

In any case the unicode alt keys apply in linux too, it's just that it would be easier in linux from code.

Well that certainly gets rid of one of the issues.

And remapping the keys to emojis? Any simple tool to do that (such as AutoHotKey)?

I'm guessing it wouldn't be that difficult to write a script to do it?

Not very experienced but I would imagine it would not be too hard at all. I stand by my original comments on him and his views.

Did you watch the video? He said at some point that AutoHotKey could not differenciate between the J key on keyboard 1 and the J key on keyboard 2.

I think he could have done it with some sort of arduino gpio. Someone has got to have written code that accepts 1200 inputs, right?

In Linux you don't have the problem, so I am assuming an AutoHotKey "equivalent" on Linux wouldn't either.

Ha! I wouldn't expect anything less! :P

I'm not trying to convert you but have you seen any of his other stuff? I believe he is primarily a linguist but he does quite a few things science related. I have to say I quite like his channel. Originally came across it from Computerphile.

No but I like his presentation, I figured this was a one off, I will check some of them out.

1 Like

I think he meant cheaper than Mac

In which case he is still wrong as Mac OS is either very cheap or free now. I have no checked as I don'r use mac.

This could be me... Tom Scott has also some great "ThinkingDigital" talks.

From the comments:
blenderpanzi (
It's hard to send unicode characters on Windows? Guess what, under Linux you just do: xdotool key U2603 (you can provide a window id via --window if you want/need to)
That will input ☃ (unicode codepoint U+2603). That means all you need is this small helper C-program and then you can write the rest in bash! (53 lines including error handling)

Run for each keyboard something like that:
./kbcodes /dev/input/by-id/KEYBOARD_ID | while read code; do xdotool key printf U%X $((code + keyboard_start_codepoint)); done

You could also do it in one single C program using the XTest API if you want.

Then by the same person:
Just realized there is the evtest tool, so no C component needed at all: sudo evtest /dev/input/by-id/$ID |grep --line-buffered 'EV_KEY.value 1>'|sed 's/.code ([0-9])./\1/'

(Sorry for the bad formatting, wrote on mobile)

1 Like

A license to use OSX costs $500 minimum. from this you can upgrade to OS X Yosemite.