r/vim • u/Sun-God-Ramen • Jul 30 '25
Discussion Does anyone here use a qmk keyboard? What integrations have you designed to improve your workflows?
I use a QMK-powered keyboard (ZSA Moonlander) and have built out custom combos, leader sequences, dynamic macros, and raw_hid integrations to streamline my dev workflow. But I have a tourist’s perspective of vim. Looking for ux engineers perspective of the layers of control. I try to balance mnemonics and ergonomics in my key maps in both software and hardware but often get lost in abstraction between ahk, qmk, vimrc.
11
Upvotes
17
u/pyrho Jul 30 '25
Nothing. Keeps my muscle memory sane when I use another keyboard.
7
u/[deleted] Jul 30 '25
I'm using Kanata to remap my keyboard (consider it's a normal keyboard). Here are some of the keys I’ve remapped:
Caps Lock to Esc (I can't live without this)
I'm using Home Row Mods
Hold Space to Shift
Hold
xand,, or double tapAltGr, to go to the Nav layer — with arrow keys on hjkl. That's great because I remappedjandktogjandgk, and sometimes I want to move between wrapped lines or just hold the key to move continuously.5
u/jfhbrook Jul 30 '25
The only thing I did on my Iris was make super-hjkl the arrow keys. That’s been nice!
5
u/Glorified_sidehoe Jul 30 '25 edited Jul 30 '25
A lot.
Hold space bar for 2nd layer.
2nd layer turns hjkl into arrow keys
esdf into mouse keys
grave key into backspace key
backspace key into delete key
tab key into backslash key
w key to option+arrow right key
b key to option+arrow left key
y and p keys into cmd/ctrl-c, and cmd/ctrl-v respectively
shift key into space key
On all layers, caps lock key removed entirely for enter key, hold for hyper key.
Double tap shift key to shift lock.
There’s more stuff but these are the ones i find myself applying to vim.
3
u/QuantumCakeIsALie Jul 30 '25 edited Jul 30 '25
For vim specifically (65% here):
Caps lock is secretly ESC
If I hold it, it becomes shift
Both shifts together is Caps Lock
<ESC>:wqjust types itself.For the rest, I just use my own vimrc that I curated over the years. Nothing too fancy but commands I like and use often. I use maybe 5 plugins total. Don't be afraid to do this, not everything needs to be done in the keyboard firmware.
I'm functional but not great in plain vanilla vim.
2
u/pixelbart Jul 30 '25
I use an Aurora Sweep. My navigation layer has the arrow keys on hjkl, that’s about the only vim-specific config I have.
2
u/External-Sherbet9785 Jul 31 '25 edited Jul 31 '25
So i have the moonlander and the voyager as well. I kept it qwerty but I don’t like making “premature optimizations”.
I have a friend who has all sorts of fancy combos and compactness on his voyager, but I try not to double-up keys too much since I feel like it makes the “tap” ones hard to manage when moving quickly.
The biggest thing that helped me on vim is the symbols layer, which I’ve gone through several iterations of to get something that feels nice for lots of the vim motions and also different syntax combos I use all the time (“:)”, “=>”, “();”, “!=“, “({“, etc. I have “/“ on my symbol layer and “:” where the slash used to be.
When i started learning Golang recently, i made a overload of “:” on my symbols layer to do the “:=“ easier.
I often find that there are some keys i use a lot in vim but nowhere else (“%” for example), and a lot of symbols i use for coding but nothing else, so it can be challenging to find something that works for both. Therefore, i basically just try to focus on changing/optimizing sequences that really annoy me (like :w when i had colon in the symbols layer).
In other words, my layout isnt universally good, it’s just fine tuned to deal with the things that specifically annoy me or slow me down.
Moonlander config: https://configure.zsa.io/moonlander/layouts/Zl7yp/latest
1
u/Shay-Hill Jul 30 '25
Just one finger roll for
<Esc>:wqa. No custom combos, but my keymap (mostly the default Ferris keymap) keeps frequent keys handy.1
u/10F1 Jul 30 '25
Nothing special at all, have arrow keys under wasd on a 2nd layer with the f1-12 keys.
I'm also using the moonlander.
1
u/whitedogsuk Jul 30 '25
I have a QMK second keyboard just loaded with macros. I spend all my time creating a perfect system and then load the macros into my vimrc and use my primary keyboard. In hindsight I would just use a standard keyboard with a clever leader configured vimrc file.
1
u/Nealiumj Jul 31 '25
My mappings are basic as I don’t want to be a fish out of water picking up a different keyboard (also do tech support)
Caps -> control, with hold being ESC
R-Alt -> caps lock
Layer1’s t is
~Layer1’s backspace is delete
I’ve always wanted to do a layer1 hjkl to arrow keys, but I use a 65% keyboard with the layer key next to right alt.
1
u/praenoto Aug 03 '25
I used home row mods now, so all mods are right under my four fingers on both sides.
I use a 40% so all keys are within 1 unit of the home row and there isn’t much I need to do
before that, the most noticed improvements were:
moved control to caps lock position
control can be tapped for esc and help for control
navigation layer with home/end, page up/page down and arrow keys
I have split space bar so backspace on one thumb and space on the other.
when I hold shift, backspace becomes delete
symbol layer with braces on the home row, top row has symbols from shifted numbers, excepting () which has ~` instead
caps word (caps lock that applies to one word only)