Do any of you program on non-US keyboard layouts?

namingthingsiseasy@programming.dev to Programming@programming.dev – 130 points –

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)?

196

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 a ctrl 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".

Not culturally dense, but absolutely unwilling to consider cultures outside their bubble other than as mere curiosities for entertainment. I stand by that.

Not unable to learn a new layout, but unwilling, because I don't see the point. Why would I waste time and energy on something that will at most bring me one more shortcut to use? Programming is not about typing speed. If the bottleneck for you is typing speed, your job is very different than anything I've seen or heard of.

I have never seen anyone but my computer-illiterate mom use two fingers for ctrl-z, hence I was expressing my bewilderment about that. I'll probably be able to do that move blind with one hand, and so are all of the people I know who use the computer in a professional setting. The only explanation I had for that was that they have exceptionally small hands so it's a necessity. If you want to take that as an insult of your hands, be my guest, but I'm done here.

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.

https://upload.wikimedia.org/wikipedia/commons/b/b2/Physical\_keyboard\_layouts\_comparison\_ANSI\_ISO\_KS\_ABNT\_JIS.png

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.

Remind me again, how do you get {} or [] on that layout?

Same effort as getting &* and () on a US layout (so, modifier key + 7 8 9 0, respectively), the difference is you press AltGr instead of Shift as the modifier. And i'd argue its actually easier to press AltGr with the thumb than shift with the pinky.

I use the UK layout, because I am British. Why would I use the US layout?

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.

Every language has a different lay out because they are all based upon the typing machine.

Which needed a specific layout so the hammers didn't hit each other during commonly typed letters.

And yes, British English is a different language than American English. That is why you have things like colour and color.

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.

ISO for life.

You can keep your stupid tiny little enter key.

This!

Oh good I hate that tiny little enter key.

The enter key I got used to on an ANSI keyboard I had for a while but what actually made the bigger difference was the \\/| key being above the enter key at the far right end of the keyboard which is hard to reach with the pinky. Rather important key for being that hard to reach.

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.

On the ISO keyboards I've seen, the enter key has way more than double the surface area than ANSI, so it's definitely not 'just rotated 90 degrees'. Also these people probably grew up with ISO and struggle with ANSI, just like you probably grew up with ANSI and struggle with ISO.

I program like I learned it? I use my German QWERTZ layout. A lot of keys are different, yes, but I grew up with this layout and I'm used to it. Imagine giving me a US QWERTY layout and I would misstype every time. I even hate it when Windows swtiches my keyboard layout, even though I removed the shortcuts to it and I misstype constantly. Heck even Visual Studio switched my shortcuts and it sucked.

After some time I realized that (Game) Devs suck, because they forget that other layouts exist. Its not a big deal, but at some point I realized that the Chats on T, Y, U makes much more sense on a QWERTY Layout. Also Markdown with ` kinda sucks. For a codeblock, I need to hold shift and press the key that is left of backspace 3 times and then one space, because when I press it once, nothing happens but pressing it a second time, 2 appear. Pressing space let it appear directly. Or I type 4 and remove one.

But this it what I'm used to. And if I ever would work outside Germany, I will bring my own QWERTZ keyboard and require them to install the German Keyboard. I don't need a German UI. I have all programming related software in English, because its easier to google stuff.

I ever would work outside Germany, I will bring my own QWERTZ keyboard and require them to install the German Keyboard.

The computer doesn't know which labels are printed onto the key caps. You can type any layout you want, no matter the physical layout.

Except that there exist multiple physical layouts and then keys can be missing and some keys are shaped different.

I prefer a British keyboard layout as that's where I've always lived and that's what all the computers come with here.

Actually no, Apple fucks it up a bit by having a weird hybrid between US layout and British layout which is pretty infuriating to have to learn (opt+3 for the # character? wtf Apple?), particularly given I switch between PC and Mac daily

This drove me up the wall. And, I hate to admit it, but I've let Apple win. I use Windoze for work so I've swapped @ and " to be the same as Apple UK, and if I run Linux I choose the Apple UK layout as well. It's just...easier rather than having to reset my muscle memory every day.

Ahh, I can't make that change I've used windows and Linux for many more years than I have Macs, the Mac way will always be the one that feels wrong to me!

Basically means I inevitably have to do the "@£`# dance a couple times a day

A lot of us don't live in the US to begin with, so I assume a significant portion of us just use whatever the local standard is. That's where I've been at so far, the Brazilian layout is a QWERTY variant so not that different. It does make some things more awkward, but you get used to what you have to work with.

Brackets and curly braces are less convenient off the top of my head, backticks too. Vim is a tad less ergonomic without some extra fiddling, for instance. In fact, I've been considering getting a US keyboard for coding to make that kinda thing less of an issue, US international makes accents and whatnot accessible enough that I think I could make it work.

If you're cheap like me, just change the keyboard layout on the software side and instead of looking at the now incorrect key caps, look at the American keyboard layout image on Wikipedia instead. It doesn't take long to relearn the few differences. And the parentheses are more ergonomic on the us keyboard layout IMO.

Edit: compared to the German layout. Brazilian looks ergonomic enough for programming without having to switch.

I think the @ being a shift 2 would confuse me the most in the beginning, before getting used to it.

I'm a Brazilian web developer living in Germany for 32 years and actually never used a Brazilian keyboard. I may be returning to Brazil for a while, i don't know yet if I'm adopting the Brazilian variant or just keep using the German one.

Just keep using the layout you're used to. I'm Brazilian too, but I've lived abroad my whole life, and US layout is what I'm most used to (even though I've never lived there, funny enough). When I'm on other keyboards, I just switch the layout to US International, and stop looking at the keyboard.

Ah, interesting! I'd have guessed about a dozen annoyances before that one even came to mind haha. Hope you have a good time around these parts at any rate :)

Also, I'd never taken a serious look at the German layout but going by the truly wild differences there you may as well stick with what you have IMO, I think it's what I'd do at least.

I also never checked the Brazilian tbh. Guess I'll just check it out, if the opportunity arises.

Yeah, it's been a good time here - the pandemic and the inflation made things pretty difficult though, but i assume, just like the pandemic, everyone around the world is struggling with inflation atm.

This PT-BR keyboard layout is a mess, a mix between the US layouts and the PT-PT one. That's why you've less than convenient brackets and curly braces. Frankly I see no reason why there's still this two layouts for the same language. Can't we just agree on some mix of PT-BR and PT-PT?

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'm using a PT-PT ISO layout keyboard, zero issues reaching anything, works as good as your US keyboard for coding. Actually it might work better because I have a bigger "enter" key.

can’t wrap my head around how I would code on those.

Typical American trying to comprehend that people from other countries exist? :P

Think about it this way, all the EU keyboards are essentially the same as yours but tweaked to accommodate languages that have more special chars than English.

I live in Brazil but I also use US- Dvorak as OP. Is a pita everytime I need to write the ç, or õã cause I have to change the keyboard just to write a letter.

You may want to take a look at dvorak-intl and or dvorak-alt-intl, which adds the alt-gr layer to type language specific characters

I think I tried it once, but the R and L had their position changed, and not all machines have the intl version so I just went back to the US one.

Fellow PT-PT ISO user here. And although I use PT-PT in the OS, both my mechanical keyboards' physical layout is DE ISO, which has most special symbols in the same place. (finding DE keyboards is easier)

I've considered switching to UK ISO before. Typing brackets "[] {}" and a semicolon ";" is harder in PT-PT. Especially the curly brackets {}, which are really awkward to type with my small hands.

I am German and I use the German keyboard 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.

I'm swedish and I use EurKEY. It's basically US but makes it possible to use Å/Ä/Ö through altgr + W/A/O. I don't write that much swedish so I'm not too bothered, meanwhile the coding advantage is huge for ' " \ | / ? | [ ] { } .

Win + space to swap is so fast and simple especially when it also swaps for you when switching apps

I have the same problem in German (ä, ö, ü and ß), and I've resigned to using US layout with caps lock mapped as compose key. But then again, I code more than I write texts

In polish we have ź and ż. For ż we use Alt gr + z, and for ź we use Alt gr + x. Same for other non-standard letters. The rest of the keyboard is a regular US layout.

So in Swedish you could use Alt gr + a and Alt gr + s for different variants of a.

You just... get used to things. Like how you first got used to your keyboard to begin with

Nope. I still hate ISO and KS/JIS with passion, even after spending years with those. Keyboard being anything other than ANSI is a huge dealbreaker to me now.

If you don't live is the US, it's pretty common to not use a US keyboard!

Tried the maltron layout at one point. Nope.

I program with the italian layout and i's fine, the only annoyances are that to use the slash you need to use shift, all while the backslash has a dedicated key; also you need to use alt codes to type a tilde.

Same. Forward slash always annoys me. It's in the middle of the keyboard, so you have to either 1. make a very uncomfortable move with your right hand, or 2. make an uncomfortable move with your right hand, or 3. use both your hands, which sucks.

Luckily I'm using linux, so I have tilde and backtick (`) as AltGr+' and AltGr+ì, which are pretty easy to type.

Just a thing for making it more sufferable; i remember that there was a program for linux called xkeycaps to edit keyboard layouts; so you could swap the backslash with the normal one. I used it so long ago that I'm not even sure if it still available and working though

Getting used to it is going to be a hell of a ride, but this is a wonderful thing.

Also using other pc is going to be even harder lol

I mainly write JS and not having a backtick on my keyboard annoys the fuck out of me. Other than that the Italian keyboard is alright, never had any other problems with it.

the only annoyances are that to use the slash you need to use shift

Oof, that sounds really annoying. I can't possibly imagine how I would use the terminal that way

After a while it becomes muscle memory; the good thing is that you can see if someone is a programmer/linux user because the key for the numer 7 is more worn out than most of the others

On Czech keyboard I use AltGr+q and it's fine, muscle memory really does the hard work for you.

I believe most people in Europe use a localized ISO layout. I used ISO for most my life but in my personal opinion ANSI is way better for software development. I just don't see myself ever going back to ISO.

I wish I was brave enough to try Colemak or Dvorak, tho!

I'm used to the ISO layout, so whenever I type on an ANSI keyboard I miss the enter key and hit the one above. It's annoyingly hard to find laptops with ISO keyboards.

Yeah I forgot that they do this weird ANSI/ISO mix for laptops.

I believe most people in Europe use a localized ISO layout.

Except Romania, where 99% of people use US QWERTY due to a very particular set of circumstances:

  • Romanian has very few diacritics and it can be 99% understood (in writing) even if you omit them completely. So most of the time people don't bother to use diacritics for digital communication.
  • After the 1989 Revolution when it rejoined the modern world the Government took about a decade to make up and push standards for the Romanian language in IT (a history of all the fuckups is here if you're curious). Localized ISO layout and Romanian keyboards were eventually created but they never quite took off...
  • ...last but not the least because a simpler layout has become the de facto standard (diacritics on 3rd and 4th level, activated with the right-hand Alt). It's simple, intuitive, easy to learn, and you can use it with any US keyboard.

quick AZERTY users this is the time to show we exist!

Well, after trying a US keyboard for coding I never went back to a french one. It's so much easier...

I have read somewhere that france and belgium have a minor code deficit compared to eurooeab countys that use qwerty.

Looking it up its not hard to see why.

Interesting, but I'm skeptical. Couldn't find anything that corroborates.

I understand your premise as a quality deficit, but really the issue I had was typing speed / convenience.

It's more of a QOL thing. The final code is the same quality I think.

Also, we spend much our time reading and thinking about the code rather than writing it.

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.

Why are there two cables connecting the left and right part? Just curious.

I believe the lower cable connects the two boards. The upper cable is for connecting to your device, so would only be connect to one of the boards when in use.

For looks. The middle cable is needed to allow the sides to communicate, but you only need one side plugged into the computer.

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.

When you install a fresh OS and it asks you about keyboard layout, how do you get it usable for this sort of keyboard?

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.

1 more...
1 more...

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 used DVORAK for years, but went back to QUERTY mostly because it made life hard on on the rare occasion I needed to use someone else's computer.

Same boat, even on my own computer I run into problems where I have to switch back to qwerty, like using wasd in games or using a barcode scanner at work

I use dvorak full time, but I can't touch type on qwerty. I do get strange looks at work when I have to hunt and peck at the lab computers qwerty keyboards.

UK QWERTY, no trouble hitting any keys. $ is not hard to reach, | is a bit annoying since it's right next to shift, which you need to type it, but it's not too bad.

I use a variant of the Neo-Layout called Bone. It's an ergonomic layout optimized for German and English text. The base layer is already different (see the linked page), but I also really like it for programming, since there's an entire layer with easily accessible symbols:

Bone layout layer 3 with symbols

I should try that out. I've been using DVORAK for a while but have been thinking of switching to NEO

Oh, yeah you should. I mean I'd advice against it, but since you already know the pain of switching layouts… sure, go ahead! :D

I prefer Bone over Neo, Neo has quite broad software support though. I'm using Bone on Linux and macOS without any issues.

Could you please give a few insights into why bone over neo? I've used neo now for a few years, curious if it would be a fun extension to switch again!

(dead thread I know, but whatever)

It's very similar, more like an evolution from Neo than a revolution. They switched a few keys and if you're starting fresh I think I'd recommend Bone, but if you already know Neo I'm not sure switching is worth it. It could be fun though (if you consider learning a new layout fun ^^).

I’m British and use the ISO-UK layout.

CH layout, superior for everything inbetween german, italian and french. US layout has no äöü, which makes it cumbersome in daily use.

I grew up with DE ISO and switched to US ANSI with EurKey a few years ago. ANSI is so much better for programming!

Also more options for key caps.

I want to try ANSI also, but it seems pretty hard to find in EU. I've considered getting a keychron for my gaming setup but I don't want a full on mechanical for work, and I don't want to use ISO at work and ANSI at home because it will screw with my muscle memory.

AliExpress is your friend. Also there are great options on Amazon, depending on your location.

Why not use a mech at work? Because it's too loud?

Yeah I don't want to be a nuisance to my office neighbours. Right now I'm using a logitech mx keys, I could try looking for an ansi version of that.

I will probably order a keychron with low profile switches for my home setup, so I depending on how quiet it is I might get that for work as well.

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 to Z 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:

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.

I use UK-Layout, with some remappings for my precious umlauts

q+altgr ->ü
a+altgr -> ä
s+altgr -> ß
z+algr -> ö

bonus: in contrast to the peasentry I have an uppercase ẞ (altgr+shift+s)

I use the FR-AZERTY layout. You honestly get used to the layout you have to work with.

Did you know about the New AZERTY ? I've been using it for a few years now and it's definitely a great improvement, while remaining compatible enough with the standard one so you are not lost when you use a colleague's setup.

I heard about it, but the issue I usually have with other layouts is that I find myself looking for “infrequent” symbols a lot. Maybe this one would be easier to get used to than other layouts such as Bépo since, as you said, it is relatively compatible with regular AZERTY.

The thing is, this layout moves symbols to places that are much easier to remember (~ is altgr+n, ç is altgr+c, $ is altgr+d, parenthesis/brackets are next to each other, etc...) I got used to it very quickly because the new placement makes sense, and the fact you only have to remember symbols and not alphanum chars helps a lot. Definitely worth trying IMO.

Fuck. AZERTY is a pain in the ass. Why is it that the French keep pushing that layout that should be gone by now? Look I write Latin-based languages as well and I would like to see some kind of international ISO query keyboard that could work for all of us.

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.

I've used various layouts of non-US keyboards over time since I've lived and worked in various countries in Europe and whilst you do start by looking down to find stuff and for a while will at times unthinkingly choose the "old" position for a symbol when touch typing, you just get used to the new layout in a month or two, even if touch typing - your brain just starts directing your fingers to the new positions.

That said, for seldom used symbols you still have to look down and check on which key that symbol is (it's generally printed on the key), I suppose because you don't really exercise those enough for your brain to reliably start sending your fingers to the new position without looking.

(So given the languages I usually program with, for stuff like semicollon and open and close brackets and parentesis the brain quickly adjusts but stuff like the dollar sign I still have to look down and check, which is really noticeable if for some reason I have to do some shell scripting or similar)

Things like letters and numbers don't change position so that's not a problem.

Once you've become accustomed to a new layout, switching keyboards between those layouts is a bit like switching the side of the road you're driving (say, between the UK and Continental Europe) - you get a couple of hours of extra memntal tension and having to think things a bit more at first and after that you've fully readjusted.

Is there any reason why you didn't just switch the keyboard layout to US if that's what you're used to?

I switched to US at some point because many if the keys for programming were just so much easier to access. If I have to use a pc for any decent amount of time, I just switch the OS layout to US now regardless of the layout that's printed on the keyboard.

I'm not used to the US Keyboard layout.

I think I only used it when I got a cheap second hand notebook in Canada during my vacations there.

The reason not to change the keyboard layout to something different from the physical layout is that once in a while you have to use a seldom used symbol for which you don't really have the touch-typing muscle memory, and looking at a physical keyboard with a different layour from the one you're using at the software level won't tell you were that symbol is, turning the whole thing into an unnecessary PITA of trying to find it by trial and error (I usually get this the other way around: when the software defaults to US Layout but my actual keyboard doesn't have that layout).

I do more than just programming on keyboards and some of the languages (spoken, not programming) I write in have accents and funny characters which don't even appear in a US Layout keyboard.

Also sometimes you really don't have much of a choice if you're in some country and the local employer/hotel/internet-caffee provides some local keyboard and you don't have the permissions to change the layout in the OS.

Yeah, yeah, you do have to climb and overcome the small learning-curve of learning to adjust to new keyboards, but once you have it's not at all a big deal to adjust to whatever you happen to get your hands on.

I use a UK keyboard, | is pretty easy to access and $ is Shift+4.

I'm guessing you mean more exotic keyboards. I've used a Swedish keyboard while helping a friend and I had to ask where every key was. You probably just learn the combinations eventually.

It's all usable when you get used to it, but this is a great thread to link for people who develop scripting and programming languages, or just text-based technical interfaces. Because yeah, all that crap is designed with the US layout in mind and screw whoever chooses to use ~ and | as commonplace characters.

FWIW, I don't even code and I still keep a US layer in the background. I forget which one I'm using constantly, it's all muscle memory. I just Win-space and try again whenever I type a character and it's not what I expect.

I prefer ISO layouts. ANSI somehow just seem inefficient to use. I habe layers for CODI g so I have my brackets/braces on the hometown along with other relevant keys. Long live custom keyboards

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.

I've used AT QWERTZ ever since I was born.

I just use the Swiss keyboard layout. Here's an image from Wikipedia.

Don't have any experience with any others.

Aren’t brackets hard to type in Swiss layout? Most of my Swiss coworkers switch to US.

Maybe in comparison to the US layout? I'm not having any trouble with them.

If you mean the [] (and {}), they just use the right alt key, which is close enough to them.

DVORAK all the way, baby. Hardware-based via Unicomp 104.

Being Norwegian i code on the Norwegian keyboard layout. I get confused every time I get defaulted into English.

I use a 42 key layout modified from bépo (french dvorak inspired layout) with the altgr layer of ergol. Go check this altgr layer it's awesome for programming, and there is a version compatible for qwerty and lafayette.

╭╌╌╌╌╌┰─────┬─────┬─────┬─────┬─────┰─────┬─────┬─────┬─────┬─────┰╌╌╌╌╌┬╌╌╌╌╌╮
┆     ┃   ¹ │   ² │   ³ │   ⁴ │   ⁵ ┃   ⁶ │   ⁷ │   ⁸ │   ⁹ │   ⁰ ┃     ┆     ┆
┆     ┃   ₁ │   ₂ │   ₃ │   ₄ │   ₅ ┃   ₆ │   ₇ │   ₈ │   ₉ │   ₀ ┃     ┆     ┆
╰╌╌╌╌╌╂─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┼╌╌╌╌╌┤
·     ┃     │   ≤ │   ≥ │  *¤ │   ‰ ┃  *^ │     │   × │  *´ │  *` ┃     ┆     ┆
·     ┃   @ │   < │   > │   $ │   % ┃   ^ │   & │   * │   ' │   ` ┃     ┆     ┆
·     ┠─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┼╌╌╌╌╌┤
·     ┃     │   ⁽ │   ⁾ │     │   ≠ ┃  */ │   ± │   — │   ÷ │  *¨ ┃     ┆     ┆
·     ┃   { │   ( │   ) │   } │   = ┃   \ │   + │   - │   / │   " ┃     ┆     ┆
╭╌╌╌╌╌╂─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╂╌╌╌╌╌┴╌╌╌╌╌╯
┆     ┃  *~ │     │     │   – │     ┃   ¦ │   ¬ │  *¸ │     │     ┃           ·
┆     ┃   ~ │   [ │   ] │   _ │   # ┃   | │   ! │   ; │   : │   ? ┃           ·
╰╌╌╌╌╌┸─────┴─────┴─────┴─────┴─────┸─────┴─────┴─────┴─────┴─────┚ · · · · · ·

I'm italian and I'm absolutely ashamed to say that I use an italian ISO keyboard for programming. It's missing some symbols like the backtick but I can't get used to US ANSI so I just configured some macros to type the missing characters.

I use a plain 34 keys layout based on qwerty for letters, comma/dot/semicolon. The numpad and symbols layers are handcrafted so that every symbol is easy to reach, it's also optimize to type things like <- and -> easily

I use UK standard layout, and Apple UK for work. It always takes me a few minutes to switch between them, but both are absolutely fine for programming. Just the odd placement of # that bothers me a little, but I tend to use that only for Python comments - which I tend to do more commonly from a keyboard shortcut anyway.

use Vista speech recognition} fantastic

no

no

no

I do! ISO-ES the only real annoyance is that / is locked behind Ctrl+7 instead of next to the spacebar. My laptop is also in ANSI despite me using ISO so I'm missing a couple of keys

French keyboard azerty has easier accents, cant live without em now.

Used to have a qwerty so sometimes the muscle memory derps a little, but when I accidently change the layout Im always mildly impressed that I can remember which key is which.

You can adapt to a new layout pretty easily. I already did it twice due to moving to new country.

I began programming java climate model with UK keyboard. When I moved to the continent, switched to swiss then belgian keyboard to better type emails/docs in french, but it was so tedious for code brackets {[()]} and some other punctuation, eventually switched back. Recently converted whole codebase to Scala 3 (here's the model), now can drop most of those brackets. I speculate whether one motivation for creating scala3 (made in in Lausanne) was swiss/french keyboards.

I use Canadian Multilingual on a ISO-style keyboard, mostly because my main language is French and typing accents on a US keyboard is horrible.

Coding makes a hefty use of Alt ("option" on mac), but they're relatively well-placed (see the labels on the bottom-right of the keys in the pic)

My main annoyance with it is that the ANSI-style keyboard puts "ù" to the left of "1", instead of the "/" you get on that key on a ISO keyboard (where ù is between the left shift and z). You can see how annoying this would be when programming or using the command-line. And of course, Apple stores only stock MacBooks with ANSI keyboards...

My laptop has an italian layout keyboard because it was a pain to find a good priced one with the US layout. On windows there's no way to do the ` and ~ symbols without using Alt combinations and on linux you need to use a weird compose key. Also square brackets require you to press Shift and curly brackets require both Shift and Alt.

Spanish kb here

ES represent! The most annoying thing is simply finding mechanical keyboards and keycaps for ISO-ES

Same here, Portuguese keyboard. Possibly even worse because our market is smaller.

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 German Layout Neo which has especially nice layers for programming https://neo-layout.org/

You are the second person I got to meet in the wild using neo2.

The first one I met was myself 🤣 Although I have to admit it started out to just be different but I started loving it quite fast!

I have a custom split keyboard (lily58) and use the neo special character layer as my lower layer

They wouldn't be using them if they didn't think they were superior. Even if it is just because they are used to them.

Does Dvorak count? I switched over when I made an egrodox style keyboard which in itself made typing generally more comfortable.

I've been using Dvorak for over 15 years. There are dozens of us!

Started on US, now using DE for decades. But able to still use us. Slash position is a plus there.

But Swiss, that's the stuff of nightmares! Oh and mac while usable unnecessarily sucks too imo.

But Swiss, that’s the stuff of nightmares!

Ha, that sounds funny (in a morbid kind of way...). What's so bad about it?

If I recall correctly (it's been a while) it seems just fine and familiar (to DE I think) but when you start using it it's just different enough to basically mess everything up and require you to validate everything.

(from an it admin perspective)

ABNT2 here, this layout is necessary due to many brazilian portuguese words containing accents. Plus, having ç as a separate key is great. For coding, the \ | key is left to Z and the : ; key is near the right shift, with brackets and curly braces usually around Enter, while ' " is left to 1. It's very good for programming, I'd say.

Yes, I've been on Norwegian Dvorak since 2002 or so.

Biggest problem I've had is with keyboards and OS'es (cough 🍎) that don't support the Insert key, because (a) I cut my teeth on the DOS editor and (b) XCV are all over the place on this layout.

I will always use a proper full size keyboard if at all possible. Those 60% and whatnot are not for me (it's bad enough when they move the arrow keys).

Oh, and the languages insisting on ${} characters are a pain on any non US layout.

Switch to Colemak and that XCV goodness is right where it needs to be.

Never had a nicer typing experience, thanks to DreymaR introducing me to DHm-angle-wide-mod. Colemak FTW!

🐑

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.

Used US and JP qwerty, both are fine after a while, but switching can be annoying (mostly I mix up whether " or @ is Shift-2).

The one thing I hate is the fragmentation of the bottom left cluster. I started out on keyboards with Ctrl Fn Super Alt, but now I much prefer Fn Ctrl Alt Super.

If I have to work on an American QUERTY keyboard, I have to look for each and every special character. Because our QWERTZ-keyboard has them in other places to make space for all the interesting characters an American keyboard simply fails to offer.

As a German I have to admit that the ANSI US layout is the one American standard that's superior to the European ones. That said, I still need some Umlaute and accented letters from time to time, which is why I use the EurKEY layout, which adds all of those keys back and many morek, most of them accessible without having to use a dead key.

On a Mac you can just type regular ANSI vowels and umlauts are added automatically. There must be some way to get that working on other platfroms?

How does that work? Umlauts can totally change the meaning of a word.

Konnte - was able, könnte - could, musste - had to, müsste - should, hatte - have had, hätte - would have.

I'm columnar-ortho now, but for standard it's ISO or bust. You can keep your shitty enter key and your overly long shift key

I can't even wrap my mind around people who use 60% keyboards and use a bunch of extra function keys let alone anything more drastic

The British want a stupid as fuck they moved the tilde into a weird spot and you're basically can't do it

U wot m8. It's next to Enter

what about the back tick That's what I meant I don't give a fuck

It's possible they tried the British layout on their American ANSI keyboard, which is missing the extra key that ISO keyboards have (the one next to enter which the British layout uses for # and ~)?

I'm not actually sure how to press that key at all if you're using the British layout on an ANSI keyboard

I use US layout for programming because it is way better than SR latin. For documents and mails, I use both variants - latin and cyrillic.

I’m having to use US keyboard layout in Oz and not enjoying the half-height Return key very much.

I use the International keyboard because it allows me to type a lot of symbols, but US also serves me fine

Edit: to program, I use the US layout.

Using the JIS layout. One thing I miss from ANSI is the single and double quotes on my right pinky.(on the same key) Other than that, JIS is a nice layout to do programing with.

I use Spanish QWERTY layout and it's... weird for coding.

I'm used to it from my whole life so that's what I use but sometimes brackets or special symbols are weird.

I've always wanted to change to use US-International layout. So I can keep ñ and áéíóú, and also have easy access to coding symbols. But I have never got around it.

Anyhow I still think that whoever designed ISO layouts messed up. We should use US international layout. That's my two cents.

I'm using a Dygma Raise split keyboard with Dvorak as my main layer. The thumb clusters are great for putting difficult to reach keys in more comfortable positions. Second layer has NumPad, Directionals and Functions. Still trying to decide how to make the best use of my other layers.

I'm using Finnish keyboard layout (same as Swedish basically).

I like how AltGr+7/8/9/0 gives me { [ ] }, it's a very nice grouping. The key next to Z is &lt; > and you get | with AltGr, which is very handy.

Only thing that's mildy annoying from programming viewpoint is that for tilde and backtick, the keys do diacritics - you need to press the diacritic key and space. Backtick is especially fun, because it's shift+acute, space. Meanwhile, the key next to 1 does § ½, which aren't that handy most of the time. I often just stick backtick on that key if I'm particularly assed to customise keyboard keyouts. Similarly, shift+4 is ¤, which is another not a particularly useful character (but I don't mind that, because £ $ € all need to be produced with AltGr, which is at least consistent).

Pro tip for fellow yuropean devs: you can change the layout, and learn it easily.

Pro tip for fellow ISO enjoyers living in yurop: a keyboard on Amazon costs 20$. If you're using a laptop you can order one from the UK, it's mostly the same, except beware of the mental asylum layouts that move this | key to the bottom left. You can also buy a laptop from amazon.com if you filter by "global shipping". Power bricks always work with 110/220/240, the cable that goes into the plug is easily exchangeable for 10$.

Some premium brands let you choose the layout. E.g. xmg, slimbook.

Pro tip for enjoyers of any layout: You don't need to buy a different physical layout to type in a different layout. You can just switch it out on the software side. The computer has no idea and does not care what's printed on the keycaps.

My os is running with a slightly modified us qwerty, which then is mapped through keyboard firmware to a modified us dvorak.

ANSI all the way. I get irrationally angry about any other layout 😡

On UK keyboards the £ replaces the $ and $ replaces '

Double quotation marks " are in the same place though so a lot of british programmers don't use single quotation marks because they are hard to press. If your touch typing you have to reach all the way to the bottom right with your right hand little finger and it's just not worth it.

I'm using the Czech keyboard, I've put in the time to learn where the various symbols are because I didn't really want to switch constantly between CZ and US like most programmers do. When I write something like těžiště I prefer it not to look like t26i3t2, then delete it, switch keyboards and write it again.

Regarding the various types (like long/short enter, pipe symbol position etc.) I don't have a particular preference, when I switch laptops, I make mistakes for a while, then get used to it

I use US-QWERTY but with the pipe/backslash key as backspace, and the key where backspace usually is gets turned into two keys, pipe/backslash and grave (yes, there is a keycode for grave (`) by itself).

I use Coleman DH and symbols have never been an issue because I just put them on another layer 😅

I'm Czech and also speak fluent German, but I rarely use my native languages on my personal PC, so I got used to the US layout. Nowadays I use US layouts that have my native letters on the AltGr key, my Linux pc has an "American - Czech, Slovak, German" layout like that and at work on windows I use the Czech Programmer layout. However, most of my coworkers use the regular Czech keyboard, even for programing, which freaks me out.

I'm using a sligntly modified Niro layou (in a way that makes it more ergonomic with vim). Though I might need to adjust it since lately I began feeling disproportionate strain on my right ring finger.

I alternate between US-QWERTY and LT-QWERTY. My biggest problem is typing ž instead of =