I’ve used a US-QWERTY keyboard layout my entire life. I’ve seen other layouts that do things like reduce the size of the enter/backspace keys, move the pipe operator (|
) and can’t wrap my head around how I would code on those.
What are your experiences? Are there any layouts that you prefer for coding over US English? Are there any symbols that you have a hard time reaching ( for example)?
I am German and I use the German keyboard layout…
I use a country-specific ISO layout, and while I’m very aware that certain things are insanely awkward compared to a US keyboard, like { }, [ ], $ and /, you get used to it. You get used to everything over time. I even use the default vim bindings and have gotten used to them as well.
Yeah I have a hard enough time remembering the default vim bindings, I can’t be assed to go around making my own up and trying to remember those too
I just press tab and the IDE sprinkles all that sugar for me.
It depends on what you’re used to and the programming languages you use. I learned typing on a German QWERTZ keyboard and while that works for languages like Python and Haskell, which are indentation-based, but for languages which use braces like Java, C, Rust, or similar, it can be annoying to have to use altgr+7 or altgr+0 for { and }. Thus I switched to a US ANSI layout, which was nicer for those specific characters, but caused problems when typing local characters like öäüß. After switching to Linux I set up a compose key, letting me press compose + a + " for ä for example, and while that’s a decent patch, that still breaks the typing flow. So now I’m in my ergo keyboard phase and trying to get my own personal layout going, which meets my own needs for needed characters, based on a colemak-dh design.
Never used a US keyboard in my life. Why would you think US keyboard is the norm?
Always used it. You have instant semicolon instead of Ä, which you don’t use when coding, and brackets and curlies are a breeze, the comfort is well worth it
That comfort exists on other keyboards as well
There are like thousands of different keyboard layouts, and you can be certain there will be one that is more comfortable than the US for programming.
Colemak is considered the best for programming.
You’re on /c/programming.
Also, it’s even ISO standardized, so yeah, it’s an international norm.
Pragmatically: most programming languages are developed in a way to that it’s easy to type them up on a standard us layout. As English only has 26 letters, which is less than any other language using the latin alphabet (don’t even start me on languages with accents like ñ or that differentiate between à, a, á, and â), all the special characters are usually easily accessible. Most others layouts will tuck them away behind non-trivial combinations in favor of improving accessibility of extra letters and special characters. Cuz essentially in human language you barely need
*
and[
. So, I guess, right ctrl + left shift + 9 will do? how do you feel about coding in python on that. Or on a keyboard where the space for your|
has been allocated to some letter ø and your OR operator has been moved to the numpad.You’re on /c/programming.
Could just as well have been a writing prompt community. It’s just writing ANSI characters for the most part.
Also, it’s even ISO standardized, so yeah, it’s an international norm.
I’d wish something being ISO meant it’s the norm, but that’s just not the case. #ISO8601Gang
Pragmatically: most programming languages are developed in a way to that it’s easy to type them up on a standard us layout. As English only has 26 letters, which is less than any other language using the latin alphabet (don’t even start me on languages with accents like ñ or that differentiate between à, a, á, and â), all the special characters are usually easily accessible. Most others layouts will tuck them away behind non-trivial combinations in favor of improving accessibility of extra letters and special characters. Cuz essentially in human language you barely need
*
and[
. So, I guess, right ctrl + left shift + 9 will do? how do you feel about coding in python on that. Or on a keyboard where the space for your|
has been allocated to some letter ø and your OR operator has been moved to the numpad.As a user of a keyboard layout with æ, ø, å, who also uses python daily, I can promise you that there are zero issues with it.
Most people will grow up with a keyboard layout designed for their native language’s need. If it uses Latin characters, there should be minimal issues using it for programming too.
I just explained what the issues are. Programming languages heavily rely on special symbols.
If you haven’t watched yourself from the outside, how do you know “there are zero issues with it”? You might be constantly breaking the typing flow and need to use a two-hand combo for some mundane
[]
. While someone on a US layout never needs to lift their hands of the keys, because all they need is actrl
with a pinky + right hand within reach.When I learn a new language, I also learn a keyboard layout for it. Or do you also write in Spanish on your keyboard? How do you make an à and an á?
Ah, that’s right, you speak two languages, you’re stuck using your comfort zone layout, and you’d ofc argue “zero issues”.
If you haven’t watched yourself from the outside, how do you know “there are zero issues with it”? You might be constantly breaking the typing flow and need to use a two-hand combo for some mundane
[]
.Because I don’t have the issue you’re projecting. And if someone do have that issue, what type of programmer (assuming no physical disabilities) has their productivity limited by their typing speed? No one would be my guess.
While someone on a US layout never needs to lift their hands of the keys, because all they need is a
ctrl
with a pinky + right hand within reach.Cool, same here , just that sometimes we press alt gr instead of ctrl.
When I learn a new language, I also learn a keyboard layout for it. Or do you also write in Spanish on your keyboard? How do you make an à and an á?
ctrl + \ and then a for à and alt gr + \ then a for á. It’s really not much of a hurdle. And definitely faster than trying to learn a new keyboard layout that I can’t type on without looking.
Ah, that’s right, you speak two languages, you’re stuck using your comfort zone layout, and you’d ofc argue “zero issues”.
Are we talking actual languages or programming languages? Either case, you assumption is wrong. I don’t understand where all your antagonistic energy is coming from. It’s just a keyboard layout, there isn’t a single correct one. Just use what you’re used to and that you can write with a good flow, which for most people will be the layout they grew up with and can type in the blind with.
There’s lots of programmers on languages that need more keys readily than us keyboard has. Äöüß, just to give an example.
I don’t know, every time I read a post like this I’m kinda speechless. I know lots of Americans and many of them are brillant and open-minded, but then there are posts like this which are completely oblivious that there are reasons for other keyboard layouts.
The reason OP can’t fathom programming on those is that they aren’t used to it. If you grew up with non-us layouts you similarly couldn’t fathom programming on the us layout.
Sometimes I feel like people refuse to even think about acknowledging that there are other experiences than their own. Go out, try out new things, exercise your brain and callenge yourself.
I’m not American, I speak a few European languages, I can type on a multitude of layouts. They all suck for programming, I know firsr-hand. And watching those people who “grew up with a layout” to use two hands for a
ctrl+z
is both hilarious and painful.Wtf, who needs two hands for that? Do they have children’s hands?
It’s all a matter of habit - for me all layouts but my native sucks for anything to do on a keyboard. The only thing that sucks is if keybinds are set to shift-/ because / is already shift-7. I haven’t found a replacement for that yet. Forgot which program used that and for what, but I remember it was a bummer. Still wouldn’t spend all that time and energy and slowdown learning a different layout.
So now we go from “you are so culturally dense” to “I’m unable to learn a different layout”, “what’s wrong with your hands are you a midget”.
Also, it’s even ISO standardized, so yeah, it’s an international norm.
Are not all national layouts standardized?
it’s even ISO standardized
Not only are there other ones that are also ISO standards when it comes to software layouts, but funny enough, when it comes to physical layouts, US keyboards normally follow an ANSI standard (not an ISO one), whereas many non-US keyboards typically follow a physical key layout known as “ISO Keyboard”, so one could argue those are more of an “ISO” standard.
right ctrl + left shift + 9 will do?
No keyboard layout uses ctrl like that… in fact, I don’t think you ever really need to press more than one modifier in any standard non-US keyboard. Unless you have a very advanced custom layout with fancy extra glyphs… but definitelly not for the typical programming symbols.
ISO keyboards actually have one more key and one more modifier (“AltGr”, which is different from “Alt”) than the ANSI keyboards.
In fact, depending on the symbol it might be easier in some cases. No need to press “shift” or anything for a
#
or a+
in a German QWERTZ keyboard, unlike in the US one. Though of course for some other ones (like=
or\
) you might need to press 1 modifier… but never more than 1, so it isn’t any harder than doing a)
or a_
in the US layout.
I’m British and use the ISO-UK layout.
Swedish layout. Not ideal for coding (too many things like curly and square brackets etc are under altgr. And tilde and backtick are on dead keys.
But switching back and forth as soon as you need to write Swedish (for the letters åäö) is just too much work. And yes, in the Swedish alphabet they are separate letters, not aao with diacretics.
Win + space to swap is so fast and simple especially when it also swaps for you when switching apps
I used to use ANSI, but then moved to England and bought a laptop and returned it because of the “weird” ISO keyboard, then forever bought dell because I could customise it.
Moved back to ANSIland, but will still probably just buy dell.
I use the UK layout, because I am British. Why would I use the US layout?
US-defaultism has a catch: it sometimes accidentally extends to the Commonwealth. You won’t run into most of the internationalization quirks if all you’re comparing is “British English vs American English”.
[Sidebar: I notice this also when English speakers online assume that their audience at least has a vague idea of what Imperial units are, but while that is true of most native English speakers in the northern hemisphere who use feet and miles colloquially, for ESL audiences it’s almost always incorrect]I switched from AZERTY to US QWERTY permanently specifically to avoid all the issues of badly internationalized software. Bad default bindings (e.g. common vim operations like
{
requiring the use of AltGr), but also things like games not working at all or only partially (e.g. the number row being either unbindable, or key hints naively showing as “&” and “é” instead of “1” and “2”). Surprisingly few devs understand the difference between key codes and characters, and lots of indie games straight up don’t even internationalize and require switching layouts (good luck if there is an in-game chat).
After getting into mechanical keyboards, the ANSI US keyboard layout has been useful as well because these are quite common. ISO mechanical keyboards are rarer, and Belgian AZERTY keycaps are borderline nonexistent.Also in practice I use the qwerty-fr layout which is the US layout with a French layer on AltGr. The kicker? It’s better at writing French than the French AZERTY which is missing a lot of letters (Ç, æ, œ, À, …). AZERTY is a terrible layout but that’s a separate discussion.
Of course the Americans should develop properly internationalized software, but I personally know several fellow Belgians who switched to QWERTY for (some of) the reasons outlined above.
Fellow Belgian here. I also switched to QWERTY.
Average American trying to comprehend that people from other countries exist
… or just didn’t know UK keyboards were different
I mean the layout they mentioned is called “US” layout I’m sure they could deduct that there are other country specific ones
I’ve seen Tomorrow Never Dies, so I know there are Chinese keyboards.
The UK speaks English though, so I would have figured a UK keyboard would be at least very similar to a US keyboard, enough so that switching from one to the other wouldn’t be too hard.
I used to use the Brazilian ABNT-2 layout, it’s pretty much just a US layout with accent keys that activate like a second layer for some specific keys to display specific Portuguese language characters such as ç á à â ã é è etc. It’s surprisingly ok for programming as it doesn’t get in the way because you have special keys to activate the 2nd layer and most of them you need to spread shift + something in order to activate them. I’d say it’s a good layout.
ISO for life.
You can keep your stupid tiny little enter key.
No way - the two enter keys are about the same size - yours is just rotated 90 degrees and further away. That’s not an improvement. Even worse though is the tiny left shift key - I can’t get used to that.
With an ANSI keyboard you can comfortably reach the enter and left shift without taking your other fingers off the home row. With ISO you have to move your arm which is particularly bad for the shift key since you might need to press other keys at the same time, but now your hand is in the wrong position.
hahaha, no.
my keyboard looks like this… so… no?
and honestly it’s so much nicer to program with a small keyboard. everything is exactly where you need it to be. I don’t ever have to reach for a key, as they’re all right there. And I can make them do literally anything I want. So many benefits of a small keyboard over a full size.
When you install a fresh OS and it asks you about keyboard layout, how do you get it usable for this sort of keyboard?
Exactly. If you are a coder and care about ergonomics of layouts, get split programmable keyboard, do not try to find good layout for normal keyboard, they do not exist. I personally do not like the particular keyboard at the picture, but there are many others to choose from and find a good fit for everyone.
Why are there two cables connecting the left and right part? Just curious.
For looks. The middle cable is needed to allow the sides to communicate, but you only need one side plugged into the computer.
What is this type of keyboard called? I’m interested in getting something like it but I’m curious what switches are available.
I’m not sure how far down the keyboard rabbit hole you are, so I’ll try and assume as little possible.
Generally keyboards like the one pictured are referred to as split keyboards. This one in particular looks like a Corne.
Most vendors sell split keyboards as kits that you’re expected to assemble yourself. This might require soldering and potentially sourcing certain parts (e.g. switches or keycaps) from other vendors. If you aren’t up for that kind of thing and you have the budget for it, some vendors sell pre-built keyboards. Buying a second-hand split keyboard is another alternative.
As for switches, MX and Choc v1 are the most commonly supported switch types. There are dozens of variants of said switch types; the main differences being the force curves and sound profiles.
The particular switches that are available will depend on who you end up buying from. Some keyboards support hotswap sockets, which allow you to quickly swap out different switches of the same type (i.e. MX or Choc). Otherwise you’re stuck soldering your switches onto the board, and if you aren’t satisfied with the switches that are already on the board, you’ll have to desolder them, learn to start liking them or buy a new keyboard. Whichever’s easier.
It’s a crkbd also known as a corne, like the other person said. There’s hundreds of types of switches available, the keyboard in the picture has Khail Box Jades and Khail Box Royals.
The style of keyboard is a split ergomechanical keyboard. The size is 36% or 40% depending on what generation of keyboard nerd you are.
I use EURkey, which is basically a superset of the US layout extended to support symbols from several European languages.
Thanks so much for this! I used to use a DE-ISO Layout with my old (first) keyboard, have now switched to ANSI with my first custom-mechanical keyboard and missed the special characters. This fixes everything, so thanks again :)
I use Coleman DH and symbols have never been an issue because I just put them on another layer 😅
I use Colemak where most punctuation is at the same place as in the US English layout, which programming languages seem to be optimized toward. For the layout I prefer ISO for the larger Enter key.
UK layout is the GOAT. It isn’t that much different from US layout at first, but there are so many more special characters readily available. Particularly useful for multiple languages like Spanish, German, Swedish, etc.
I use this too, and find it better in almost every way.
Swapping
and
"
is a mixed blessing since the quote is used quite a lot when coding, but then so is the. In prose I prefer to use US-style double quotes for quotations and leave single quotes for contractions, possession, etc, so I have to do that awkward shift-2 combo a lot.
Having an extra key is great for us coders since we use most of those weird glyphs (never used
¬
) and having easy access to#
is chefkiss.png.ISO layout’s tall enter key is great for touch typing since you don’t need to be very accurate with your little finger and moving the
| \
key next toZ
is much more convenient. I like the symmetry of the slash keys, too.Alt-Gr make loads of shortcuts easier, although occasionally I want that key to be a normal alt instead.
Top one is ISO-UK: