The most elite setup, as I recall, was the Kinesis Advantage combined with pedals. The keys on the Kinesis are recessed in these sort of cups that your fingers rest above. The idea is that this reduces the distance that your fingers travel moving between rows. I could never get the hang of typing on one of them, but people swore by them. Adding the pedals for shift/ctrl/esc was supposed to further reduce the need to stretch your fingers and get them into awkward positions. People also swore it made them faster and of course it looked and sounded super cool.
I don't know if the Kinesis reduces the finger movement between rows, but your hands definitely sit in a much more relaxed way. The thumb has quite a bit more responsibility too and you don't do any stretch moves like using the pinky for the twiddle or a lot of control pressing. Love the keyboards.
As for the pedals, they are programmable and the general thinking was control/option/alt type configurations for them. I just never got in to heal-toe typing, the pedals got dusty and I never really used them much. Had I actually had CT or something, I think I might have been more motivated to make use of them.
I felt that some kind of wireless, in-shoe, toe-activated device might be the best option. But that's not really very practical!
Actually, in a situation where I can't require significant force, the 'upshift' almost seems like it would be more comfortable.
I use karabiner on 2 versions older of macOS, which allows you to use a special keyboard way to control the mouse... You hold the D-key then use other letter keys to move the mouse up,down, left, right, click, scroll up, scroll down etc... Works so much better than you'd expect. It literally allows me to do everything including screensnap selections, making keypoints without mouse etc.
Because karabiner doesn't work on latest macos, I've been busy writing my own replacement from scratch.
I did also initially start by mounting a trackpad in the middle of the kinesis - but ultimately this isn't perfect. My mouse keys setup simply blows everything away, even compared to just using a regular trackpad for most things, since you never take your hand off the keyboard, and can get about 70 percent as fast using the keyboard as mouse as using a real trackpad.
My code is in such a disorganized state, I have never coded MAC stuff before, this was my first try, creating a test project scaffold with xcode. I mixed old school C-code with objective C because I don't know objective C ;->
Finally I manually injected my compiled binary into another app's package structure, just to make it work. You have to grant it accessibility permissions in preferences to work!
For now I have downgraded my MacOS-X and gone back onto Karabiner, because I literally refuse to work with computers without this awesome thing.
It takes a bit of time to get fast and accurate, but eventually it is all just muscle memory moving a pointer around on the screen. Some stuff with keyboard-mouse is even better than normal mouse(trackpad). But overall I am so happy with it that I do video editing and all other document editing with it, and wouldn't dream of going back to my trackpad or mouse. (I also get RSI pains from using pointing devices, but as I say, it is devine to never lift your hands OFF your Kinesis Advantage keyboard).
I suspect part of what makes this really great is using it on the Kinesis. When I work on the train on my MBP I still use mouse-keys, but sometimes use the trackpad intermittently.
I would really recommend trying Karabiner if you have an older mac, otherwise I could email you a binary.
I will probably clean up the project, and use fancier tecniques like direct hardware access from user-space instead of the eventtapper, and copy some tricks from Karabiner-elements.
Eventually I will create a github and maybe a project site ;->
If by the time I am somehow forced to upgrade MacOS and there still isn't a good solution out there, I will certainly make mine work, otherwise I am screwed!
Since this is a vim-inspired thread: among other mappings, I swap Escape with Delete, and swap ↓ with ↑ so they line up with J and K.
I use caps-lock for escape. It’s really nice but whenever I use a coworkers computer I find myself suddenly writing with caps-lock on even though I’m the only vi-user at the office.
And I hear good things about Vimperator on Firefox.
There are trackball buttons on the top of the keyboard. When using it, my right hand curls around the corner and my thumb is over the trackball. I have the 2nd mouse button set to scroll-lock, and scrolling up and down web pages and through terminal histories never felt better.
Ended up going back to the trusty $20 Anker cause it feels more comfortable on my hand/forearm. Go figure.
I'd actually started with a Kensington Expert Mouse (also a trackball, despite the name). I switched to the CST because it has a higher resolution. The one thing I didn't like about the CST was the placement of the middle button, but the CST is easily hackable so I added a "sidecar" with a button for my thumb, and it works really well.
Here's a photo of my setup:
They're also fantastic once you're used to them. I frequently consider switching to trackball, but my favorite option is still the Trackpoint. IBM/Lenovo really screwed the pooch there though.
Completely avoiding the mouse isn’t an option for some workflows.
I wish there were more keyboards with IBM-style trackpoints.
Because I rarely use the mouse (trackball in my case), and if I type on a 'regular' keyboard for any extended period of time I will experience discomfort; whereas on the Kinesis Advantage I don't experience any discomfort.
300$ seems like a steal to me!
(Not that I paid. My company did.)
The point is to reduce strain and fatigue of the fingers and wrists, not to reduce movement for the sake of reducing movement.
Mouse ergonomics is a completely separate can of worms.
A keyboard that doesn’t have an integrated mouse solves only part of the problem. That’s why I like having a trackpoint for small mouse movements.
I don't mind having to switch to the mouse. It gives me time to take both hands of my keyboard and change their positions even if for a little bit.
The ideal for me would be a two-in-one. An ergonomic, well designed keyboard like the kinesis, with the addition of a trackpoint to avoid lifting a hands for small mouse movements.
Building keyboards has been a hobby for a minute, I've settled on an HHKB that I've gutted and replaced the controller with a Teensy 2 so I can program all my mouse keys and shortcuts in hardware, therefore avoiding the inevitable discussion on who's mappings to use when pairing.
You can often find good offerings for sale/trade on reddit/r/mechmarket.
They are not curved like the Kinesis Advantage are, but I have really long arms and the ability to move both keyboard parts around is so good on my elbows and wrists.
As per mouse, I have been looking at trackballs, but I was kinda scared to get one so far. Having large hands, I previously used a Razer Mad Cat, because I could adjust the mouse to a size so I don't have to grab inwards, and I could just hold it without effort. That thing recently broke, and I changed to a slightly angled, equally large trust mouse.
I had spent 10+ years working nomad style on a Thinkpad, and when I got a desk I got one of those USB Thinkpad keyboards with the trackpoint in it. Turns out if you zap them with static 2-3 times a day for a couple years, they'll eventually stop working... One day it just up and died, and a co-worker had the Advantage and Ergodox Ez and I'd been meaning to try them.
I had switched to a tiling window manager a few years before that, i3, so I could do a lot of the navigation without using the mouse. I've at times toyed with the idea of putting a trackpoint in the Ergodox, and if they made one I'd probably buy it, but I'm pretty happy with my current setup.
For most navigation I use my keyboard. Since I have 3 monitors, using the mouse is not a great experience anyway. I mostly use the mouse for web browsers (never really been happy with the mouseless navigation experience there).
Love the Ergodox Ez. I've also got an Ergodox Infinity with Cherry Brown, I kind of prefer those keys, but I like the Ez's tenting kit. I also picked up an Ez with Gaetron Blue, which is honestly too loud for my work environment and doesn't feel enough better to be worth it. My normal keyboard is Ez with Gaetron Brown. I just noticed they have a new Ez that has switches you can remove and replace (without a soldering iron), and they have switched to Cherry. A good move, IMHO.
Works well. With my Kinesis Advantage forget pair programming; except with those in the office I have converted to the Kinesis Advantage of course!
Took maybe 3 days to get used to the movement between them mouse and the keyboard. I think it would be more uncomfortable to have one in the middle space in the keyboard, your hands sort of naturally fall away to the side but they have to reach in to the middle space.
I tried velcroing the trackpad to the middle, but the angle is weird. I like it better to the left.
Hmm, I've used Vi and other editors long enough that I find it annoying that most editors enter text when in normal mode.
Where escape is in a similar place to tab on PC keyboards. Also note the arrows on the home row.
Most dedicated vim users will move to using C-[ probably with caps lock mapped to Ctrl.
Other alternatives are map caps lock to escape or even have caps lock as escape when pressed and ctrl when held.
1. more compact. No extra surface, instead just have separate wells connected either by a wire like the Kinesis Freestyle, or fully wirelessly ideally. Kinda like the ErgoDox keyboard.
2. lightweight. Don’t want to be carrying a brick in my backpack. I’m totally fine with using low travel keys like how a MacBook or any decent chiclet keyboards feels, I mostly just want the layout.
3. wireless. Bluetooth with ability to switch multiple inputs like the Logitech K811 would be incredible.
If anyone knows how someone would start to hack something like this together, please tell me! I have never done hardware but I would love to mess around with something like this as a project.
Iris and dactyl look like the sort of things I’m thinking, though I’d probably want to find a way to either have f keys or configure some of those thumb keys to hit certain common f keys, I assume that’s doable though! Thanks for the resources, just mentioning names and where to look really helps :)
- Start playing with 3D modeling software
- Figure out what the base/frame should look/work like and have that professionally made somewhere (ie a cheap CNC place)
- Invest in a good 3D printer (I hear the cheap kit/"project" ones are terrible) or find one you can rent/borrow, and 3D print attachments to the base for iteration purposes
I realize this approach describes several months of work but is probably a "99.9% solution" - as in it'll be likely to (viably) get you the absolute closest to exactly what you're looking for.
Looks stunning to me. The rather underrated Cherry ML switches strike the balance of low travel and good feel for me. Maybe one day someone will get sufficiently inspired to make such a thing.
I imagine some frustrated IBM programmers in the late 80s saying "fuck it, I'm just putting caps lock where Control used to be."
I wonder what happened? Maybe since computers are cheaper, more ubiquitous and people might use several (home, work, laptop), it's much less practical to use an exotic setup these days?
My Logitech with side buttons finally wore out, and the only symmetrical standard mouse with five buttons was a Razer gaming mouse. I bought it, but I feel a bit silly with it on my desk at work.
Bought it because you can do simple macros for buttons which are stored on-device. Also allows for mode switching with rotating profiles that are differentiated by LED color.
If you're on a budget and don't care about on-device macros or looks then there are branded variants, like the Guild Wars 2 one when I initially tried it out and now there's a CoD one.
The downside is that the branding paint job wears out with use. Especially problematic on the white GW2 one I had (yellowing under fingers). Don't try to clean it with IPA (rubbing) alcohol though, it dissolves the matte sides and the paint job (learned from experience). https://www.amazon.com/SteelSeries-Call-Black-Gaming-Mouse/d...
It took me a good 2 weeks to become proficient on it, but that was four and a half years ago and I haven't felt any RSI symptoms at all. I think I'm now faster on it than my old keyboards, mostly due to the thumb clusters. I recommend it to everyone who asks about it.
You can see the keymap here: https://github.com/trishume/SublimeTect/blob/master/Default%...
This doesn't work on laptops because of the low profile keys, so I stack some 3M "dual lock" squares on the control key to raise the profile. They can be removed (except for the one glued to key) when I need to close the laptop.
It wasn't as useful as I expected. Having to keep my foot in the same place all the time became quite uncomfortable, and I found that synchronising my foot with my fingers (these pedals were configured as modifiers rather than escape - I mostly use Emacs) was quite difficult.
1) quick press-release: changes mode
2) long press-hold-release: changes mode on press and then changes mode back on release
This allows the user to not have to hold the pedal down if they dont want.
User can specify a time threshold used to determine the difference between a quick press and a long press
Try to learn using "Ctrl + [" instead of ESC. It helps.
Eventually, I got used to ESC. I move my hand more than bend my wrist, so it isn't so bad. I hit ESC with my left ring finger. I also try to plan my next keystrokes and/or move my right hand into next position while my left hand reaches for ESC.
I've found that moving ctrl to the capslock key also helped reduce wrist motion, though it makes using other people's computers more annoying, since I try to do everything on the keyboard with pure muscle memory.
It was a fascinating set of key bindings, but a problem with it was that it wasn't very portable, and I hit too many problems with Vim modes in other editors not supporting rebinding Tab or causing too many accidental side-effects.
(I try to keep CapsLock bound to Backspace so there is a Backspace on each hand. It's a good use of the key. Though maybe real Backspace might make a good, Esc in a Vim binding, hmm, I'm going to think about that now.)
My computer use is so dependent on muscle memory that I can't comfortably use anyone else's computer, even without the moved keys. Every time I get a new computer, there is a long adjustment period too. I find the trade-off worthwhile though, since I'm rarely far from my laptop and rarely type more than a few sentences on other computers.
" In insert mode use 'jk' as Escape key
:inoremap jk <esc>
Go to System Preferences -> Keyboard, then on the lower right, click the Modifier Keys button.
I think the same applies to the pedal. Maybe you’ll try to use it when it isn’t there, but so what? It might slow you down for a second, but I don’t think it’s going to be a major inconvenience.
I haven't really forgotten any of the long form commands that I create shortcuts for, but it's really annoying using the long forms when typing them out over and over was the reason why I created shortcuts for them in the first place...
My .vimrc has the following lines:
I believe it's better to allow people to choose how they configure their editor rather than making that decision for them.
Instead, Vim has a very spartan default configuration. There are good historical reasons for this. But it is a sad history, because it means, most long-time users end up with fairly heavy customisation. And those customisations will routinely be different from everyone else's set up, not just when they want to enact some personal preference.
I'm going to tell them: "Remapping caps lock to delete".
Not in Vim, but system wide.
I use AutoHotKey to remap caps lock to delete and shift + caps lock to caps lock.
Don't vim have decent autocomplete?
(I mostly use it when ssh-ing into servers but figured people who code in it must have set it up as an IDE?)
It does, but it requires that the word to be autocompleted is present in one of the other loaded buffers. If you're typing out a new variable name, it won't work.
There are probably plugins to change words to camelCase, snake_case, etc, but I'm not aware of any built-in command to do that (other than manually editing it).
The only thing that springs to mind is 'Racing Inspired Cosmetic Enhancements'.
He’s making an analogy between those cars with tons of modifications and the extent of customization that seems common in emacs.
Race Inspired Cosmetic Enhancements. (R.I.C.E.)Parts put on cars to make them look fast, when they have no internal tuning, and are actually slow as hell. Parts usually consist of excessivley angular bodykits, large rear spoilers, neon, sponsor stickers, chrome rims, fake "coffee can" exhaust tips, and loud, annoying paint jobs and/or vynils. Sometimes parts are do-it-yourself installed and are basically duct taped to the car. Most commonly known for being done to Honda Civics, but can also be done to slow domestic vehicles, such as a Chevy Cavalier, etc.
In the common vernacular where I live it's generally meant as a pejorative.
OTOH I’ve been using the Dvorak keyboard layout and custom keyboards for the same period of time but usually I get by if I need to type just a little and if I need to type a lot I bring one of my keyboards.
Automatic is frowned upon by many of us ;-)
I guess when electric takes over that's all we'll have. I'll miss manual gears for sure.
The biggest struggle is words beginning "am" or "ma", the two keys which are in the same location on both layouts.
If you can learn to cope with changing between a Mac and non-Mac then you can learn to cope with changing keyboard layouts.
I'd recommend using only one layout when learning though: I switched solely to Dvorak when I was learning, then learned to use both side-by-side afterwards.
It's also very uncommon to have to type on somebody else keyboard (and not good for hygiene).
If I'm helping a colleague, I expect them to type, otherwise they probably won't remember anyway. Otherwise, all I'm likely to type is a couple of letters to search for a name on the video conferencing system or a YouTube video on a friend's computer.
I like the idea of 'better' input methods including key layout but in reality I've found it simpler to stick to the defaults of the world. I'd be interested to hear your experiences
I made the "tent" showing the keyboard layout, as described at .
It's simply more comfortable to use Dvorak. The clearest way I have to show that is by tapping fingers on the table: it's much easier to go small-to-large than large-to-small. On Dvorak, that means typing digraphs like sn, st, sh, nt, nh, th is optimized (Qwerty equivalent: ;l ;k ;j lk lj kj — what a waste of easy-to-type combinations!). The reverse combinations are rarer in English: ht, hn, hs, tn, ts, ns.
All the rare letters are on the bottom row, so the most awkward movement — bottom row then top row — is minimized.
Added to that, hand alternation is much better, which is also more comfortable. Taking my first sentence, "after" and "was" are all on one hand, and trigrams like "ear" (learnt), "rst" (first), "ect" (project) are common, yet ugly to type on Qwerty.
If you can touchtype Qwerty, type this to simulate typing the first two sentences:
G pdaolk hfoglu kjd ;fmmdo aykdo kjd ygo;k tdao sy flg.do;gktw ,jdl G ,a; ,sovglu sl a ;mapp ;fmmdo roscdik ak kjd flg.do;gkte Gk ialqk ja.d nddl msod kjal k,s mslkj;w rosnanpt msod pgvd slde
To remain closer to the defaults of the world, I've never bothered with Colemak or similar. I can add Dvorak to any computer I use, which I will occasionally do if someone asks me to use their computer to take minutes in a meeting or similar.
I have no qualms using default vim despite it not being my standard method of work, but I still hate the feeling of any case where some muscle memory sequence does not result in what I expect. Ideally I don't want to have to think about anything outside of the problem at hand at all, and this is exactly the kind of thing that breaks immersion.
Because of this, among other reasons, I like small configs, standard input methods, programs with sane defaults and having a simple dotfiles repo.
On this note I can't wait til the next best set of standard input/output comes along, like AR screen so we can move around freely and naturally while working... that's the dream
Right click paste? Nope. On Debian it changes to visual mode.
If you put this in your .vimrc, it should allow you to paste from the system clipboard by pressing space-p:
let g:mapleader = "\<Space>"
nmap <leader>p "*p
vmap <leader>p "*p
In my experience, terminal vim doesn't have that feature enabled, but gvim does.
:w !xclip -selection clipboard
:r !xclip -o -selection clipboard
Nonetheless, it is a nice device, though I don't see myself relearning a muscle memory to use a pedal, which I will basically only have at home and/or work, but not when working somewhere remote on a notebook.
But if I had one, or had to use one, I'd probably bind ESC to it or alt+tab to cycle through 2 or 3 apps, editor/terminal/browser
So what I really need then is mouse cursor movement by eye tracking + both-shift-keys for left double click.
Why isn't eye tracking for mouse movement a thing yet?
My own project: https://talonvoice.com (only requires a single eye tracker, has realtime precise movement similar to the eye+head projects below, and integrates with a very fast and powerful voice control system).
https://21clicks.net/share/-L5eU8SeIbUDcgsQa3_l - click Replay. This is completely hands-free using Talon's eye tracking and a noise recognizer (hiss to click). I consider what I have right now to be an unpolished tech demo, which will get significantly better as I cross many accuracy/speed TODOs off my list.
These projects require both a eye and head tracker (are still fast and precise):
Miscellaneous, not quite as well integrated:
Thanks for reminding me of Dragon by Nuance. I first saw Dragon being used by a quadriplegic guy I used to work for. This was ~10 years ago, he had a bit of a speech impediment too and it worked reasonably well.
I occasionally think about Dragon and think it might be useful in my 2D CAD and laser cutter workflow. It actually seems reasonably priced, so maybe I'll give it a whirl.
I plan to build/support professional workflows like CAD. I'd love to hear about your needs. I strongly believe eye + voice can greatly surpass keyboard/mouse in many environments.
I'd love to see someone play with the UI though.
Perhaps wink-left and wink-right could be used as modifiers to prevent FFE, or whatever customisation the user prefers.
Might have to get one of these...
Pseudo-modes are generally much less error prone than normal modes, the canonical example being the shift vs. caps lock keys.
It's an interesting and easy project to start soldering/arduino-fiddling. Parts can be purchased with approx. $25.
In comparison to the pedal used in the vim clutch, the sewing machine pedal has the advantage of not only having an on/off state, but returning the pedal-pressure (so half-ressed and all sorts of combos are possible).
Currently, I use it for sublime-text shortcuts (cmp+p on half-press and cmd+shift+p on deep-press) or for debugging (ctrl+d to continue code execution).
However, instead of using the obvious hardware approach for the time - probably using a couple momentary switch pedals and reading them from the parallel port - I had a much better^Wmore fun idea: use a MIDI organ pedal board. I already had a MIDI interface (Midiman MM-401), and I had already dreamed of getting such pedals for regular keyboard use. Having 1-2 octaves available was plenty of room for all kinds of extra macros and/or hotkeys.
I was half way through writing a simple daemon that would listen for MIDI and send the appropriate synthetic X11 KeyPress/KeyRelease events when I finally looked into where I could buy a pedal board, and realized they were $600+ (in mid-90s dollars). ~sigh~
 e.g. "C-M-SPC" for mark-sexp
 anything similar to this: http://www.nordkeyboards.com/products/nord-pedal-keys-27
Haven't tried foot keys with an editor, but it seems like once you integrated them into your workflow they would be quite useful.
The farther down you press, the bigger the text size.
Great for presentations on stage too.
You could probably use a bunch of them for programming macros, like moom layout shortcuts, class skeletons, lock-screen, etc.
Why Backspace? It was a gift for a friend who had what we called Rusty Degenerative Typing Syndrome. His typo rate was just terrible.
The pedal did not improve his typing error rate but it night have saves hid friends a lot of contusion.
Remapped capslock to control and control + [ works much better.
Vim clutch does not work with standing desk setup ;) don't ask me how do I know that.
It seems like riding a bicycle or typing on a new keyboard. At some point, it becomes natural.
On a side note, I wonder since USB input is polled whether or not it would make sense to look for a toggle in the inputs rather than using two switches.
I'll have to see how 'clutch' mode works (I'm a VIM user). There was a person who showed off a hacked organ base pedal unit that had been improved to send keystrokes in a similar way.
For me I could see sending one, or two key strokes. Sending 10 or 12 seems like overkill.
Also, if you have a 104/105 key keyboard with "windows" and "menu" keys, you do& have a keyboard with four modifier keys. From my .Xmodmap file:
! left alt -> Meta
keycode 64 = Meta_L
add Mod1 = Meta_L
! right alt -> Alt
keycode 108 = Alt_R
add Mod4 = Alt_R
! left windows -> Super
keycode 133 = Super_L
add Mod3 = Super_L
! right windows -> Hyper
keycode 134 = Hyper_R
add Mod5 = Hyper_R
Much less intrusive solution is to leave Super_L, Alt_L, ISO_Level3_Shift as well as the control and shift keys unchanged and simply map Super_R to Meta_R and map Menu to Hyper_R.
If wishes were fishes we'd all swim in riches. Really nice job moving beyond that!
This is precisely the reason I picked-up an ergodox  when my wrists started to hurt from `ctrl+whatever` key combos. moving modifier keys to the thumbs is so obviously superior I'm not sure why it's not more common.
admittedly it felt ridiculous to pay ~$250 for a keyboard (thanks, ebay), but now i almost never have to contort my wrists into weird angles &
The trick I've found (I don't remember where) and used ever since is to map the "kj" sequence to <Esc>, since it's otherwise unlikely in normal text. It's just a simple instruction in the vim config:
:imap kj <Esc>
That foot pedal is a cute project though.
Two USB ports and controllers just to press I and escape? Crazy.
I do play the organ and drums and have been most of my life, so maybe that's why the idea of having additional keys available via pedals is right up my alley :)
The ergodox does precisly that and supports up to 32 layers.
Yes I overheard a conversation between two guys once where one talked about using a hardware pedal with Vim and the other jokingly replied “are you going to install a steering wheel and a gearshift also”.
But in all seriousness I think a good pair of pedals could potentially be nice.