The BYPO layout: Trying to create a layout optimized fo French (and English) for Corne-style keyboards
Coming up with a new layout is HARD :D
The main constraints of a Corne-style keyboard is that there are much less keys available than what's necessary to write any latin-script language besides English.
One of the main design principles I had was to push all accented characters on an accent layer, breaking with Bépo where almost all of them are directly accessible (but need a full-size keyboard to work), despite some characters like é or à being much more common than Z or K for example.
My main goal was to optimize for French first, English second. Home row is pretty good for both and based on the Bépo layout, except U which seems pretty useless in English. Top row is OK I guess. More skewed towards French, but still rather optimized for both. Bottom row is good for French despite keeping the ZXCV cluster, the right part is not great for English. W and K are pushed to slightly less accessible positions because they are basically never used in French. But they are relatively common in English. So IDK.
I personally use Colemak with some tweaks (wide angle mod for people who know it, and I changed a few of the alt characters to my needs). I'm quite happy with it, and I write in both English and French
Facing with the same problem (not exactly: my keyboard have a few more keys than the Corne), it always felt more disruptive to me to interrupt the flow with layer switching than to stretch the pinkies to the outer column (or middle fingers to an extra row) for uncommon characters.
So I used Bépo (and now use Optimot) with very little adptations.
It implies outer column stuff must move either to thumb clusters (for the most used keys) or to layers, to give priority to letters.
That's actually a good point. I've read Optimot's design goals and I'm working on a new revision where é and à are moved to the base layer since they are more common than a lot of consonants.
I wrote a SW a while ago that does an automated optimization of keyboard layouts for a given body of text. It only optimizes the base layer. Since I did this with small/custom keyboards in mind, it only considers the core 3x10 keys. You'd still need to create other layers for numbers, symbols, etc. Even with all the automation, it's still hard to make a good layout. It depends a lot on the text you use to train it, and on the set of criteria you're trying to optimize (heat map, rolls, same-finger bigrams, hand alternation, minimal finger movement, etc.). It also generates many layouts, so choosing one can be daunting. I added a ranking system that should make it easier.
The project is dormant at the moment. I never quite got to the point where I was ready to commit to actually learning one of the auto-generated layouts. I want to pick it up again at some point, write some documentation and make an "optimal" layout for my Mantis keyboard. The code is on github: https://github.com/fxkuehl/kuehlmak
The middle row is almost identical to colemak, with the difference of one key and positions being shuffled. It probably makes a huge difference what you analyse 😃