Remap Your Keyboard

CapsLock as your programmable function key without QMK

This guide is targeted for users (mostly linux, but even if you are not, you may still find some concepts useful) who don't have the luxury of remapping all the keys (like on keyboards with QMK/VIA support).

Since original CapsLock functionality is the definition of USELESS and at the same time, it takes around 1.75u of your keyboard (some keyboards have 1.0u Shift 🤯), it is obvious that this key must be repurposed.

Gnome-Tweaks provides some alternatives to the default CapsLock behavior, some you may find useful.

What I want, however, is to make it behave like a Layer (or Mode) key - similar to ZMK, QMK compatible keyboards.

Step 1. Disable the CapsLock completely via Gnome-tweaks.

First, we need to strip CapsLock from any functionality.

Gnome-tweaks -> Keyboard & Mouse -> Additional Layout Options -> CapsLock behavior -> CapsLock is disabled

This change is permanent, no need to add any hack to any .rc files. Alternatively, you can disable CapsLock with setxkbmap.

Disable default CapsLock functionality

Step 2. Assign a new combination with CapsLock via Input Remapper

There you select your keyboard, create new layout, create new input (on the left), then Record, hit CapsLock + H and select the desired combination on the right, like KEY_LEFT. It will render as VoidSymbol, that's ok.

Record your favourite combinations

Step 3. Find the best combinations that suit your needs

It's up to you now which exact combos to use. I can give you a couple of general tips as a starting point.

We all use the navigation keys, and it's important that they are available without moving your fingers too far from the home position. Usually arrows keys are located somewhere at the bottom right part of your keyboard, so this puts an additional strain on your hand everytime you need them. Some keyboards (60% and less) don't even have dedicated arrow keys at all, so you need to use sometimes even clumsier combinations (in my case, I had to hold Fn with my right pinky).


If you are familiar with Vim, you may find vim navigation keys (h - left, j - down, k - up, l - right) more convenient than the default arrow cluster.

My experience: Even though I use vim as a default text editor, I find this approach not very comfortable (but still better than arrow keys), because: 1) you still leave the home position, and 2) it's difficult to access modifier keys as the right hand is shifted too much to the left (try to reach right alt with your thumb having your index finger on the h).


Another way is to use familiar neurons dedicated to WASD movement and assign navigation keys to them.

My experience: I found this approach much more suitable for me. I feel that having navigation available for the left hand is a game changer. It's convenient in both modes: when your right hand is on the mouse and when it's on the home position.

Mouse movement

Have you found yourself in a situation when you are typing but the mouse cursor in some way hides the characters? You need to move it a little bit, but you still need to move the hand to the mouse and back to home position. Would it be nice if you could move the mouse away while not leaving the home position?

Input remapper supports assigning mouse movement to the keys. Select the target mouse and enter the command mouse(up, 5).

Assign mouse movement

I have a wasd-mirroring cluster okl; for mouse navigation, with f as a left mouse button click M1 (to be able to hold M1 with one hand and move the mouse cursor with another).

Other very convenient mouse button mappings are M4 (Q) and M5 (E) which usually (at least in browsers and IDEs) serve as Back and Forward navigation.

Whole Layout

Sharing as well my whole layout for the navigation layer. Double arrows are mouse movement. Suitable both for ISO and ANSI keyboards.

Navigation layer

I have QMK, is it still relevant to me?

Probably yes. If you have a laptop, you will benefit from having the same/similar layout as on your main external keyboard. It probably won't match 100% but will still be usable. The biggest difference I noticed so far is the mouse movement, with input remapper it's linear while in QMK it's accelerated.

I hope that was somewhat useful to you. Adjust all of that to your needs and good luck with finding layout that will boost your productivity!

/Linux/ /Keyboards/