After a long time of fiddling around with my keyboard, I think I've found a way of flow where I'm satisfied with it. And I like to share it with you.
It's entirely focused on the home row of the keyboard: (https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/QWERTY-home-keys-position.svg/2000px-QWERTY-home-keys-position.svg.png
First, I have an autohotkey script. With autohotkey, the capslock is remapped to Control key. On my keyboard, it happens that the capslock is on the same row as the letters 'ASDFGHJKL;'.
When I press 'C-f', it will send 'C-f'. But when I press 'Control' only, it will send the key '[f9]'. Why I choosed that key? It one of the most less used keys, I guess.
And I have bounded that key to a prefix. So it will looks like this:
'(define-key evil-normal-state-map (kbd "C-f") 'foobar-1)'
'(define-key evil-normal-state-map (kbd "<f9> f") 'foobar-2)'
Press 'C-f' simultaneously for 'foobar-1', or roll with 'Control' and 'f' for 'foorbar-2'.
But there is more. With the the package key-seq(https://github.com/vlevit/key-seq.el
) I extended my workflow.
So when you're fast:
'(key-seq-define evil-normal-state-map "fl" 'foobar-3)'
But when you're doing it normally,
'(define-key evil-normal-state-map "fl" 'foobar-4)'
Usually it will look for the character 'l', after pressing 'f', but you get the idea.
- Ok, what now?
It's all the same key 'f', but with 4 different dimensions.
If you're wondering what I achieved with, on the first sight, a quite complex setup? I do not need to move my fingers from the home row, which is really comfortable. er. I can achieve it with the same key, because every key on the keyboard have 5 possibilities without pressing a row of keycombinations now. You'll get accustomed to this workflow.