How to optimize a layout for French/English/Coding

I would like to adopt a Dvorak (i.e. optimized) layout, but my work and overall life involves writing about 33% French, 33% English and 33% C#/C++ code. This makes adopting, say, the BÉPO layout impractical since it’s really bad for english (W key way out of reach). For now I’m sticking with my French Canadian QWERTY layout which mostly uses dead keys for every French symbol except é.

So I was wondering:

  • Is there a known methodology to start designing such a layout? I guess key use statistics that were compiled to create BÉPO and the English DVORAK/COLEMAK/WORKMAN are available somewhere and I would just have to “mix” them using the right proportions to find my most important keys. Then I’d need a reference on key “weights” i.e. which ones are the preferred ones to put frequently used symbols on. This might be a bit different for the Keyboardio than standard keyboards due to the grid layout. References and links would be appreciated.

  • Has anyone attempted devising a coder-friendly bilingual dvorak before? And who else would be interested in this specific mix of French/English/Coding optimization?

  • Does anyone have experience typing French on English DVORAK/COLEMAK/WORKMAN, and do you think it’s an improvement over QWERTY?

1 Like

algernon raises a hand.

I’m using Dvorak for coding, English, and Hungarian. You can find my layout on GitHub:

Mind you, my sketch is on the far too complicated side of things, but perhaps it can serve as a kind of inspiration.

The way it was developed, is that I took the standard Dvorak layout, moved some often-used keys (such as the brackets, colon, and minus) to places I found more convenient. Then I added a layer where I put Hungarian symbols, placed around their base symbol. So o becomes ó, the key above becomes ő, the one below ö. I find this a much more logical arrangement than what we have on traditional keyboards that lack layers.

Because the English and the coding I do are significantly more than the Hungarian I write, having to press two keys to get the special symbols is acceptable. Heck, I’d likely use AltGr+something anyway!

While I don’t have any experience typing French, typing Hungarian on English Dvorak (with the layer technique mentioned above) is, for me, a definitive improvement over QWERTY.


Hi there, Laurent here :slight_smile:

I received my Keyboardio ± a week ago, I’ve set it up like so.
I’ve been a bépo user for like 6+ years, so I wasn’t going to stop using it overnight for any one keyboard.
Just so you get an idea who you’re dealing with, I was once an English major, I’m pretty much a
grammar nazi when it comes to languages, especially English and French.

After thinking things through, I decided I was geeky enough to change careers and become a webdev. Am
currently looking for an internship btw… Anyheww I’ve been a Linux tinkerer for quite a while, and
after learning tidbits of Python of C++ I enrolled somewhere where I’ve learnt web development in PHP, because PHP is good when you’re looking at job offerings.

I’m a vim user. I like to spend whatever time it takes to learn something if the results are worth
it. It was worth it when I learnt to touch type in azerty, it was worth it when I switched over to
bépo, and it was worth it when I learnt Vim.

Today my Manjaro is vimified as can be, with an i3 configuration that just rocks and Vimium on
FF/Chromium. Now that I have my Keyboardio, I feel like I’ve reached the peak of comfort and

Now lets see the pros and cons of bépo in these conditions.
Be warned, I’m biased.

Cons :

  • numbers require shift. Big deal, they’re easily accessed anyway, and the integrated numpad in the
    Keyboardio makes that a non-issue for long series, since you’re going to use it anyway no matter
    which keyboard layout you pick. You use super+numbers to navigate through virtual desktops that
    you create on the go with i3, well good news when you install i3 on a bépo configured machine it
    selects things properly in the dotfile so it’s transparent for you.
  • semicolon is not in direct access. Well, that holds true with the Keyboardio, but the chording is
    so much easier here that the thumb key + “what used to be g” is very accessible.
  • <> are not in direct access. Same deal, plus you can add what I did in your c/c++ specific vimrc conf
    that simple cool thing to turn “«” and “»” into “<<” and “>>”. Easy to do in .spacemacs too, in
    case that should be your thing.
  • “w” placement. Well so far I’ve been ok with it placed at the bottom right hand corner, but you
    can easily get inspiration from people who have moved it in a more accessible place.
  • you’ll have to set up your environment wherever you go. But you’ll have to no matter what if you
    decide to stray from vanilla qwerty.

Pros :

  • The best thing with bépo that I can’t live without : good French typography :
  • “@” direct access.
  • “.” direct access.
  • “é”,“è”,“à”,“ç” direct access, which means that their capital counterparts are easy as pie.
  • “…” is possible.
  • " " (non-breaking space). Good for typography, and excellent to fuck around with fellow coders :stuck_out_tongue:
  • signs that work in pairs are put sensibly. ()[]«»{}‘’.
  • as I said in the thread I’m referring to, the placement of “$/#” is fantastic in bépo on the Keyboardio IMHO.
  • It’s definitely better than qwerty for English too. It may not beat Dvorak, Workman etc., but it’s
    still a very viable choice. “w” is fine where it is to me, but that’s really just me. Just
    saying some people are fine with it, even though they might not be the most vocal about it.
    I mean, many people still don’t complain where the return key is on traditional keyboards…
  • It’s “new languages ready”. There are dead keys for virtually every diacritics you can think of. I
    can write PinYin with tones (hànyǔ pīnyīn), I can write Italian better than Italian people (È un pò
    strano, devono scrivere “E’”), go try a German ß somewhere else etc.
  • It feels good. Admittedly that’s the case for any well thought-out mapping, but I’ve really
    enjoyed the feeling of bépo these past few years. Whenever I have to use azerty or qwerty, with which I’m still doing fine, I feel like I’m riding a bike with flat tires.
  • There are some configuration files to steal from on the internet. I built my vimrc on top of some other guy’s at the beginning.
  • I do like it very much for programming, and I’m not the only one.

Alright I’m very biased. And I’m not as much a programmer as you are. But I still think it was not all that irrelevant to make the case for bépo.
I will agree that designing your thing will allow you to reach maximum satisfaction. But I don’t think that you should rule out bépo as a sane basis. If it’s just the “w” bugging you, maybe this could be a decent starting place. After all, you do write a third of your work in French.


@algernon I already took a long hard look at your layout and I’m definitely gonna steal some of your ideas like the one-shot modifiers and the multi-brackets key. I’ll have to think whether I prefer a layer like you for accented characters, or if I want them to get the full dvorak treatment i.e. in BÉPO where É has its own key.

@platypuxbepo Thanks for your insights! Can you please elaborate on why you find the BÉPO key placement feels better than Qwerty to type in English?

@Homingbird No problem :slight_smile:
Well for English bépo suits me just fine if only because it follows the Dvorak principles of dedicating one side of the home row to the most used vowels (and other vowels are on the same side too), so the typist alternates between the two hands quite efficiently. The other principle of distributing letters across the board bearing in mind their recurrence and relevance in digraphs is respected too.

The right side has consonants only, and the homerow holds very frequently used consonants there. An interesting thing to notice is that while the Dvorak layout definitely makes the <th> digraph super easy to type :drooling_face: , on the bépo side this digraph is very easy too (index finger homerow + ring finger one row down, no change in columns).
Just trying a couple things out, other English digraphs / trigraphs I find easy to type in bépo : <ay> , <gh> (better than Dvorak !), <ing>. An important one you may want to think about though is <wh>, not good at all with the original position of the W, but which gets better if you place it at the bottom right hand corner in bépo as some of us have done (you get a rather satisfying roll).
You’ve got to bear in mind that even though English and French are different languages, much of the vocabulary is close enough (1066 William the Conqueror FTW) that doing things well on a layout for one language will inevitably pay off in some cases with the other.

It may not be as custom-tailored for English as Dvorak, but I remember back when I set out for bépo that I really wanted not to owe anything to previous layouts just because it made it easier for some tasks (cf Workman and Colemak, which both sound great nevertheless).
So with that in mind, only Dvorak or Bépo would do (Dvorak-fr being out of the race for the sad reasons we know).

Now if it hadn’t been for those annoying signs foreign to English, I’d probably have chosen Dvorak. There’s a sizable community of programmers happy with it, so I have no doubt that it would suit a programmer who’s only interested in code and English and / or doesn’t mind not having diacritics in French — I’m sure you know at least one programmer who only uses qwerty and doesn’t give a damn about accents most of the time…

For some time I thought to myself that since I’d gotten bépo down pat in addition to azerty I could add yet another layout to my arsenal just for coding. But quite sincerely, I don’t feel like switching. I suppose there could be some reason to it, but I’m already spending way too much time in keyboard related things. And I would’ve had the frustration of not being able to pick Dvorak just because of vowels : I really don’t see how I could not mess things up both in Bépo and in Dvorak, what with vowels being placed both on the left side on the home row, but not in the same order. I think I’d thought to myself I’d pick Workman… Whatever, not gonna happen.


Thanks @platypuxbepo , that’s very useful info to guide my decisions