Hacker News new | past | comments | ask | show | jobs | submit login
Moving the Ctrl Key (emacswiki.org)
92 points by susam on Dec 25, 2022 | hide | past | favorite | 119 comments



I've had a lot of ergo issues from typing, and I'm always disappointed that Emacs users focus on remapping the Caps Lock key while ignoring the advice most ergonomists give:

There are two Alt and Ctrl keys on the keyboard. Use both, and use both halves of the keyboard If you're doing a combination like Ctrl F, use the right control key. If you're doing Ctrl-l, use the left control key.

In general, when using these modifier keys, make sure both your hands are being utilized.

Also, there's simply no rule that says one must use the pinky for the Ctrl key. Use some other finger. In fact, insisting on using the pinky is a sign you are also insisting on using one hand to enter the key combination.


Your comment assumes everybody is using a "normal" keyboard.

Since then a great many have come up with actually ergonomic keyboards and they virtually all have something in common: modifiers easily reached with the thumbs while the hands are in their home position.

No crazy "moving the entire left hand to not hit ctrl with the pinky". That's not ergonomic. At all.

If the layout is QWERTY, left hand on asdf, right and on jkl; and the thumbs on modifiers/spacebar.

Hitting modifiers do not require hand movement and do not require stretching the finger underneath your other fingers.

If anyone's serious about this, consider an actual ergonomic keyboard (Ergodox, Keyboardio, Kinesis, etc.).

I picked Japanese keyboards --even though I don't speak japanese-- for several reasons: they're ubiquitous, they can be had with Topre switches (I much prefer Topre than Cherry), the spacebar is tiny so I don't need to distort my thumbs to reach the modifiers, they have lots of modifiers (due to the various input methods japanese has) and, well, the killer...

Laptops with japanese keyboards are a thing.

Laptops with, say, a Keyboardio keyboard: not so much a thing (unless you carry your keyboard and your laptop of course).

I remap the entire keyboard to be basically QWERTY with Hyper and Super in addition to Ctrl/Alt/Meta/Shift. Super is dedicated only* to the window manager and nothing else. Modifier+ijkl sends the actual arrows key code. Works in every single app.

Life is good.


> No crazy "moving the entire left hand to not hit ctrl with the pinky". That's not ergonomic. At all.

Sorry, but ergonomists disagree. Moving your whole hand + arm, as long as you are not twisting your wrist, is in general recommended.

I've asked them about keeping the fingers on the home row, and the response has always been: "No good research to support it, nor any to disrecommend it."


I think your reply is still based on a standard keyboard. When you get to more ergonomic keyboards you can stay on the homerow and also reach modifiers without moving.

    While most people do not have an ergonomic keyboard then what you say is likely true and most ergonomists would agree but I think they would also agree that even better is not have to move and use an ergonomic keyboard.   That comes with cost and time which is why most still dont use them.


> Sorry, but ergonomists disagree. Moving your whole hand + arm, as long as you are not twisting your wrist, is in general recommended.

That's actually kind of nice to hear - I'm self-taught when it comes to typing (having to get chat messages out fast in StarCraft online multiplayer waaaay back), and naturally fell into a style that kind-of hovers my hands on the edges of the keyboard, using my shoulders and elbows to push my hands inwards when the center keys are needed. Relevant to the topic: Pinky on ctrl requires no twisting, just bending the finger down.

Whenever people (mostly co-workers) realize how I type, they almost always think it's kinda crazy, since I can hit keys without feeling from the home row..


> Super is dedicated only to the window manager and nothing else.

This is the thing I miss most from X vs MacOS. On Mac, the command key is the primary shortcut modifier both for apps and for the OS / "window manager".


> Since then a great many have come up with actually ergonomic keyboards and they virtually all have something in common: modifiers easily reached with the thumbs while the hands are in their home position.

There's also home-row mods that's very popular with tiny keyboards, and is arguably even more ergonomic.


Quick shout out to dual function keys on the home row via QMK or other. The concept changed my life. Modifier on hold, letter on tap. 3-modifier strokes are trivial, and this takes Emacs in a friendly direction.


Take it a step further and use home row mods and thumbs for layer keys. And consider switching away from qwerty ;)


Mhm interested in knowing about Japanese Keyboard. Do you mind sharing what keyboard and setup are you using?


Of course... I'm using a japanese Happy Hacking Keyboard Pro JP (HHKB Pro JP). The HHKB is kinda famous for its Topre switches: I'm just using the japanese variant. They're kinda pricey as far as keyboards but the price is okay'ish if you buy them directly in Japan.

Before using a japanese HHKB Pro JP I was using a reqular US QWERTY HHKB Pro 2. But then I figured out a narrower spacebar and more modifiers would suit me best. The big enter key on the HHKB Pro JP may not be for everyone that said.

As for the setup, I don't have a public Github page with my config (I use Git but with bare git repos on my own servers) and it's actually going to depend on how you did configure the DIP switches on the HHKB Pro JP (it's got 6 dip switches IIRC) but it's nothing out of the ordinary.

I'll just throw random infos that may get you started if you go this route...

I'm on Linux so it's just one .xkb file which is mostly a modified QWERTY layout to add Hyper and Super modifiers. I had to mess up a bit with the japanese Henkan and Muhenkan modifiers keycodes IIRC.

As a sidenote I'll say that you probably can do everything from the .xkb file but xkb and xmodmap (to set up modifiers) aren't mutually exclusive.

In the .xbk file a "regular" key like, say, 'x' stays of the type ALPHABETIC but I modified i j k and l to be FOUR_ALPHA and they're then (example for 'i'):

    key <AD08> { type= "FOUR_ALPHA", symbols[Group1]= [ i, I, osfUp, osfUp ] };
where FOUR_ALPHA has "Hyper" in its short modifiers list.

I use Hyper for a lot of shortcuts (I configured Hyper to be the key at the left of the spacebar) but not for ijkl: Hyper+ijkl is used to send arrow keys code, always.

As for Super I use it only for my WM: so I configured one key to be Super in .xkb and then my WM (Awesome WM) only requires one line to be modified to tell it which modifier you want to use for shortcuts.

It's not complicated but it took me some time to set up everything: mostly because I had no idea how the .xkb file format was working and it certainly looks a bit alien.

I versioned my .xkb keymap files in Git and I experimented. I'm still under X so an xev window open to see the event (not sure how that works under Wayland) / keycodes sent, an editor to edit the .xkb file, commit changes as soon as good progress were made:

   xkbcomp mykeymappings.xkb $DISPLAY
To test the new settings. Rinse and repeat.

Once it's set up, it's set up for good.


> In fact, insisting on using the pinky is a sign you are also insisting on using one hand to enter the key combination

no it's not. insisting on using the pinky is an attempt to keep the rest of your touch-typing fingers remaining in place on the home row, which is the main reason using opposite hand shift keys is appealing in the first place.

If you're going to take your fingers off the home row, sure, use opposing index fingers for everything.


Unfortunately both Alts are not equivalent. The right one, the AltGr is uaef in many languages to type letters with diacritics. E.g. in Polish AltGr+Z is Ż, while AltGr+X is Ź. Still using both Ctrls itself helps a lot, and one may have a right Windows to remap as Meta.


They are equivalent in the US layout, which doesn’t have AltGr. For software developers, the US layout is the most ergonomic, and I’d recommend using a Compose key for diacritics and such (I use the Caps Lock key as the Compose key). I’m not from the US, so no home bias here. :)


That can be fixed outside of Windows [0].

What you're looking for, is a ISO Level 3 Shift (at least as far as X11 is concerned. Don't know the terms on windows).

I configured my keyboard to use the WIN keys as that. Super I only use for window-management related things, which I don't use is all the time and I can configure the actions to be on my right-hand. Therefore, since CAPS is useless, I remapped it to Super.

This way, with the dead keys, you can create many composed symbols. For writing French, an US layout is perfect, and I can type as fast as on a French keyboard. For your particular case, I don't know how to create the Ż, but Lvl3 + e + Z -> Ź. It's likely that if you used a different layout, this would be possible.

---

[0] I've tried multiple times to get a keyboard layout like on a mac, with its deadkeys system, but never managed to remap the AltGr properly.


It might be good if keyboards were more symmetrical in general. Perhaps the Enter key could be in the middle, below the space bar, instead of on the right which might come from a vestigial bias towards left-to-right languages.

This is the closest thing I found just now by googling, though by similarly 'directional' reasoning I think Del and Backspace don't belong in the central column and should be on opposite sides: https://www.keyboardco.com/keyboard/truly-ergonomic-227-mech...


> Perhaps the Enter key could be in the middle, ... Yes, such keyboards exist.

As well as enter/backspace/delete, it's also useful to have esc/tab near spacebar. https://github.com/manna-harbour/miryoku

e.g. A popular off-the-shelf keyboard which supports this layout https://www.zsa.io/moonlander/

> ...below the space bar

Well. Then you'd need to move your hands, or stretch your fingers a bit. It's better to have a smaller spacebar key, to allow for extra keys.


Another possible solution is to define a compose key (I use SysRq) to type characters not on the keyboard, such that (for example) the three-key sequence "SysRq . Z" is Ż.

Here's the XCompose file I use:

https://github.com/kragen/xcompose


Emacs is a great platform, but the default key mappings make it an RSI machine.

If I recommend Emacs to anybody today, the first thing I would tell them is to:

- enable evil mode and prefer its interface to vanilla Emacs

- install doom-emacs and learn to love the leader key instead of the C-[...] combinations

And of course what you said about moving your whole hand and using both hands still applies, including when you need to use the shift key.

I started to develop RSI once in 2015 and got my act together after that scare with an ergonomic setup and better practices. It's been smooth sailing since, always as an Emacs user.


> the default key mappings make it an RSI machine.

Citation needed. Even the poster child for that rumor, RMS, fixed his problem by switching to a better keyboard.


I'm describing my experience. Feel free to live according to yours if it differs.

Also, in jest: citation needed on the RMS claim. We can all play that game ad absurdium :)


https://stallman.org/stallman-computing.html

> In the mid 90s I had bad hand pain, so bad that most of the day I could only type with one finger. The FSF hired typists for me part of the day, and part of the day I tolerated the pain. After a few years I found out that the pain was due to the hard keys of my keyboard. I switched to a keyboard with lighter key pressure and the problem mostly went away.


I don't think focusing on hitting Ctrl on one side or the other is the problem -- it's the awkward contortion your hand has to make to hit the key, pinky or otherwise. It's in the same bad position on either side on a standard IBM PC 101 and later keyboard layouts. You'll just end up hurting both your hands if you alternate.

Caps Lock as Ctrl will serve most Emacs users for quite a long time, and it's traditionally where the key was before IBM in their infinite wisdom moved it in 1986.


> it's the awkward contortion your hand has to make to hit the key, pinky or otherwise.

Then don't contort. As I mentioned in another comment, insisting on keeping your fingers on the home keys is a bad idea. You should never bend the wrist while typing. When I want to hit the Ctrl key, I move my whole arm down and to the left so that my pinky (or any other finger) is over the Ctrl key. Moving your whole arm is what is recommended.

BTW, I'm not against remapping to the Caps Lock key at all - I grew up on those keyboards as well. I am merely dismayed that it is the first advice given, when it is fairly minor in preventing RSI.


"Preventing RSI" isn't the reasoning behind where to put Ctrl, though. People don't like it in the corner because it's (much) faster and less error-prone to put it next to A. Moving your whole arm is going in entirely the wrong direction.

FWIW: if you are RSI prone, you to be minimizing time spent on a keyboard in the first place, and heavy editor use is probably just a bad idea in general.


I touch type with my pinkies always on the control keys, not sure why you would have it any other way as a programmer. That might be suboptimal for typing text, but programming has so many special characters, and interacting with editors, browsers and such is usually better done with mouse and shortcut setup, so pinky on ctrl makes switching to mouse seamless.

And before you say I'd be faster with a typical home row setup, I program fast enough to compete with the best in the world in competitions, editor and keyboard enthusiasts talks a lot but they don't really deliver that extra speed in practice. They optimise for one use case and ignore the others, so they don't get faster overall.


I am not sure people really optimise for speed, they do it for comfort. When I moved to dvorak my speed dropped by quite a bit and I never regained it but that was done for comfort, and it is more comfortable no doubt.

    I lost the speed because I wasn't doing as much documentation as I used to with qwerty.   For development, that loss of speed hasn't made any difference because I type just as fast for development purposes.

    But my main point is the people I know have not optimised things for speed, they have done it for comfort.  A ten hour trip in a plane takes the same time in business class as it does in economy but one is a nicer way to travel.

   I wouldnt run out and tell everyone to change their setup, people are usually driven to it for one reason or another, either just curious or have an issue they need to address but on a topic of ergonomics, thats exactly what ergo keyboards are about.


OP already said that you dont have to use the pinky to hit the keys. I find the palm of my hand is nice for the right control key and the last knuckle of my pinky is nice for the left one (respectively on the appropriate hands). And my hands aren’t ruined yet.


I'm glad you found something that works for you. A friend used a similar technique of mashing the right and left control keys with his palms, but unfortunately after a month or so he discovered this hurt his hands too.

I'm of the opinion if you're regularly pressing keys on the keyboard without using the tips of your fingers and/or thumbs you're doing it wrong.


I press. I don’t mash...


I agree.

I think the recommendation to remap control onto caps lock is fundamentally misguided and based on poor typing practice. Many Control bindings are on the left (C-x, C-c) and using caps lock for them (without sticky keys) would be very unergonomic.

What I do is remap control, alt and windows key such that control is closest to the space key (like windows, alt, ctrl space ctrl alt windows). Then I can use my thumbs (symmetrically on both sides) to type any control key sequence.


> Use both, and use both halves of the keyboard If you're doing a combination like Ctrl F, use the right control key. If you're doing Ctrl-l, use the left control key.

Coordinating both hands to press key combos seems much harder than doing that with just one hand.

Also, in many cases (unrelated to Emacs), one hand is on mouse, so pressing keyboard shortcuts by one hand is much more useful than depending on both hands.


> Coordinating both hands to press key combos seems much harder than doing that with just one hand.

Anything is harder until you get used to it :-)

I had to make the shift. It wasn't really an option for me. Life improved after I made that shift.

> Also, in many cases (unrelated to Emacs), one hand is on mouse

While this is unfortunately true, it is still considered unergonomic by most ergonomists (any mouse use is unergonomic if it is continuous). They always recommend using the keyboard if the mouse can be avoided.

In a past life I did CAD work with a mouse. Horrible ergonomic issues ensued. Life got a lot better once I switched to programming.


The only way to hit the ctrl key ergonomically with either hand is by lifting your hand from the home row.

But that makes touch typing ridiculously hard. It is extremely easy to fail to return your hand correctly to the home row and now everything you type will be off.


There are small bumps on the F and J keys so that you can feel when you are correctly on the home row.


Yes, but then you need to bring your hands back to the correct position, and you’re lifting it off the keyboard. Which means you will likely be fumbling till you feel the bumps correctly.

With Vim and Caps Lock mapped to Ctrl & Esc I never have to completely leave the home row.


Can't say I have ever needed to fumble to find them, my fingers just land on them.


> The only way to hit the ctrl key ergonomically

I just just use the side of my palm (top of fifth metacarpal) to engage C.

Super comfortable, low effort, no leaving the home row.


It’s sad that the best space for control keys is occupied by a pretty boring “ “ key, which is 6+ keys wide for some stupid reason.


>> Use both, and use both halves of the keyboard If you're doing a combination like Ctrl F, use the right control key. If you're doing Ctrl-l, use the left control key.

You can also remap both caps lock and enter to control when they are used in combination with other keys. If you press them alone then they can be caps lock(or escape) and enter as normal. Pretty easy to do in karabiner. No RSI issues and you never have to worry about hunting for the ctrl keys with your pinkies on the bottom of the keyboard.


The MacBook doesn't have ctrl on the right! But I've done my best to follow this advice by making right-opt into ctrl and right-cmd into meta.


I agree with using the correct sided modifier, though I disagree with your statement that using the little finger for pressing CTRL means one insists on using one hand. If I hit right CTRL with the little finger of my right hand there is no way I am hitting, say, A with the same hand.

...though I will admit that I have a bad habit of hitting C-x one-handedly (I have my system configured to the Dvorak layout).


or, if you're really that much a dedicated emacs user, get a split keyboard with modifiers on the thumb. as you suggest, you can also double-map modifiers, so that C-M-x is just two thumbs and a finger. you can go really fast this way.


That's fine advice, but I will note that twice in my career I've had bad RSI issues due to overuse of my thumb. I learned the wisdom of trying to utilize as many fingers as possible.

Perhaps it slows me down a little, but my performance is not correlated with typing speed.


Modifiers on the home row are easier.

Thumbs are good for layer switching, keys like Tab and Enter, etc, which are important but not very-very frequent.


Yep. Proper touch typing, in other words.


I have foot pedal ctrl and alt keys. One set at home, one at the office.

Some guitar pedals wired as momentary switches wired to a teensy.

It's been using it for so long I forget they are there. I haven't even checked on the teensy since I can remember.

I instinctive tape my feet even if I'm working away from my desk. If I'm zoned in I can even stamp my foot as though the pedal has become unresponsive...

I don't use Emacs as much as I used to but that's why I built them.

The very first version I had predate the current setup and was a button on the underside of my desk that plugged into my keyboard with an audio jack and jury rigged internally to ctrl (didn't have alt for some reason). Thats got to be like 25 years ago now.

It was so inconvenient as pushing my knee up was hard work (I was convinced this would stop me getting a DVT from long desk hours... But only in my right leg I guess?) esp as I got a new desk that had more clearance, if I moved the keyboard it might unplug or pull the button off the desk. And finally once I got a new keyboard the wire would trigger the button and I couldn't think why so I ditched it.

What a blast from the past!


What software do you use to make this work? What OS?


On Windows it just works \tm.

The teensy using the keyboard library just holds ctrl or alt for the duration.

Linux is more finiticky but xkb lets you do the same (Linux or x or whatever seems to track which keyboard is which and doesn't mix inputs).

No idea bout Mac.


Tip for vi users on Mac: get Karabiner-Elements and use the “complex modifier” that makes the Caps Lock key into ESC when you just press it, but Control when you use it with another key.


I didn't like that option, because I found I tend to hold Ctrl to do some action (maybe copy text from some panel), and if I change my mind and release it, the ESC might close the window I'm looking at.

It's happened more than once with Chrome's Inspector or in the shell. It would be even worse with Emacs in terminal mode, where ESC is a prefix key.


If it could be OK for you other than that, there is usually a timeout setting that can be applied before it is recognised as a press.

    For example, any press under 200ms is ESC, anything over will register as Ctrl.   The timeout can be adjusted to work and not capture that time that you press it but then decide you don't want it.


You can limit the remapping to certain applications, in my case Emacs, IntelliJ, and VS Code. Doesn't help if you want to run the editor in a terminal, though.


This is the best piece of advice there is.

I use Emacs with vim bindings. I also have a Moonlander and I absolutely love it. I've got my QMK set up so that the key just below my left thumb (I press space with my right hand, so left is best for this—you might switch it depending on how you hit the space bar) is ESC on tap and Control on hold. This is the single-biggest improvement to ergonomics from a software side. Spend the time to figure out how to get this done, and then get used to it. Your hands will thank you until you breath your last breath.


Massive overstatement but okay. Hitting the escape key isn’t that much of a chore.


Indeed. And you can do the same thing with AutoHotKey on Windows and xcape or interception-tools on linux. Interception-tools has the big advantage that it doesn't just work under X (but also the console and wayland).


I use input-mapper on Linux to achieve the same. It’s truly a game changer. Converting 1 useless but highly accessible key into 2 useful ones is fantastic.

https://github.com/sezanzeb/input-remapper


For windows i recommend uncap https://github.com/susam/uncap


Does this allow overloading capslocks to both control (as modifier) and esc (when pressed in isolation)?


I don't know how people put escape there. For me it's a common key to accidentally press. I don't want to accidentally be pressing escape and closing out of dialogs and whatnot. On my desktop keyboard I've actually mapped the caps lock key to F13, which I only ever use for activating push-to-talk since it's easy enough to reach and an accidental tap doesn't really matter since it would only transmit for a fraction of a second.


Well, I take it you are not a vim user? :) There is no other reason to put Escape there. If I didn't use vim, I'd use the CapsLock key just for Control and not also for Escape.


i did this on the software side for the longest time, before I DIY'd a keyboard and got this feature hardware-side using q/tmk: https://qmk.fm/. Some prebuilt keyboards also support QMK, like the DROP CTRL.

I also use dvorak, and the keyboard setup every time i used different keyboard was getting a bit annoying.


4 years of college on Sun workstation keyboards and then another 4 years in the late 90's at work and my hand and brain are hardwired to expect control being where caps lock is on traditional PC keyboards.

In vi/vim I never hit the escape key, because the old terminals I used in high school didn't have an escape key or arrow keys. ctrl and left curly bracket is escape and h, j, k, l are to move the cursor.

The muscle memory is too strong to change after 30+ years so change the keyboard mappings instead!


This is the main reason I use a HHKB. I'd support any other keyboard makers who put the CTRL in the right place too.


I remap CapsLock to Esc and use that as my toggle key in god-mode: https://github.com/emacsorphanage/god-mode

This makes the Ctrl sticky, thus emulating the modal behavior of vim, but using emacs bindings. It also has some clever escape sequences that let you input complex chords without ever having to press more than one button at a time.

I have gotten so used to it that I have started looking into a way to make a solution that is global across my whole system (Linux). So far I can emulate some of the behaviour using something like kmonad (https://github.com/kmonad/kmonad) although some things like repeated keystrokes cannot easily be expressed using the configuration language and requires a more low-level approach.


Back in college I saw that all of my professors were suffering from varying degrees of RSI, and resolved not to succumb myself.

My final changes were, in order of effectiveness:

- Put Ctrl on Alt, next to the space bar. Use thumb to press. This saves a huge amount of pinky and wrist contorting.

- Put Alt on Win, next to the now Ctrl key. Also use thumb to press. With both of these my pinkies have way less to do.

- Put Backspace on CapsLock. Though this does use a pinky finger, it is much easier to type than the normal backspace location requiring a hand full stretch.

- Use the Dvorak layout. Much less finger travel since more is on the home row compared to Qwerty.

- In Vim, use Ctrl+C instead of Escape to leave insert mode. Though not exactly identical, Ctrl+C is almost the same as escape and especially with the above changes is much easier to type than hitting the actual escape key.

I have been typing for 15 years since and I have zero hand pain.


I have had this idea as well but for me there is too much space wasted by the space bar. I feel I have to get the thumb to far in under my hand for that setup to be comfortable. I would like a 3-4 unit space-bar.


When I switched to MacOS I was amazed how convinient is the mac layout: cmd and option under thumbs. I do the same for Linux immediately: win/alt/ctrl instead of ctrl/win/alt. And esc on caps of course.


just type with your index fingers

everything else is a meme


Remapping Control to Caps is my secret weapon. One feature I can't live without either on MacOS or Gnome is the Emacs keybindings for moving around text. Ctrl-A to move to the beginning of line, Ctrl-E to the end, ctrl-n for next line etc.

I generally use emacs when I'm doing quick edits and don't want to open a GUI, or if I want to take notes. After I got used to the bindings for movement I realized I was able to do them globally. This pretty much allows me to have great keybindings (when Ctrl is remapped) on any editor or application I am using. If you don't already do this I highly recommend trying it for a week over the arrow keys. Just be careful. It may be hard to go back.


The answer to the "Ctrl question" is quite obvious - just take a look at the space cadet keyboard. Just swap Ctrl and Alt so thumbs could be used for a busy Ctrl.

This also dramatically improve the experience in other "Ctrl heavy" applications.

P.S. I also use Caps Lock for switching layouts and never been happier.


This is the way. I've remapped ctrl/win/alt to win/alt/ctrl and esc to capslock.


Does anyone else experience the sensation of feeling like you’re six years old again, when working on someone else’s PC because you’ve so heavily customized yours?


Or you're hunt-and-pecking at 30wpm on your coworker's QWERTY keys, and they start to look at you funny as you stammer something about "I'm not used to ..." and "... Dvorak"? Yeah.


I was once helping troubleshoot and issue and I politely said, “can I drive?”

“You can try” he said with a smile.

His keyboard keys were all blank and he was in Dvorak.

“…maybe it’s best that you drive.”


I use the heel of my hand to hit ctrl. Unfortunately that only really works with discrete, non low profile keyboards. I’ve thought on and off about adopting an ergodox style keyboard that puts the modifier keys in easy reach.


I bend my pinky onto the palm of my hand and hit the Ctrl (or Shift) key with its 3rd knuckle. Sometimes I stop and think about how deranged that is, but it seems to work!


I do this too, and have done for years. Doesn't seem to cause a problem!

(I'd have to twist my wrist a bit to use caps lock as a control key, so perhaps my hands are just an odd shape. But i do like having symmetrical meta keys anyway, as i can perform the same motions with both hands.)


I am surprised there are not more people here that hit the CTRL key with the left part of the palm of their hand rather then twisting the pinky.

I don't think I could even bend my pinky comfortably to do this action.


I have a ZSA Moonlander split keyboard and for better Emacs ergonomics, I have Ctrl under my right thumb, and Alt under my left thumb.

But twisting the palm to hit Ctrl always struck me as a terrible idea, maybe because I have large hands. Better remap Capslock.


I hit CTRL with my palm too.

I often perform cut/copy/paste with CTRL+Insert,SHIFT+Delete,SHIFT+Insert which is fine on a full sized keyboard. It's why I can't buy so many keyboards that have "optimised" the layout.


I thought the reason why Ctrl was on the bottom left was to use your palm to press it.

All my CS1.6 teammates used this. Learned in compsci classes it wasn't as ubiquitous as is first thought.


Modifier keys all belong under the thumb. Keyboard designers absolutely need to read John Napier’s masterpiece Hands and design to account for this anatomical reality. The thumb works in opposition with the fingers.


I moved Ctrl to my left thumb, on the inside of the keyboard, about ten years ago.

It's still possible to hurt your thumb from overuse, but it's a far stronger finger than the pinky, and no stretching is involved.


Are you saying you moved it to the traditional left-Alt key?

That makes the key on the left of the spacebar as Ctrl and the key on the right of the spacebar as Alt. This is much better, in my opinion, than using the pinky on the Capslock.


yep!


Strongly recommend using a keyboard with modifiers under your thumbs like Kinesis Advantage.


Not recommended fir everyone, I already struggle with thumb joint pain with a regular keyboard layout.


An alternative approach is to have good shortcuts, Spacemacs being my favourite take on it. The idea is to have shorcuts like `<SPACE> f e d`. The shortcuts tend to be logically organized in levels (f for files, e for editor, d for dotfile, so this opens your emacs dotfile). No need to remap the keys and no issue with painful key combinations at all.


Tangentially related, the PowerToys Keyboard manager allows for key remapping on Windows: https://learn.microsoft.com/en-us/windows/powertoys/keyboard...


An aside, but I get sad when I see how much tension people have in their hands when they are typing. As a pianist this is the cardinal sin!

Hand size and posture do vary a lot so looking for the right setup is important but learning to be ultra relaxed and effortless in your typing (and chording) is much more portable


The most comfortable for typing is "home row modifiers".

With tap-hold functionality, the key behaves the same when tapped, but as the modifier key when held.

So, you can put Shift/Ctrl/Gui/Alt as tap-hold underneath asdf and jkl; on the home row.

This can be achieved on a fancy keyboard, or with cross-platform software like kmonad.


I've been experimenting with home-row combos instead. So you press multiple keys at once, enabling the use of one-shot mods so you don't have to hold keys down for modifiers and can instead tap them

A one-shot shift under one thumb is also amazing, if you have such a keyboard.


I wish more people knew about KMonad. It allows you to have many advantages of "fancy keyboards" on regular keyboards, most importantly, on laptops.


I never use Caps Lock. I'd move it to the area of the Pause/Break/Scroll-lock/SysReq keys if I were a keyboard designer (I wouldn't mind if these keys were removed even).

However, give me some easily accessible Copy/Paste and Undo/Redo buttons.


The Sun type 6 usb keyboards have a cluster of keys with those. Sorrowfully, it’s keymap is probably not universally supported.


    Yes, it's a good move for people using control a lot.  I am using evil mode in emacs so I have the escape in the same place.

    I also use homerow mods which i find really great.

    With the homerow mod, the homerow keyas 'asdf' and 'jkl;' are mirrors of 'gui, alt, ctrl, shift'

    So the a key is an a except of you hold it down and press another key, in that case it is the gui key.

    It works really well in emacs as well as on my tiling window manager where there is a lot of use of the combinations. (I have no idea why my font appears different)


I have done this for years, specifically because of using Emacs, and now get frustrated now when on a non-mapped keyboard. :) It works out good for CUA bindings for other applications also.

However, since I am left-handed, the experience might be a little different for me, since I bias towards the left for all modification keys (that includes the Alt key.) The idea of having those keys comfortably near the thumb is interesting though, as some have mentioned, like having a trackpoint so close by when typing (I also remap the top buttons to favor me using my left hand more.)


I have a fairly extensive emacs config, and for the most part I am still using the default keybinds. I find the readline bindings to be ergonomic and easy to use.

Assuming average case, most of the complaints in this thread can be solved by using the side of the palm (top of fifth metacarpal) to engage C. Requires no remaps, doesn't take long to get used to, is totally comfortable, and leaves you on the home row.


On many keyboard there's only one Ctrl key and it's at the left and hence it makes Emacs's "C-x" really painful. You're supposed to hit 'x' on a QWERTY keyboard with your ring finger.

One trick, not mentioned in the linked doc, is to move C-x to something else using Emacs' very special "ctl-x-map".

Check one of the mapping using "Ctrl + one finger of the right hand" which is a functionality you don't use much and map that to ctl-x-map.


On all of my machines, Caps Lock has to get mapped to switching between keyboard layouts. Saves me so much time every day, not having to do the Alt+Shift dance dozens of times every hour.

If only there were more non-US people making decisions in tech, we could have had a dedicated key for that, the way Japanese keyboards have a bunch of Japanese-specific keys, but alas.


OK, so I was thinking of editing that wiki page to add this command which I use on Gnome Wayland:

    dconf write /org/gnome/desktop/input-sources/xkb-options "['ctrl:swapcaps']"
But I'm not sure where it fits; in the Gnome section, or the xkb section?

NOTE: this overwrites the value, you should do a `read` first


I believe it goes into your .profile


I'd feel a bit guilty about remapping somebody's Windows keyboard if I was using their machine for some reason, since even if I had my own user account, the key mapping solutions tend to be global. They'd end up mystified about why the caps lock wasn't working, and it would be basically impossible for them to fix.


Would love to know the name of the Lenovo genius who put the light indicator on the CapsLk key I use for ctrl that I can't see because my left hand blocks it when I want to see the capslock status. Microsoft Zune grade design thinking.


Or you get a HHKB and solve all your keyboard problems peramanently, personally I use the HHKB JP because I simply need the arrows. How fujitsu have not made a HHKB with american layout AND arrows is beyond me.


Ctrl2cap is always one of the first things I install on a new machine!


Same. Caps lock is such a dumb key, I don't even rebind it. So I have 3 CTRLs.


> Caps lock is such a dumb key

It's convenient to have a mode for typing in caps for stuff like "MAX_NUM_WORKERS". -- Especially if you're using Shift on the opposite hand from the letters you're typing, rather than just stretching to hold down shift the entire time.

But, the standard keyboard design isn't a very practical one. -- I think Caps Lock is better placed behind a Fn key, in the same way that "brightness up/down" is behind a Fn key on most laptops.


If I wanted to be clever, I'd use software to detect a quick double-tap of shift to be caps lock.

Nowadays I have convenient access to it via a mod-key on a programmable keyboard, but still don't use it.

Holding shift seems to feel totally fine for my hand geometry, it's the extra distance to CTRL for my pinky (without shifting my forearm down) that gives me wrist pain.


One of the standard X Window xkb options is to obtain CapsLock by pressing both shift keys, freeing the original CapsLock key for other uses.


With a programmable keyboard & a desire to avoid using the pinky finger with Ctrl, I'd suggest taking a look at home-row modifiers


CapsLock being so useless, but conveniently placed turns out to be a feature. I used to bind it to ctrl, but now use it as the root key for all my personal keymaps (remapping it to F2).


For me, the key I’d move is Caps Lock. I inadvertently hit that dang thing dozens of times a day.


I _believe_ remapping ctrl breaks ctrl+shift+f in VS Code. Not 100% sure.


I think you are referring to this? From the wiki at https://github.com/microsoft/vscode/wiki/Keybinding-Issues:

    Are you customizing keyboard mappings via setxkbmap or equivalents?
    
    symptoms: customizations done via setxkbmap or equivalents have no effect in VS Code.
    
    solution: use "keyboard.dispatch": "keyCode" in your settings and restart VS Code.


First thing I do on any computer is remap caps lock to be a Ctrl key


[dead]


Personally found that simply using the other hand for modifiers, moving whole hand laterally without bending the wrist and using thumb to hit the modifier, works much better for me, and afaik that (using the opposite hand) was the original design that impacted Emacs modifiers (with mirrored bucky bits on Knight and Space Cadet keyboards).

A bit of problem due to non-mirrored Alt/Meta (I unfortunately need that AltGr) and problem with laptops that often cut important keys on the right hand side, but reasonably good on full keyboard.


I own fingers and I can say it's not better at all. It's much more comfortable to not keep the pinky so curled so often.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: