Chords or some other idea to move the backspace closer to the middle

Hi! I just got my UHK today and I’m sitting here in the middle of the night and getting aquatinted with it.
It is a real beauty and it really feels great to type on. I have just a really really small issue.
I do type fast, but sometimes I am prone to misspell or just type before I think so I have to delete and rephrase it. And this is were the backspace comes into play.
My fingers are too small to actually reach the backspace key comfortably without moving my hand a lot.
I know, I could put it on another layer and solving it in this way, but right now the keygboard is a novelty and I’m not really sure what I want to keep and what I want to change of the default settings.
And without going into a discussion if it should be called ifChord or IfSequence I just want to know:
Is there a way to make the backspace key trigger when I simultaneously press the keys ‘u’+‘I’+‘o’ (on a Qwerty-rig) ?
If it is not possible to do this I will gladly solve it with a layer. I just had to ask to see if there is a way to make this work.
Cheers and thanks for a GREAT keyboard!

Sure!

Bind this on your u key:

ifShortcut i o final holdKey backspace
holdKey u

Above is order sensitive: it will trigger only for u+i+o, not for say i+u+o.

If you want it to work for any order, you will need to add the anyOrder option (which will however take care only for order of i and o, but u still has to be pressed first), and bind the corresponding variants on all three letters (so that the macro is activated on the first key of the chord in any of the three cases):

// u key
ifShortcut anyOrder i o final holdKey backspace
holdKey u
// i key
ifShortcut anyOrder u o final holdKey backspace
holdKey i
// o key
ifShortcut anyOrder u i final holdKey backspace
holdKey o

P.S.: I assume that in ‘u’+‘I’+‘o’ you mean standard lower-case i. Otherwise please clarify.

2 Likes

Thanks a million!! This was exactly what I was looking for.
Just to hammer the three keys u+i+o in any order and still get a backspace (and you were absolutely right I was aiming for the lower-case ‘i’ but the darned autocorrect thought that I might be a briton or a yank and changed it so kindly for me :stuck_out_tongue: )

Just to still my curiosity, are there any better ways of bringing the backspace ‘into’ the middle of the keyboard? Are there any drawbacks to do it my way with a three-key-press that I don’t know about?

I was using a ferris sweep with a ISRT layout and that was really great. As long as I only used that keyboard. However the world normally don’t have 30-keys keyboard with a strange esoteric keyboard layouts so I ended up jumping back and forth to normal qwerty which was to taxing.

Again, thanks for the help. You guys are awesome!

Are there any drawbacks to do it my way with a three-key-press that I don’t know about?

Well, it causes a delay when using them normally.

Also I guess this way makes it somewhat difficult to tap the backspace multiple times… That could be improved using the noConsume option, holdLayer and consumePending

Something like

ifShortcut anyOrder noConsume u o final {
    consumePending 1
    holdLayer fn2
}
holdKey i

and bind backspace in the fn2 layer on all three keys, so that you pres u+i+o, then keep holding the first key of the chord and just tap one of the other two repeatedly.

Just to still my curiosity, are there any better ways of bringing the backspace ‘into’ the middle of the keyboard?

There are numerous ways. “Better” ways are more tricky.

You can bind things to holds, doubletaps, secondary roles, layers… You can also bind your right side module so that swiping it to the left/right produces backspace/delete events. You can create a vim-like modular setup out of multiple layers or keymaps. You can add additional layers (fn2-fn5) so that you don’t have to modify your current layers, but have enough space to add bindings. You can find some inspiration in the My configuration - UHK forum section, e.g., my own keymap in Setup: Mirroring, runtime macros, thumb trackball, etc (I have backspace on mod+p and mod+tab, which admittedly is not extra comfortable and I am now wondering why I don’t bind them on mod+y/t instead so that they are not on pinky…).

Edit: actually I already have the mod+t and mod+y bindings, the other thread is just not up to date and I have forgotten about those bindings…

2 Likes

Another option to consider is using the key cluster module Key Cluster Module - Ultimate Hacking Keyboard. By default the three additional keys are bound to Del, Back and Enter. I do use them a lot.

1 Like

I have Backspace as a primary tap on CapsLock (‘Mouse’ on the original UHK keycaps). That’s not necessarily closer to the middle, but definitely closer to where I can easily reach it. Left pinky, quick tap to the left of the a key.

This is also where standard Colemak puts the Backspace.

Quote from the inventor of Colemak: “Even if you decide not to learn the layout, I recommend remapping the Caps Lock key to Backspace. That change alone results in a 15%-20% reduction of finger distance on QWERTY. After experiencing the difference perhaps you’ll be more motivated to learn an alternative layout.”

1 Like

There are many ways to do that. It depends on how you want to configure the UHK in the end.

I have it on my mod layer, which is triggered with the left or right space key (while hold, tap is space). I have an extra key to delete whole words as well. That works very nice for me. I also have Enter in that layer (i-key) and do not use the main Enter key while touch typing. Finally ESC is the mod key itself. So holding the right space key and tapping the left will trigger ESC and vice versa as well. :smiley:

2 Likes

Oooohhh!!! I like this!! I see a lot of smarts here. You are no newbie when it comes to this, Sir!
May I be so bold and ask what treasures lies hidden under the other layers?

I am just in the process of documenting my setup and layout in Github which includes documentation about layers and functionality, and you can also find my actual configuration files there – including my UHK config.

Some of it is work in progress, and I keep adding info every week or so.

1 Like

Awesome, man! You’re the greatest! I will jump there right away and just get overwhelmed with ideas.
Cheers

I just want to say that this is a great community. It just took short time and I got multiple answers, suggestions and tips on how to think and solve this!
THANK YOU, GUYS!
You are the greatest!

2 Likes

There’s a better way - as usual key. I will provide my fresh setup later.

1 Like

‘Better’ totally depends on your goals, wishes and typing habits. But we are sure curious to see your latest layout. I was travelling very much and super busy and ill in between, but finally think will get to posting my latest layout as well. There are always cool ideas to pick up from someone other, looking forward to see your solution! :slight_smile:

1 Like



So I basically never reach anything outside 26 + 2 keys (backspace and esc).
Ctrl + key = hold G (or V) + key
Shift + key = hold M (or U) + key
Ctrl + Shift = hold both G + M (V + U)
and etc…

,.=_$ = hold T + key or right side of home row
and etc…

arrow left / right / … = hold Mod key + iaeoh (hjkl on usual keyboard layout)

@likern Goodness! It’s quite thought through. At the same time, it’s very different.

Two questions:

  • how long did it take you to learn this? (I guess it evolved over years.)
  • what do you do if you don’t have your UHK with you? (e.g. Laptop, other Computer…)

If we are talking about my Carpalx - keyboard layout optimizer layout it took pretty decent amount of time. I initially changed alphabet layout without any other changes. But since I’m a software engineer and use a lot of Ctrl / Shift / Alt / Combinations and non-convenient . , : ; () [] {} etc I started experimenting with these modifications too.

I tried many very different approaches and designs, but it didn’t work quite well. For example using some key to change layer to type . , : ; () [] {} etc very slow for just one such key (which is most of the time) and you have to type 3 keys - <enter mode key> <key> <leave mode key> which is very annoying. Also it reqired a lot of cognitive load to use nested layers or layer which might go to another layer (not main). Design took several years - right starting from UHK arriving. But you can just take it as is, saving these years :))

First, my design is not about speed. In reality I don’t care about speed at all (staring at 100 lines of code whole day :)) ). It’s about comfort. If you have finalized design - learning it is now the least problem.

In reality I have never ever was in need to use some others keyboards. But I’m russian and as you can see there is no russian layout :))) - because there is no carpalx for russian and I don’t want to learn russian non-ergonomic layout and later to relearn.

So for Russian I use just separate convential keyboard. No problem at all. I type pretty fast both english and russian on it, including non-alphabet symbols. I just have to look at keyboard. Thus you could use your laptop without any problems. But of course for most cases I would take my keyboard with laptop. That is the reason I want new products from UHK - more portable keyboards, 40-keys, etc. etc.

But again even using laptop in non-standard places (neither office, nor home) like in coffee shop, etc. are pretty niche.

I’m intrigued by your idea of chording and would very much try to use something similar for typing words. The backspace idea is great and it seems like it could sonewhat easily be applied to be able to chord the words “deployment” and “download” like so:

// d key
ifShortcut anyOrder p l final write "deployment"
ifShortcut anyOrder n l final write "download"
holdKey d
// p key
ifShortcut anyOrder d l final write "deployment"
holdKey p
// l key
ifShortcut anyOrder d p final write "deployment"
ifShortcut anyOrder d n final write "download"
holdKey l
// n key
ifShortcut anyOrder d l final write "download"
holdKey n

Now this obviously begs some questions:

  • Is there any simpler way to define these types of chords? There would have to be to make this viable.
  • How would you go about managing a larger dictionary of chords/words? This would probably require a whole new interface inside the Agent.
  • How would capitalization of only the first letter of a chord work (holding shift with the chord will capitalize the whole word)
  • How would writing whole sentences work, i.e. handling of spaces and punctuation.
  • basically, is there any reason why the UHK couldn’t act as a proper Chorded Keyboard and be able to do exactly what, for example, the Characorder Lite can do?

I agree, the UHK configuration of chords is overly complicated.

Feel free to comment on my brainstorming in Chorded Escape (`q`+`w`) - example configuration & feature brainstorming

For that type of often used words I think a solution like Autohotkeys hotstrings or another SW solution will likely be easier to maintain and also IMO makes more sense, because it does not interrupt the typing flow, which a chord will do to some extent.