Saturday, 25 October 2014

Converting to a Bépo keyboard

There are so many keyboard layouts, why limit yourself to QWERTY? Here will be discussed the disadvantages of QWERTY and the method to switch to bépo.
Conspiracy theorist keyboard − another possible layout?


It's well-known that QWERTY keyboards were created to minimise the likelihood for typewriters to jam − not the absolute slowest, but still one of the slower ways of typing. Good interaction between humans and computers gives a sense of mastery to the user and enables them to fulfill their goals smoothly. The QWERTY keyboard is oppressive design not just to its users, but also to anyone reading the words written by the individual users.


English doesn't just rely on the "English alphabet" of 26 letters − it also uses symbols; the Arabic numbers; and many European accents. A common view is that é is not part of English and therefore doesn't need to be on a keyboard. It may not be part of the "English alphabet", but anyone who knows English is expected to be familiar with terms such as café, déjà vu, résumé, fiancé and née. A keyboard without all the letters of English therefore enforces the designer's view that those missing letters should not be part of English. The English language is being actively oppressed.

Naturally, users are interacting with their keyboards as intended and they are passively purging the "foreign characters" from English. In a similar way to how people are nominally replacing BC and AD with BCE and CE to try undoing Christianity's massive effect on Western culture (or at least to pretend it didn't happen), QWERTY-keyboard users are undoing Europe's influence on our language.

The effect upon English is spreading elsewhere − it's creating difficulty for foreigners to type their own language and it's spreading out of keyboards to make the experience difficult elsewhere for English-speaking users. In order to be maximally compatible with user expectations and various software, the usual keyboard in France for instance is AZERTY. It has been awkwardly modified and there remains difficulty in typing accented characters, even though é occurs at a rate of 2.13% compared to w which rates at only 0.04%.

I even received an email from a Sinéad who was signing off her emails as "Sinead" despite writing it accented in an image signature. After I addressed her as Sinéad, she curiously changed her habit and started including the accent.

QWERTY's cultural sabotage sometimes doesn't manage to escape from computers. Source.


In software, there are still plenty of programs and websites that only accept ASCII characters − a character set devised in the early days by Americans with QWERTY keyboards. A bank of mine for instance used to support accents (it allows me to create stronger passwords), then one day changed their login page so the page refused my correct password. I left that bank for a few months due to that. The extra characters on a bépo keyboard could realistically grant immunity from a dictionary attack.

In software development, despite the fact that an algorithm will be at the same contextual scope as a mathematical function, it is usually incompatible for Greek letters to be written in the program itself and sometimes they aren't even permitted in the comments. Furthermore, the lack of the × and ÷ signs on QWERTY keyboards led to the awkward, universal phenomenon of * and / being used as replacements. A warning to programmers − the space bar of the bépo keyboard can be used to type 4 different kinds of space, only one of which is typically registered as a space by compilers.


Many see QWERTY's only problem as being the slow speed, so if someone changes, they often change to DVORAK, which is optimised for speed when typing the subset of English that only includes the characters from the QWERTY keyboard. To legitimise this wilful ignorance, popular typing tests only choose passages that don't include accents. The bépo layout has been optimised for speed when typing French. Although I'm typing English, the letter frequencies and combinations are very similar and therefore the layout is still probably faster than QWERTY.

Besides the speed, I found bépo to offer the best selection of keys. There are plenty of combination keys, so there are intuitive ways of typing all official languages of the European Union, as well as Greek. Typing foreign accents is common on many keyboards, but users are typically required to reach for awkward, unintuitive buttons like "2". There are plenty of extra symbols for mathematics, currency and correct pronunciation.

bépo keyboard layout


I should mention that after changing over, it took me around two months until I could type reasonably. I used to touch-type QWERTY English at 90 words/minute and after two months, I could type complete English at perhaps 40 words / minute and was no longer frustrated by having to type something. The point of no return is after perhaps 3 weeks − some say that it's possible to maintain touch-typing ability on both keyboards, but I didn't find that to be feasible. I was having to actively practice typing so that I wouldn't become stuck at a point where I couldn't type with either keyboard.

If you can't touch-type, the worry about the change-over period is a moot point.

PKL presents an on-screen keyboard that changes as you start a combination.
PKL on-screen keyboard after starting a combination with /
Since most typing programs only teach QWERTY English instead of complete English, I recommend downloading TypeFaster and customising it for bépo, as explained.


  • You could buy a physical bépo keyboard
  • You can buy stickers to put on a keyboard.
  • The bépo keyboard has extra buttons, so for full effect, I recommend purchasing a French-Canadian keyboard (ISO 105-key). Ç will be positioned awkwardly and the Ê button won't be present if you use a QWERTY keyboard.
  • Your government will probably allow you to count this as a work expense.

Installing Drivers

Users of Ubuntu can find bépo as one of the existing available layouts for French. Windows users are required to go to more effort:
  • Download bepo.exe here and run it.
  • Go to the Control Panel → Change keyboards or other input methods → Change keyboards…; then move bépo to the top to make it the default language. The icon can be changed by getting it from bepo.exe.
  • The drivers packaged with bepo.exe don't implement all of the keyboard combinations. Download Microsoft Keyboard Layout Creator. If you experience problems with this program, try enabling all components of .NET in Windows.
  • The interface for Microsoft Keyboard Layout Creator (MSKLC) defers to kbdutool.exe for processing the klc files and silently strips out some of the extended combinations, so one must instead run kbdutool from the command line.
  • Checkout the latest klc file here using SVN. If you don't have an SVN client already, find the [possibly outdated probably current] file here or download Tortoise SVN. Put the klc file in the same folder as kbdutool.exe.
  • Run kbdutool to compile the klc file and create DLLs for your system, then put them in the appropriate system folder. For Windows 7 x64, I put the amd64 version in \Windows\System32 and the syswow64 version (necessary for 32-bit programs) in \Windows\syswow64. Notice that bepo.exe already placed files here with the same name, but without the full functionality.
I tried to take an intermediary step with kdbutool by compiling .c and .h source files, manually changing them, then compiling the DLLs. Windows implements an AltGr key-press as Ctrl+Alt, which can activate various keyboard short-cuts in international-unfriendly programs. Manually changing the source files allows AltGr to be replaced with Kana (described here). The compiler cl.exe (presumably the one supplied with MSKLC) couldn't find the source files though, even after I added the folder to the path (StackOverflow link).

I tried compiling the source files using the Windows Driver Kit my generated DLL files wouldn't work and I wasn't 100% sure that I was targeting the right platform.