Embed Notice
HTML Code
Corresponding Notice
- Embed this notice@ryo @charliebrownau @udon I'm not a fan of hjkl for window managers because sometimes I'm using the mouse with my right hand and I don't want to have to move the hand to the keyboard. When bindings like that are on the left, then they work in every situation. To me mouse support in general matters, because when I'm not typing, I like just lazily laying back and clicking on things. Also helps resting from all the typing.
It would be nice to have one of those gun-like mice that you hold with your hand, with a trackball that you control with your thumb. That would be comfortable in those situations. Also very portable. And good for when you are on an exercise bike or something like that, and can't reach the keyboard but can use a mouse. I don't know if a good quality one exists, though.
Anyway, I think movement/UI keys should be on the left side, while keys for text editing should be on the right side, because you need both hands to type anyway. Unless you're left-handed, then you flip it around (actually, normal keyboards are better for left-handed people than for right-handed people, and so is hjkl on window managers, though the CUA keybindings that most GUI programs use are not, those are all on the left side, as they should be, for most people). Of course, there is also the complication of different programs using different bindings and not all being equally customizable, but there are ways around that.
You can add bindings to run other bindings with xdotool, to make that translation, and you can also use xdotool to check which program is in the currently-selected window, and change the results accordingly, or even do that in the window manager itself. But with that, you can have universal custom bindings for movement. Different layers on custom keyboard firmware can also work, and compensate for a lack of modifiers. Also, with custom firmware, you can turn modifiers into lock keys, so they can become almost modal. You can also add an extra hyper key. Hell, you can do sequences of bindings with sxhkd. You can also set up your window manager to have keybindings that change your keybindings so you can have a window management mode and an editing mode. There are a lot of ways of doing this.
Probably the Qwerty esdf keys, because pinkies are weak and using them should be avoided. Problem is that normal keyboard designs are awful, so you tend to need it for every modifier except alt. I think it's actually a good idea to swap left super and left alt, so you can use it with your thumb, and then you still have right alt to use with your other thumb (or you can make the space bar be super when held). The good thing about Super is that programs don't use it, so there are no conflicts, so it's good for window management.
Of course, ideally you should have a good keyboard, but there are only like, three options for that (Keyboardio, Kinesis Advantage, Dactyl Manuform), that I would even consider, and it's expensive.
Oh, and doesn't i3 use jkl;? People complained about that a lot in the past. Maybe they changed it. I see hjkl as being good for typing, but not good for universal use because again, it conflicts with the mouse, and sometimes you use the mouse, unless you can completely eliminate it, but good luck with that. Maybe with a split keyboard it would be more comfortable, and maybe I would prefer movement to be on the right side, but I don't have one, so I can't test. Still would probably go with the left. Though I guess you can use the keyboard itself as a mouse. But that would work better with analog switches, but most PCBs can't do that because the switches have to be magnetic. And the switches basically have to be linear for that to work, so goodbye tactility.
Fuck, that was too long again. I still haven't figured it all out myself, I'm still trying to come up with the perfect way to do bindings. Vim is not it, though. Hell, I use w, e and b at least just as much as actual hjkl, and those are pretty damn horrible, to the point that if they required modifiers, they would be almost unusable. Then there's also ctrl + d and ctrl + u, and n and p for searches, $ and 0. Those are pretty bad as well. The rest of the bindings are mostly fine, though. Though this is all made worse by the fact that other keyboard layouts break everything.
I think bindings should be based more on position and ergonomics than on mnemonics (Emacs has some very uncomfortable bindings that come from mneomics, but people ignore that Vi(m) does that too). It's more important for them to be comfortable after you learn them than for them to be easy to learn. No matter what the bindings are, you are going to spend a lot more time using them than learning them, so they should be based on a priority system. The most common actions should be on the keys that are easiest to press, and actions that are still useful while using the mouse should be on the left side. And for left-handed people, it should all be mirrored.