Show HN: My proposal for a new keyboard layout
github.com
github.com
https://upload.wikimedia.org/wikipedia/commons/b/b9/KB_Franc... (AZERTY layout screenshot)
It looks similar to QWERTY, but some letters are swapped around[1], and some extra characters are added so that we can type in French easily — well at least that was the intent.
The big problem with this layout is that we can't type proper French with it. A lot of characters are missing, for example you can type « é » but not « É » which is its uppercase counterpart. Same goes with « ç », you need to remember to type the unicode key code with Alt+128 to type « Ç » otherwise you need to cross fingers that the autocorrect will catch it. Oh and those French quotation marks that I'm using? They are not available on AZERTY either! Even though they are the ones that should be used in French.
Another problem is that I'm a programmer and QWERTY is colloquially known as the programmers' Dvorak. Every piece of software in the world and every shortcut is meant for the QWERTY layout. Using another layout is the source of a lot of pain because intuitive shortcuts become awkward, or simply don't work at all and a lot of remapping is required.
In a nutshell, AZERTY is the worst of both worlds — the people who designed it just wanted to see the world burn apparently.
Due to this frustration I've been working on a keyboard layout that does exactly the opposite: bring the best of both worlds. This layout is called qwerty-fr.
https://github.com/qwerty-fr/qwerty-fr/raw/master/qwerty-fr-... (QWERTY-fr layout screenshot)
It can look a bit overwhelming at first, but it's actually really simple. It is a strict superset of QWERTY, which means that anyone who knows QWERTY can type on this layout without even knowing that it's not a real QWERTY layout. Additionally, all the accentuated characters can be typed directly by combining the right Alt and another key, contrary to what it looks this is actually very convenient and doesn't slow down French typing speed noticeably.
Ιt goes further, I've added special dead keys that make it super easy to type greek and currencies (math is coming soon). Just do AltGr + g (g for “greek”) and the layout becomes:
https://i.imgur.com/pCHipNH.png (Greek layout screenshot)
You can then press any letter to type the corresponding greek character — for example “p” for “π”.
For currencies, press AltGr + Shift + 5, and the layout becomes[3]:
https://i.imgur.com/XH6gp6c.png (Currency layout screenshot)
You can then just press the letter “y” for “¥”. Easy peasy.
Next step is adding a math dead key[4], but that's for another release.
[1] Nobody knows why the A and Q were swapped, neither why the Z and W were swapped. Also why on earth is there an entire key exclusively dedicated to « ² »?!
[2] € is on AltGr + 5, which makes it easy to remember.
[3] This rendering of the currency layout is actually outdated, I've switched the positions of the currencies to make them easier to remember. For example, “p” now yields “£”. You can see the current mapping here: https://github.com/qwerty-fr/qwerty-fr/blob/aa44310587f574cb...
https://trends.google.com/trends/explore?date=all&q=frqnce
This search has become less common as people take their smartphones and, hence, their own keyboards, with them.
Good luck to you!
One question though: the French seem to enjoy using different standards, for some reason. Besides the keyboard, I've also noticed they have a lot of WIFI channel exclusions.
I'm not saying it's good or bad, but do you think this might impede the success of your project?
The fact that most people ask “Why shouldn't I use alternative <x> instead?” means that I need to improve my README file to show better why QWERTY-fr is truly different from all the other keyboard layouts, and what makes it stick out!
Colloquially, I already planned to update the website[1] with a tutorial guiding the user step by step through the philosophy. Hopefully this will help users understand its value proposition!
—
With regards to the different standards, I agree that French people tend to reinvent the wheel. I have nothing against that but the big issue is that they never look well at the previous attempts, which leads to crappy alternative standards. This project aims to reinvent the wheel but in a good way!
I plan to get this keyboard layout standardized by a standardization organization once it's stable. It should help adoption because I could then convince OS maintainers to add it as an available layout. :)
Well not everything as to be from America and in English language. Different attempts are made in different countries and it's true that US attempts tend to stick, not necessarily because they are superior, but because of the general US influence.
It's true that AZERTY is an annoying layout but only because everything is made as if the only existing layout was QWERTY.
If their wheel is better, why not?
> I have nothing against that but the big issue is that they never look well at the previous attempts, which leads to crappy alternative standards. This project aims to reinvent the wheel but in a good way!
Great answer, I totally agree!!
I wish you a lot of luck, as I'm a bit irked to have to provide support for weird keyboards! (I hope someone from Germany will do as you did so QWERTZ can also die :-)
> I plan to get this keyboard layout standardized by a standardization organization once it's stable.
Even better! Using standards is a great way to work around many issues.
One last thing: if I may suggest, you should replace the default picture by one with fewer characters: the german β, the spanish Ñ, and the scandinavian character (oslash, ae) may be nice to have, but they may play against you: French users may see them as irrelevant, and cluttering the keyboard.
Trim everything you can, to only have as little extra characters as necessary to support french.
For similar reasons, you may want to unify the blue and the red overlays. I've figured out that the right Alt did toggle the blue overlay, but I still don't understand how to get the red one.
Given that blue and red do not coexist on any key, merging the red keys into the blue overlay may be for the better: you want what you offer to be extremely clear and simple to understand
This is a very good suggestion! I should definitely show a simplified screenshot, and only introduce the extra characters in an advanced section. This should make it look less overwhelming.
> For similar reasons, you may want to unify the blue and the red overlays. I've figured out that the right Alt did toggle the blue overlay, but I still don't understand how to get the red one.
For other readers, you're referring to https://qwerty-fr.org/. Blue means that it's accessible with AltGr, and red means that the key is a dead key.
In a nutshell:
– Lower left corner: no modifier.
– Upper left corner: Shift.
– Lower right corner: AltGr.
– Upper right corner: AltGr + Shift.
I agree that this is confusing, especially since the keyboard widget doesn't highlight the layer when you press e.g. AltGr + Shift so it's hard to know what's going to happen.
Given the difference in color, I thought it was a separate layer activated by another key!!!
This widget I'm using is x-keyboard[1]. It has several shortcomings (including the one you mentioned). I'm trying to get in touch with the author to see if they are still interested in maintaining it, otherwise I'll do a fork.
Those are Danish or Norwegian characters, they are not "the Scandinavian characters" as they are not used in Sweden (using ö/ä).
I chuckled :). How dare they use the metric system and degree Celsius? You got me curious about the WiFi channels though, but it looks like there is nothing specific to France: https://www.lairdconnect.com/support/faqs/what-channels-are-...
> How dare they use the metric system and degree Celsius?
Judgements about what they dare to do aside, isn't it fair to call those French? The metric system is based on the meter, a French unit. The International Prototype Kilogram (obsoleted only recently) was stored in France. While Celsius wasn't invented in France, a Frenchman flipped the scale (originally, freezing was 100 and boiling was 0). etc.
Not Invented Here syndrome doesn't mean that what you do invent here can't be good, that you can't sometimes get the rest of the world to agree with you, or that you abandon anything that's successful.
I'd advise the author to go one step further and adopt the ANSI layout instead of ISO. So you can just get the US version with most of the keys already etched with the correct symbol, no matter where you are in the world.
> One question though: the French seem to enjoy using different standards, for some reason.
Not French, but here's an observation: the French world has great engineering schools like the Polytechniques (Paris, Montreal, Lausanne) or Mines. And the French government historically had military procurement and R&D done inside the country as well. They are, for instance, the only country outside of the United States to have built and operate a nuclear aircraft carrier.
Totally. I once had to use a UK keyboard with this weird vertical ISO enter key - it's a pain.
I think I might live with a smaller space bar, as I got a rare IBM SK-8835 keyboard in JP locale before I could source a US one ( see: http://www.komotch2.com/junk/kj/sk8835lj.htm ): the true dealbreaker was the ISO enter key.
The carveout from the spacebar were actually pretty handy, to map with AutoHotKey extra keys staying right by my thumbs :)
> They are, for instance, the only country outside of the United States to have built and operate a nuclear aircraft carrier.
I love that a lot of countries do a lot of things: we need more alternatives to avoid duopolies (MIPS to avoid AMD64 vs ARM64, Firefox OS to avoid Android vs iOS)
And it's even better when the 3rd alternative offers unique advantages!
But using a different keyboard layout for no reason at all... sorry, I don't get that. It makes life harder for everyone, with 0 practical benefit.
It's like if some country mandated a square USB-C connector: breaking a standard, just for the pleasure of breaking it, to make things more expansive, create more e-waste, etc.
It originally appeared in the 19th century for typewriters, so it's not exactly new.
On typical keyboards, the spacebar is just about the width of 6 keys. -- Comparing what's allocated to the thumb vs to the pinky: the thumb is strong, the pinkies are weak, but the thumb is only used for the spacebar, and the pinkies for a bunch of other keys.
I've enjoyed using these niche ortholinear or split ergonomic keyboards. It's good to be able to use the thumb for more keys.
The weird part about this layout is that you can use it for English, French, German and Swedish (maybe more), but leave out exactly one Danish characther making it useless for Danish. Why leave even add æ and ø if you leave out å?
People from other countries are more likely to ask for an English layout, generally UK if they're from Europe (it keeps the ISO enter key shape) or US otherwise.
I switched like 10 years ago and it's really a lot better, even if I have to customize it a bit to be able to type äöüß (via caps+aous).
But I'm peculiar anyway as only my Linux/work machines have that, I still use a German qwertz on Windows on my gaming machine so I generally switch layouts once per day, which only works with different physical keyboards so it feels different ;)
Danish keyboards are obviously the default here, but it's usually not much hassle to get UK/US keyboards for laptops. Buying a laptop with a German keyboard is more complicated.
Never had any issues with Belgian AZERTY. Much prefer the useless number row to be behind the shift (there's a numpad for those anyway), and having special characters readily available on that row.
Each country has its own standards, especially with radio channels, but France seems pretty similar with other west-european countries (Wifi channels, FM radio, digital TV...).
Regarding physical keyboard layouts, mostly all the world is using the ISO layout but US are stuck with the ANSI keyboard missing one key.
Is anyone using the us keyboard outside the US? I am actually curious, it never came to my mind before.
It's preinstalled on Linux, and available for macOS and Windows as well. I feel a keyboard based on the US layout which far too often is considered a standard (better for coding and buggy software and games), with dead keys and diacritics is a fantastic idea.
I have migrated all my machines to use it instead of the custom layouts or the US one that's very restrictive when you need to write accents.
> It's preinstalled on Linux
Note that at least on Ubuntu/Debian, the included version is older and a bit different. Not unusable or anything, but not the same as on the website.
Not much 'euro', eastern europe is missing as a whole. E.g. polish Ł, czech ř, slovak ô, ... Either use dead keys for all diacritics or somehow add them all to the third and forth layer.
Wouldn't this solve much of the problems of these keyboard layouts by reusing the same letters?
But I'm talking about the euro-layout, there are keys for ý, ä, ü, ö, é, .... All of these are 'western' special characters, no eastern europe (slavic language letters) or greek letters. So users of _these_ languages, need to use dead keys or some other method (I don't know to get greek letters with this layout) for at least some of their 'special' glyphs that are not, by chance, also used in another language (for slovak and czech that's for example ä, ú, á, é, ý and í).
Highly recommended. No idea though for any other languages other than German.
On Windows I use the US INTL layout and it works really well even for accentuated characters. Just by typing ` followed by the letter that you want accentuated, for example `e = è, even my non coder friends prefer that layout over the official Italian one.
But your keyboard it's actually pretty good in my opinion, you can write in French, Spanish, Italian, German, Greek and probably a few more languages that I can't recognize, so I would propose to change the name to qwerty-weu (West Europe) since that seems the spirit of the project.
With that said, I don’t think I’ve typed a French accent on a physical keyboard in almost a decade. For the most part (99%), I’ve stopped reading and writing in French. On the rare occasions I need to write French formally, I usually copy and paste the accents missed by the spell checker.
I found my peace using qwerty + compose key to make cedilla, accents, umlauts and more.
Any new layout is basically dead on arrival except for a few keyboard geeks. Commercial viability (as in, keyboards sold with that layout and correct keycaps) is essentially zero unless a government mandates its use. The latter is not likely in countries like France.
Making the compose-key (usually assigned to the right alt) more popular and better supported is probably the most effective way of enabling the input of letters like É, —, œ, Å, ç, ß, and € on desktop operating systems.
Meanwhile on macOS Big Sur, Karabiner seems to no longer work correctly (and was a royal pain to set up besides), the US International layout doesn't include a proper compose key (it just turns all punctuation keys into dead keys), and the dead keys don't even make all basic combinations (e.g. Polish "ć" or Esperanto "ĉ").
Seriously, Apple had to go out of their way to screw this up! Just tack the Unicode modifier character (e.g. U+0301) onto the end and run Unicode normalization! I get that you don't want this when you have dead keys doubling as normal keys, but dedicated dead keys (e.g. Alt+E) should just always create the character you're asking of them.
Just let me set one of my modifier keys to a proper extensible compose key!!
áéàèçæöäëïüî ÁÉÀÈÇÆ...
You can even do «» with Alt Gr+[ and ] and € with Alt Gr+5
Its advantage is that it uses dead keys to add diacritic.
For instance (Alt Gr+i then [normal vowel key]) will give îôêâ... You just have to know the diacritic position and press the normal letter to apply it.
FWIW, growing up in Italy I have the same complaint as the OP about not being able to type È in the italian keyboard -- it comes up somewhat often in prose.
My only complaint is that I occasionally write to colleagues named Paweł or Michał which are not typable
Currencies also: €£$
The annoying part as a programmer is the way to get to {[]} with altgr button and right pinkie finger, that takes dexterity... Oh, and <> that are bottom left beside z on the same button with shift.
I always get a bit confused by those namings - maybe? On the one I'm talking about I'm realizing now it's actually two presses rather than one for É (E -> altgr+').
Other commentor mentioned EURKEY, which has it but is otherwise quite similar
– ± is on key 1 (?)
– ² is on key 8 (?!)
– can't directly type éèêë, àâä, ùûü, ìîï[2].
– € is not available (big oops for a French keyboard layout).
– œ and æ are not available either.
– no support for no-break space and narrow no-break space (they are mandatory in French around punctuation).
QWERTY-fr aims to be super easy to learn if you know QWERTY thanks to its logical philosophy — you can read about it here[3].
What do you think? :)
[1] http://kbdlayout.info/KBDCA/
[2] You need to press a dead key first, which is awkward and slow. The fact that dead keys are placed seemingly randomly makes it even worse.
[3] https://github.com/qwerty-fr/qwerty-fr#-philosophy-overview
If it's right, I believe that it only invalidates point #4.
Windows lets you modify the "locale" easily (something I do every time I install Windows) and also has MSKLC which is rather good (but could be made easier and integrated in the Control Panel).
Other OSes expect everyone to stick to a standard, nevertheless allow custom locales and keyboard layouts too, just a user-unfriendly way, begging for a 3rd party to come up with an app to make that accessible to mere mortals.
My go to solution for this always used to be compose keyboards on my Atari. I only recently found out (from hackernews) that there is something for windows too. [1]
(Why does the 102nd key (between left shift and Z) have another copy of < and >? This is good in a sense, because the layout works for both ANSI- and ISO-type keyboards. But it does seem a bit redundant.)
While as a longstanding US-Dvorak user, I would not contemplate switching back to QWERTY, this layout does look very sensible. I particularly like the US-style punctuation placement. (Far superior, in my view! " in particular is very convenient.)
I would argue that we should just get rid of accents on uppercase letters, and that we should get rid of characters like œ and æ. Also what is the point of having different quotation marks? Even in english. Language gets simpler over time, let's just take a shortcut.
[1]: https://fr.wikipedia.org/wiki/Rectifications_orthographiques...
FWIW, my wife (French) is a BÉPO enthusiast - my own french is not good enough to have an opinion but I just asked her (without any context) if she has any trouble with typeing accents, and she said "No, because I use a BÉPO keyboard".
Don't know if you mistyped here, but QWERTY is definitely NOT colloquially known as programmers' Dvorak. They're totally different layouts.
Been using that for years in one form or another.
However, the affirmation “extra characters are added so that one can effortlessly type in French (as well German, Spanish, Italian, etc.)” doesn't really hold well IMO. For example, there's “é” but no “áíúó” keys. This lack of acute diacritic for other vowels is a big dealbreaker for Spanish and Portuguese. Possibly, others too.
As someone used to the Brazilian (ABNT2) keyboard, I think dedicated keys for characters with diacritics is not the way. Typing with diacritics for dead keys to the right is just as easy, if not more, as using alt gr, with the advantage of having more free keys.
Otherwise, this is great.
BTW, I like how this is closer to US keyboard than ABNT2, which switched the `~ key for quotes and makes typing stuff such as ``` for blocks of code a big pain, and annoying to open developer console in Source games. ABNT2 also annoyingly switched braces location to be vertically stacked.
I agree that QWERTY-fr looks bloated on the first look, but the position of keys actually make sense so it is super easy to learn. I recommend you to read the philosophy[2] behind this keyboard layout.
What do you think?
[1] https://www.goodtyping.com/teclatESP.png
[2] https://github.com/qwerty-fr/qwerty-fr#-philosophy-overview
Yet your keyboard layout does not allow to type the characters needed for all the languages of France. For example, in Catalan we need "í". Unless you add all possible combinations of accent+letter, the asymmetry between the characters that are already composed and the ones that need AltGR is annoying.
I write regularly in many languages, mostly French, and I hate the AZERTY layout, mainly due to it having (some) already composed accented characters.
Here's mine, top left: https://imgur.com/gallery/Pa51o8c
(apologies, that was the image I had immediately available)
Top row is volume, Emacs save (ctrl-x ctrl-s), scroll/zoom
Middle row is layer change, Meta-x (command palette in Emacs), Ctrl-g (quit/escape in Emacs)
Bottom row is Meta, Super, Esc-c (in my zsh, it runs "fd --type directory" in the fzf tool, which lets me type a few characters of a directory to cd to it, however deep it is)
Macro pads can be controlled by QMK firmware (which I use) which is reconfigured by editing c code. There's also VIA firmware which is also very flexible. Other manufacturers will have their own proprietary systems.Next step is to add a "paste plain" macro for Mac OS. (Option + Command + Shift + v)
US-intl layout: https://kbdlayout.info/KBDUSX/
Finnish layout: https://kbdlayout.info/KBDFI/
Note how all of ~[]{}\$@| are only accessible with altgr.
My layout: https://kbdlayout.info/06e90945-d036-4d0b-9627-7e840edf9b4e
The readme also includes comparisons to other common layouts I see Finns using.
One of the big advantage of the current layout is that, except for some rare cases such as "ë", special characters are the primary letter of the key instead of numbers like in QWERTY. Even ê, which need composition with ^, has the advantage to have both symbols on the same hand so there are not much coordination issues.
The only current common daily-life cases where I need complex coordination that I can think of are: - End of sentence+uppercase for the new one: not a big issue as the end of a sentence usually is a natural point to slow a bit as the next one will have another mental context. - Acronyms, names: An issue, but I usually don't right three of them per line. - Special characters uppercase. I agree with the author on those, but on the other hand, many simply do not write them and for a long time, most people were even told it was a mistake to put accents on uppercase even when hand-writing. So this one is only a big issue with those that are quite pedantic about using special characters on uppercase. - Programming: This one is a non-issue as the bottleneck is not my typing speed so I can take my time. - numbers: I choose laptops with numpads
On the other hand, accents are everywhere and can pop up in the middle of a word: "Loïc, tu pourrais aller chercher du pain à la boulangerie où on a mangé hier ?". To write this, I currently have 3 hard sequences, 2 if we count Loïc as a single one. With a keyboards where all accents are special cases, that becomes 5 or 4. If the "?" had been a "." and we count Loïc as one, it would be 3, so in both cases, AZERTY, to me, seem easier to use.
I am not saying this layout is a bad idea and should not be standardized, but at least personally, I would have a hard time with it.
[citation needed]
I use Dvorak for coding, and it works just fine. Sometimes I use layouts where holding cmd/ctrl reverts to QWERTY (so that Ctrl+C is where it is on QWERTY), but it doesn't really matter that much.
Incidentally, I once made a layout with similar ideas to this one, but based on Dvorak. I was living in France, and just needed an easier way to access French symbols. I didn't go quite as far as this - for all the diaeresis symbols I just relied on Altgr-:, then letter.
I'm a bit skeptical about some choices like placing ÿ on the same key as H. It's such a rarely used letter I'm not sure how you would ever learn that it was on that key, since there's no underlying logic to it.
I thought that was odd at first, since y/Y does leave unused space for it, but the logic (diaeresis: AltGr + key below the main letter) is explained: https://github.com/qwerty-fr/qwerty-fr#-philosophy-overview
So I had to settle with WinCompose to do proper non english languages.
https://github.com/samhocevar/wincompose
Did anybody get this fixed in Windows? If so, please send help! Also if you are inside Microsoft and know the correct team to adress this to, please for gods sake, point them to this issue.
à is \
è is '
é is /
ç is ]
accent grave is right-alt+[+letter
and
"specials" are right-alt+num (±@£¢¤¬{}[]) but for any glyph used in programming, I usually switch back to US keyboard using alt+caps-lock. Ça fonctionne très bien pour moi!
Accolades ({}) and brackets ([]) are on alt-7-8 and alt-9-0. A bit annoying to type, but manageable. At least it's somewhat logical (pairs are next to one another).
What's nice is that this is the default French layout for Apple computers in Canada, so you can order one with the correct keys printed on it: https://www.apple.com/ca/shop/product/MK2C3LL/A/magic-keyboa...
It's not available on windows though, so I had to hack a lenovo thinkpad external keyboard to make it compatible with QMK to be able to work properly at my current job.
And linux (or at least Ubuntu) includes it by default. For spanish and german it's great.
This still puts a lot of emphasis on right-most part, which makes this quite unbalanced for programmers I think.
Personally I would never go back to any layout that doesn't have a numpad and all special chars a programmer needs without moving the fingers 1 row up or down.
Once one gets used to this everything else seems archaic.
i assume for #2 i could programmatically remap keys with no effect in input latency? which then would require merely changing a few keycaps around... can anyone confirm if this would be the case?
https://en.m.wikipedia.org/wiki/B%C3%89PO https://bepo.fr/wiki/Accueil
My main problem with it is that it only optimizes French, and it (implicitly) deoptimizes everything else. For example “W” is awkwardly placed at the very edge of the keyboard, which makes typing English pretty annoying. Keyboard shortcuts are pretty inconvenient as well.
Imho bépo is great if you write pages of raw text every day in French — for example journalists and writers. But apart from this it's not pragmatic for other usages — and I want my keyboard layout to be good enough everywhere, not just at typing French.
I discovered the "voluntary" AZERTY Z71-300 standard since then and I've been using it since on Windows.
I use QWERTY for coding but sometimes need to document other things in French. This is a pain killer.
Also, look into QMK. For anyone who wants a more ergonomic keybind setup, check out some mnemonic namespacing stuff.
Spacevim, Spacemacs, VSpaceCode (for vs code), etc. You can always take the approach and apply it to your existing config. The three important bits are:
1. Give your thumbs more resposibility
2. Namespace actions under an ergonomic leader key, using mnemonics
3. Use a discoverability plugin like which-key to help discover new keybinds
I wasn't even aware that this seems to be a common problem in other layouts / oses
There are QWERTY (and QWERTZ) keyboard that could do that. Like Czech or Slovak one.
Who doesn't? Isn't AltGr just the right Alt?