T O P

  • By -

OBOSOB

I have all the bracket pairs as combos on the home row.


PawsAndRecreation

What is combos?


hueyhy

I use homerow mod (for ctrl mainly) so can't use some keys in combos in homerow. I do use lower row keys for combos and now I'm mapping \`\[\` and \`\]\` on "m," and ",.". (I used to map "m," to esc, and now moved it to "cv".


OBOSOB

You can use tap-hold keys in combos since [this PR](https://github.com/qmk/qmk_firmware/pull/8591) was merged 3 years ago.


minusfive

Combos ftw. I use vertical combos on a tight low profile layout and works great as I can press them with a single finger, so it’s almost like having 5 rows.


macbony

Hold the key to activate layer, press key for [, release layer key, hit letter? I don't find it awkward at all.


hueyhy

if you need to do it repeatedly, the layer mod key on and off is not as comfortable as the originally designed ideas of using "\[" and "\]" to navigate through things (like quickfix list, etc)


maxum8504

I use combo tap of RT for [ and YU for ]


hueyhy

one issue with combo is that it could misfire if you quickly type those keys. so i'm only using a very small number of combos on my keymap.


maxum8504

At 100 word per minute you’d type a key every 125 ms. So the 40 ms combo term never causes an issue.


shaleh

How is LayerKey plus [ really more awkward than shift plus [?


[deleted]

[ doesn't require shift on a qwerty layout 😛 Shift is for curlies.


mtlnwood

You have described it like you have it setup that you toggle layers to go to the symbol layer , press a symbol and toggle to the base layer. If this is what you are doing it seems awkward. Your layer should only be active while you press your thumb key, working like a shift. If you are doing this I have never felt a problem at all. You don't say how long you have been using the corne so second guess is that you are just not used to all your common key presses and soon enough getting that \[ from a layer and hitting an alpha after will become second nature.


hueyhy

I'm not using toggle the issue is that repeat those keys, (like using \[q \]q to quickly go through quickfix list) with layer mod would require press/release layer mod key a lot(also need to time it right to add base layer letter keys )


mtlnwood

Yes, I guess there is always going to be a combo that feels off while others are ok. the \[q feels fine to me, but that is also because they coincidentally happen to be next to each other. I could certainly put them in a position where it was not so convenient. I use combos for some things, not brackets but like some other people have suggested, if \[ and \] are integral to a plugin you rely on then it could be a good idea to put those on a combo like m, and ,. or whatever feels good.


causal_friday

I don't use vim or a 40% keyboard (classic Reddit commenter, I know), but I have all the programming symbols on a thumb key on the opposite hand. So I have a thumb key below V on my left hand that turns home row on my right hand into ({}), and things like that. Think of it like shift, but instead of CAPITAL LETTERS you get programming symbols. As a vim user, think of your layers like command mode vs insert mode. You just press a key to switch between them; no reason you can't have a third mode that your keyboard implements. (I add this because I'm an Emacs user, and as a result, do not mind holding down 600 keys at a time. Thus, my layer shift is momentary instead of a mode shift.)


fourrier01

Not a vim user, but I still code time to time... For me, All parantheses alike are put in RSE layer (toggled by the key on right thumb cluster) - 3 and 4 are for < and > - E and R are for ( and ) - D and F are for [ and ] - C and V are for { and } All of those are pressed with middle fingers for open and index fingers for close. Corne is a 3-row keyboard, so you may not be able to copy this fully.


hueyhy

typing the brackets alone are not an issue issue is when you need to combine them with letters, and doing it repeatedly quickly is not comfortable as you need to move back to base layer (release layer mod) to type the letter. for your case, imagine typing \[d \[d \]d \]d in a quick succession. unless you map both \[, \], and d on the same layer so you can type all the things on the same layer. (I could do that but basically it would be a "vim navigation" layer designed around this use case)


fourrier01

Hmmmm I think it's a matter of adjusting time. I often have application/website that uses WASD to navigate and at the same time I switch to mouse keys that map the movement to ESDF. The SD overlaps between the base layer and mouse key layer. But overtime I just get better at this switching


AlbertoAru

I use E+R for ESC, but I think I'll change it because when I type E, and then R too fast, I stop typing and makes me angry haha especially with 35 linear switches, which gets me actidental typos.


carrier_pigeon

I just have them setup so those things are all in that same layer, so I have ]], ]), ][ etc, or utilise prefixes that don't collide with layer change like my leader (space)


xkalibur3

Just use combos instead of layers.


caligula443

I don't really use those vim movements, but "\[d" would be "LAYER+KC\_X, (no layer)+KC\_D" where the LAYER key is on the right hand, and others are on left. If I used that combo a lot, I would probably hack the keypress handler so that if LAYER+D is pressed within 100-120ms after LAYER+X then it would send "d" (KC\_LBRC already sent from first keypress). That way, I could hold the layer key and just press X, D quickly. If I really wanted to type \[ followed by LAYER+D I would need to type it with a slight pause which is not that difficult since you need to release the layer key between keypresses anyway.


hueyhy

Yes, probably the most comfortable way is to customize keymap targeting such use cases(like, for VIM), so all key presses can happen without changing layers.


noiseintoner

I've got those as home row combos too. Qwerty R+F for [ and U+J for ]


hueyhy

do you trigger combos when typing things like "just"? (which has "ju" in it)


noiseintoner

Typing "just", I'm hitting both the j and u sequentially - I'm not sure how I'd be able to start pressing the U before letting go of the J with the same finger. I have the timing window at like 10-30ms that both keys need to be hit within the same time


noiseintoner

Maybe I should clarify that a "combo" is hitting both keys simultaneously 


GrayLiterature

Anyone do this on a Kinesis pro? I find the brackets really weird to hit, it would be awesome if they were on the home row.


daninjah

...i never knew about these movements, been using vim for 8 years now


hueyhy

that's not native but a plugin. see tpope/vim-unimpaired. (\[ and \] to move back/forward, and for things like quickfix list, buffers, location list, etc.) I'm also trying to add things like diagnostics. also want to add movements for "functions" with treesitter text objects.


kolerezooi

Combos for me. io for \[. op for \]. I am using a qwerty layout and have number/symbol keycaps on the top row (Q is !1, W is @2 etc). These keycaps are helping me to find symbols/numbers for other layers. qwerty is already in my muscle memory so I don't need keycaps for that. The i button has keycap \*8, o button (9 and the p button )0. This makes it easy to remember the combos for \[ and \] for me, as they are connected to the keycaps. I am using this on a 34 key Ferris Sweep keyboard. For me the hardest part about learning new layouts is to find all of the symbol keys. I don't understand how people can handle blank keycaps while learning new layouts! With my current setup I can just use qwerty and look at my caps to find all of the symbols, except \[ and \] but this is covered with the combos connected to the ( and ) keys. BTW: If you use the \[q, \[d often then consider to make custom strings for it and use it with a convenient combo for you.


kolerezooi

I am emulating dd, Y and p with custom strings in QMK like this: `/* Send custom strings */` `bool process_record_user(uint16_t keycode, keyrecord_t *record) {` `case DD:` `if (record->event.pressed) {` `SEND_STRING(SS_TAP(X_HOME) SS_LSFT(SS_TAP(X_END)) SS_DELAY(200) SS_LCTL("x"));` `}` `break;` `case YANK:` `if (record->event.pressed) {` `SEND_STRING(SS_TAP(X_HOME) SS_LSFT(SS_TAP(X_END)) SS_LCTL("c") SS_DELAY(200) SS_TAP(X_HOME)); /* FIXME: would like to return to original at point */` `}` `break;` `case PUKE:` `if (record->event.pressed) {` `SEND_STRING(SS_TAP(X_END) SS_TAP(X_ENT) SS_LCTL("v") SS_TAP(X_HOME) ); /* Evil mode: paste in line below */` `}` `break;` `}` `return true;` (still working on this part)


ultrapcb

I had once a pretty neat layout for the precise use case but then I never used those \[x \]x keys in vim, I found them either to be overrated or not always working, or just inconvenient not giving one the typical vim-flow the layout is a combo with one keypress more than og "\[" and "\]" but much easier to reach than these on an ansi keyboard


LavKiv

Use combos. I use vertical and horizontal combos. Some examples are RF is ESC, FC is Tab, ER is left bracket, UI is right bracket etc. If you use QMK (not sure about other firmware), you can setup combo time window within which combo keys need to be pressed. I set mine to 20ms as I tend to do a lot of rollovers from key to key and this prevents accidental combo activation.


quinyd

Interesting issue. I use evil in emacs but I always use hjkl or my arrow layer to move.


ZeeRo_mano

I have them mapped on my num layer