Haha, I was reading the first section and scratching my head, thinking: “Why so complicated? Just use the International AltGr dead keys mapping. It is so much easier.”
OP invented the International AltGr dead keys layout and this is the story.
It's worth noting that the concept of a "Compose" key seems to have originated on DEC's specialized word-processors (physical machines which just did text editing), and that when Windows came on the scene, someone at DEC created "COMPOSE.EXE" which brought that functionality to Windows --- it continued working up through very late Windows 95 betas, then was broken and never updated.
is up-to-date, and if I wrote more, would definitely try out, but these days, either I write the accented character w/ a stylus, type out the LaTeX command, or use the on-screen keyboard via touchscreen.
I can confirm that wincompose works like a charm with Windows 11. I map it to the Insert key, whose original purpose still evades me.
I also want to say that once you try the Compose way, you begin laughing at the disproportionate efforts so many people have dedicated to the chimera of finding the perfect layout.
How do you cope with parentheses being just one key off between US and most European layouts (above 9 and 0 vs. 8 and 9)? I mean, I can retrain my muscle memory to a completely new position, but just one key to the side is unbearable!
It was terrible, that's why I switched to US keyboards.
But the biggest problems are shortcuts. All applications assume you have a US keyboard layout, some shortcuts are impossible on the Italian layout.
And even with the Italian layout, I still have no idea how to type an uppercase accented E (È).
I'm Portuguese and have lived in the UK for over a decade.
UK keyboard layouts suck for writing Portuguese, because they lack convenient ways to type all the diacritics. Portuguese layouts (especially on macOS) suck horrendously for programming (curly braces and square brackets are inordinately annoying to type).
These days, all my physical keyboards are US (ANSI) layouts, and I use the US International (with dead keys) layout exclusively. It's the only relatively sane option that allows me to write both code and all the natural languages I'm liable to write on any given day (read: English, Portuguese, and some random French or German loanwords here and there).
As a Brazilian fellow, 100% agreed. US international is the least bad compromise I've found. I can't say I mind the dead keys too much. And I do enjoy that all combinations are sensible (i.e. key for the symbol + key for the letter). Memorizing the (not quite random but not exactly 100% logical either) position for some of the diacritics would be very annoying to me.
I guess I don't mind it too much because the standard portuguese keyboard layout also rely on dead keys for accented letters, instead of having dedicated keys for them. (Or at least the Brazilian Portuguese layout does, not sure about the European Portuguese layout). So that's just what I've always been used to.
I speak English and French at work and I use an ANSI US keyboard frequently, but the laptop itself is on AZERTY. I keep three layouts : French AZERTY, Normal US and US International. When typing code or English, it's the US layout, then I switch to International when speaking French. AZERTY only if I don't have my keyboard with me
I know that hn is heavily populated by people from the USA, that the author is dutch but a non-english language would be... every other language beside English.
Commenting on the actual text, his solution for the cedilla is awkward and is one of the first things I disable on any computer, because it is a extremely common letter in portuguese.
I agree that typing curly braces and square brackets on non English keyboards suck, but typing non English languages on an English keyboard sucks too. I made the opposite of your decision: I brought a laptop with my national keyboard and I switch to US layout when programming. That has had a curious effect on me: as my editor and my terminals have black backgrounds and everything else has a white one, something in my brain makes my fingers reach for keys according to the color of the background. I make many mistakes when I attempt to program in a white window (eg: type in gedit) or write in my language in a black one (eg: an md file in terminal.)
I do not really get the point of layouts such as altgr-intl tbh (even without dead keys). It is fine if you want to write here and there the name of a person that includes non-english characters, but I cannot write actual text in that. Whenever I encounter this layout somewhere I just find it annoying even in english, though I guess dead keys is what actually makes it annoying.
Without dead keys it is def better, but even then I cannot write in said non-english language with that, instead of using one actual layout for that language, and I do not see why not just change layout. Granted, there are some small annoyances because punctuation marks may change place, but I find that easier to learn than using altgr to write letters.
If you are on a us ansi keyboard and switch to a iso layout (most European layouts are iso) you have I believe two unreachable keys. And the arrangement of the others is slightly different you will have to adapt your muscle memory anyway.
Altgr-intl is pretty good for when you code and write English most of the time and occasionally need accented letters. If you need to write a lot in your native language it's better to get a local layout keyboard.
Yeah I like this layout and it seems to be available on all Linux distros.
I only use it occasionally to talk to friends back home though, not sure how it is for constant use.
I use the eurokey layout with a US international keyboard.
I've bound caps lock to alt gr while using it as a modifier key in niri at the same time. So `caps_lock => return` opens a terminal and `caps_lock => a` inserts "ä". Since the caps lock key is right over the shift key, it's also easy to type uppercase umlauts.
This is as easy as you can make typing special characters by configuring the keyboard, but it's still annoying. What I really want is to type things like "schoen" and have that automatically converted to "schön" when I press space.
There was a chrome extension to do this called Umlauter[1], but it didn't recognize language, so it wrongly converted umlauts in english text, like "guess" to "güss", which isn't even a german word, but to save space the extension uses heuristics rather then a dictionary.
(Would it to be too much to ask of a browser to include dictionaries for every language the user speaks in a way that can be accessed by extensions and web apps?)
Today, chrome has an API to recognize language, but the extension doesn't work anymore because it doesn't support manifest v3.
I work on a scratchpad[2]. I plan to add something like Umlauter with language recognition, and maybe using other Web AI APIs.
For my language I've been using a US layout with a similar alteration for years as well on Windows and Linux: AltGr+C = Č, and AltGr+V = Ć (the second one is much less common, basically only used for writing names). Similar for Š, Ž and Đ, I stopped bothering with stuff like á because I need them maybe once every couple of years.
My point being: wow, I've never thought about standardizing the layout, what a marvelous thought. Not for the general public perhaps, but for some programmers it would be a godsend. The whole terminal is basically non-ergonomic on other layouts. Stuff like ./ is right together on the US layout. Similar for coding. I preach to my fellow developers and they see my point but most won't go outside of what's provided by the OS for some reason.
I don't know enough about other European languages from my "region" to make a more general standard (though I suspect it wouldn't be as simple as creating a single "eastern" one, I doubt e.g. Hungarian and Polish have so much in common) but it's a good idea, something that could be collaborated on.
EURkey seems to work particularly well for German [0]. I wonder why such alternative keyboard layouts have not caught up a bit more. Problem it is really hard after 30 years programming ( and using vim) on German keyboards (which admittedly is a pain) retraining my muscle memory.
Edit: EURkey seems to be pretty much the altgr-weur mentioned in OP
Since Finnish (and Swedish) only require a few non-English letters, I actually very much prefer _not_ having to use AltGr and dead keys. My solution for improved ergonomics, especially around typing of symbols, is a slightly modified custom Finnish/Nordic keyboard layout: https://github.com/ruohola/finner
The default Mac approach is IMHO superior in this. Just select the regular US keyboard, you have deadkeys available if you need them by pressing “alt”+symbol (e.g. “o” to have the dieresis symbol), then press the vowel you want to modify. But if you don’t know better, it’s just a regular US layout, and it’s always there, by default, on every computer (including that of your colleagues).
It's good from a text typing point of view but horrible from a keyboard shortcut point of view. I personally had to disable the feature so that I could actually use keyboard shortcuts in a sane manner.
The AltGr approach is much superior by not invading on the keyboard shortcut space.
Which keyboard shortcuts? In MacOS apps they’re usually done with the Cmd key (=Win key), not Option (=Alt).
If you mean in the terminal, or in a RDP session, yeah, that can happen (but it’s obviously a minority of users, and you can select the US International keyboard anyway).
Devnagari you mean. We have devnagari keyboard layout which can be used. you of course need to switch between keyboard layouts which can be done with a keyboard shortcut as well.
I have a standard English keyboard but I have mapped it in my mind with the German layout which includes ä, ö, ü and some other differences.
As long as I don’t actually look at the keys I can write really fast with it, years of practice I guess…
OP invented the International AltGr dead keys layout and this is the story.
reply