An interesting tidbit is that in my previous job practically everyone used Emacs and most people converted over to the US layout for coding instead of the Swedish one.
So now I'm fluent in the Swedish, English and later my own layout[0]. A little bit of a waste to be honest, although I'm much more content now.
Most software developers I know switch to the US layout for coding precisely for this reason. Square brackets are also usually much harder to reach in European layouts, while normally they have a dedicated key.
Personally I use the US layout on all my keyboards all the time, even if it doesn't match the physical keys -- I just can't go back at this point.
I've lived and worked in multiple countries and international environments. I always get a US/EU (Intl) ANSI, also used as the modern Dutch keyboard layout, configured to get umlauts and accents. I used to drag around my own X keyboard definition for years, but the last eight years or so I settled for the included "eu (EurKEY)" layout, which was really close to my own anyway. Check that out if you occasionally have to manoeuver Western and Northern European languages, because it gives you more without taking away the regular QWERTY stuff you're used to. I speak about six or seven languages, and I can get around with just this one layout, which makes things so much easier.
Get me a regular US/EU ANSI keyboard or laptop, or get somebody else to do the job, really. This is so basic in dev/sec/ops that I'm not willing to faff around.
To note, it feels a lot easier nowadays to remap keys, which helps make the best of any layout we've grown used to.
Carabiner on macos was great until kext got the stinky eye, but I'd assume the situation could improve again. PowerTools on Windows is excelent for most cases, and AHK covers the rest. Unixes have always been stellar on that front. At this point anyone should try at least once to remap some keys to make one's life easier.
On this front of the weakness of the US ANSI layout is the lower number of keys, where other layouts (the JIS one for instance, or the british internaltional on mac) give more latitude for extra modifier keys and additional shortcuts.
I would love to see more Keyboards providing firmware based remapping options...
No need for extra drivers or hacky solutions... Just works everywhere.
Best case scenario: Use a shortcut to activate mapping profiles to store different mappings in the same keyboard - press Ctrl+alt+super+1: enable profile 1
Yes, that's definitely something that needs to be more common and standardized (looking at you, Logitech)
On the "works everywhere", it's a weird beast. Programmable keyboards will work on any machine without any configuration, while software remapping will work on any keyboard, even the cheapest IR dongle keyboard you'll buy in a pinch during a trip.
IMO it comes down to which one you switch more often, the machine or the keyboard.
Karabiner Elements is still great on Macs (and also Keyboard Maestro), PowerToys isn't powerful, but how is Linux stellar, what's as powerful as Autohotkey?
Karabiner Elements was a pain for me on key deduplication, and tweaking millisecond delays is just barbaric. It was perfect as a kernel extension, but moving to the safer implementation made it unreliable, which is the last thing I want from a keyboard.
PowerToys can currently deal with most key combinations and remapping, which is nice as it's first party and pretty rock solid. I still needed other utilities, but only for smaller tweaks and could live without them.
For linux, remapping the keyboard is straight editing the keymap file, and it's less crazy than the registry on windows (last time I looked into there's also no keyboard layout editors supported on windows 11, and I have no hope they'd work with the onscreen keyboard as well)
> For linux, remapping the keyboard is straight editing the keymap file, and it's less crazy than the registry on windows
Both mac and windows have this least powerful equivalent, and via mostly more ergonomic gui apps with key detection (you can also edit the file, though its format might be worse). But then this method isn't context aware / dynamic, so nothing stellar about it
> tweaking millisecond delays is just barbaric
How would you achieve the same with editing a keymap file which has no delays?
Curious, which keybind your were able to use in Karabiner, but not in Elements. I know it's less powerful in a few areas (like detecting active field types), but otherwise don't remember reliability fails during transition
> mac and windows have this least powerful equivalent
For mac if you're referring to ukulele, it has a bunch of limitation and hard to handle cases. This is kinda normal as it can't handle all the known cases in the universe, but it's also a software targeted at niche users by definition.
I don't know of any windows tool of remapping a layout for win11, I'd love to hear about it please.
> How would you achieve the same with editing a keymap file which has no delays?
Sorry for the misleading. I don't want delays, I'm just remapping a key to have a specific action when pressed alone, and other actions when pressed in a combo. Except Karabiner Elements uses/needs delays to split these two cases (at least for the Cmd key for me)
You don't have these limitations with remapping the keyboard at a lower level + remapping the shortcuts. It also was enough of a pain that I moved to keyboards with more keys in the first place.
> it has a bunch of limitation and hard to handle cases
So does any layout-based remapping, and I've mentioned some of the limitations. But also your link says it's a universal layout (e.g., Mac) limitation, not ukulele's, think Ukelele "just" produces mac-compliant plist files, which can be edited by hand
> remapping a layout for win11
Have the dlls from the ancient microsoft keyboard layout editor stopped working in Win11? But also there is this more powerful (but paid) app kbdedit
> I don't want delays,
I got it, you use delays to differentiate, but then what mechanism does a simpler keymapping approach use to differentiate?
> I'm just remapping a key to have a specific action when pressed alone, and other actions when pressed in a combo.
I had those in Karabiner and with Karabiner elements (also with Cmd, and precisely due to the fact I can use delays that aren't available to the the keymap files I can have quick tap Cmd act differently vs a long tap/hold), so still not clear what specific functionality has disappeared and how this is connected to the level, KE installs its own keyboard driver, so is in full control for recognized keys and can do more than a layout due to the fact that it has more info to work with
Same situation as this guy, muscle memory for the german keyboard has prevented me from ever really getting into vim, because I would have to learn the US layout first
I didn't remap anything with the Swedish layout. Maybe it's less convenient than the US one for Vim but I honestly can't remember how large the difference was.
Interesting because keyboards and programming are core interests of mine (shocking, on HN).
I am skeptical about two of the main claims/conclusions, though:
- I don't think enabling caps lock makes the comma and period keys produce < and > without shift on a US keyboard, does it? It's not a "shift lock" after all.
- I think HTML is an application/specialization of SGML, which came from GML that is much older, and from IBM in the US.
There's obviously a caveat there that the keyboard could have been replaced - but based on the colour of the plastics it would certainly be a similar age.
The keyboard has AlphaLock rather than Caps Lock. I can't find a manual saying exactly what it did! You're right that the Caps Lock key on PC and Mac keyboards only capitalises the alphabetic keys without affecting the symbolic or numeric characters. Some international layouts may still offer a Shift Lock?
I've been interchangeably using a UK-ISO and a US-ANSI keyboard for some time now. The only physical differences are:
- Short Left Shift and extra 1x1 key right of it, in ISO
- Enter key being 2x1 in ANSI and a weird tall shape in ISO
I do prefer the ANSI enter key nowadays, but I use ISO because of availability in Europe. I could move to ANSI but my work laptop would still be ISO for example.
For keyboard layouts, I use 'Romanian - Programmers' (Which is US English + the extra Romanian diacritics are made with a key combo, AltGr + A = Ă, AltGr + S = Ș, etc). I had made the change as using the Romanian - Standard layout would've made crazy difficult to type special characters: []{};'\:"|,./<>?.
What I would like to see discussed is how a true successor to QUERTY would look like, one that's not dependent on physical typewriter arms not getting stuck together, possibly an ortholinear.
Having grown up with US keyboards it's somewhat hard to relate to the difficulties of certain patterns. Then again, I've seen enough keyboards that break said patterns that it's frustrating to say the last.
My current favorite is the Unicomp 103 let US ANSI layout. I started with whatever came with a PC XT (model K iirc), then about a decade with a model M keyboard. I spent about a decade on about 2 a year that I hated before discovering Unicomp existed. I also got into other real switch keyboards as a result. I'm generally fine with Cherry MX Brown.
On layout, I can't stand the Fn key in the corner. And I didn't like when the arrow keys are weirdly integrated on the right. I favor Ctrl on the left and shift on the right.
While I haven't used other language layouts, I find that even the differences with Mac key bindings throws me off a lot.
> People constantly search for simple ways to facilitate something, and when you need a character that is not in the alphabet, Europeans will most likely choose < and >, while Americans may choose { and }.
What’s the difference or cultural context here?
I see them used very rarely in written text. The only context I see them commonly used is math, they are used around sets pretty often, for whatever reason. Or their giant cousins are used to denote different cases.
I have no idea why we have these curly bracket keys. Really I think they are just programming keys for the most part… I’m glad nobody thought to go through and localize the US keyboard to only include punctuation we use! I wish we’d localized worse, let’s get some Greek letters, they can replace the numpad.
I took a note from the French keyboard layout and placed all the common programming symbols on the numbers row, and the numbers themselves on shift, since the amount of symbols usually dwarfs the amount of hard-coded number in source code. (If I enter numbers in a spreadsheet, I use the keypad on the right side). Combining this with a regular Dvorak layout for the letters, I get a Programmer Dvorak layout that lets me touch-type code as easily as regular text! (And yes, I can also use Neovim with Dvorak)
As a Serbian keyboard user, I really dislike these keys: \ [] {} |. They always mess up my typing flow. The layout seems to prioritize punctuation like : , ; and - over the symbols needed for programming and markup, making them easier to reach compared to an English keyboard. It’s great for writing regular text, but when it comes to using LaTeX, it’s a pain since typing \ [] {} | feels like doing gymnastics with my fingers.
I have an old steelseries gaming keyboard that has 22 macro keys that can easily be programmed, is so useful for coding and excel shortcuts and copy paste etc.
Extremely annoying that the new steelseries keyboards and other vendors have far fewer macro keys.
In fact I can't find any keyboard with the same bank of 10 keys on the left (like another number pad) and 12 across the top and I have searched extensively.
If you get a keyboard that is programmable with QMK [0] and/or VIA [1] you can just program any key, or mod+key, to be a macro - and you can even record them on the fly [2].
i worked on a consultancy gig in Geneva CH, where they had both german and french keyboards - aaargh! i was slightly surprised they didn't have italian and romansh ones too!
and my first encounter with unix back in the 1980s involved me with hacking termcap/terminfo files - eek!
to everyone, do yourself a favour and use a US keyboard. and no, i am not a US national.
> This then suddenly explained why so much HTML code is written IN UPPERCASE LETTERS: On a US-ANSI keyboard, you can circumvent the pain of having to use angle brackets by simply enabling caps lock and then typing everything without pressing shift at all.
...huh? Caps Lock has not affected non-letter keys on any keyboard I've ever used, in the UK or the US.
So now I'm fluent in the Swedish, English and later my own layout[0]. A little bit of a waste to be honest, although I'm much more content now.
[0]: https://www.jonashietala.se/blog/2023/11/02/i_designed_my_ow...