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 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
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.
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.
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.
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 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.
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!
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.
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:
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 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.
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.
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 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 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.
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 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.
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 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 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 pretty much grew up on Ubuntu's default polish layout - a modified version of the polish programmer's keyboard , which itself is a modified version of ANSI
(the preview is slightly broken , but oh well)
I cannot begin to stress how used I am t o having an extra key layer accessible by just pressing alt . Note that the current version I have has some dead keys as well on the third and fourth layer .
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
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...
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.
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
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.
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 colemak and swap the caps lock and backspace keys. It works well for both coding and typing in non-english languages that I know. But those are just the ones that I know
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.
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.
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.
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.
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.
I mainly use Bépo on a Kinesis Advantage. I need a layout I can both use for coding and for writing in French, which means reasonable access to those funky ASCII coding characters and to those French accents and punctuation, as well as a reasonably ergonomic letter disposition. This setup is partly how I managed to dodge a budding RSI issue a decade ago. I’m at ease touch typing and I’d never go back to typing on a conventional keyboard with a QWERTY layout.
I pull out a 80% conventional keyboard and switch to QWERTY for gaming because WASD.
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.
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'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 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).
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 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 like how AltGr+7/8/9/0 gives me { [ ] }, it's a very nice grouping. The key next to Z is < > 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).
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'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.