Caps lock as a layer key, or: arrows under your fingertips

One of my most popular posts is Embracing Colemak’s caps lock as backspace from 2016. I need to set the record straight because I moved away from that setup a few years ago: these days, I use my cap locks key as a toggle for my navigation layer. Primarily, that means that I have arrow keys more easily accessible.

What’s a navigation layer?

I still agree that caps lock is an under-utilized key: I rarely need to write a section of text in all caps, but it’s right there under my pinky finger. I use it to toggle a layer on my keyboard that I call my navigation layer. While most of my keyboards do have dedicated arrow keys, I find it more efficient to have the keys under my fingers while typing. While I like the arrows on the “jkli” keys, which forms a “t” shape, there are a number of variants available, for example arrows on the hjkl keys known from Vim, or the Miryoku layout.

Here’s what my navigation layer currently looks like – the arrow keys are consistent, but the rest adjusts depending on the keyboard and current interests. I’m not sure about the page up/page down, for example, but I’m trying it out.

I call this a navigation layer, but really it’s just another layer on my keyboard (just like pressing shift allows access to capitalized letters). 

There are a few different ways to achieve this approach.

Modify your keyboard’s software

Because I enjoy tweaking my keyboard layout to suit me (for example, Colemak, but also this kind of navigation modification), I only buy keyboards that have the ability to flash the keyboard layout. This is usually done via QMK, VIA, or through a proprietary tool such as ZSA’s Oryx. The advantage is that the change is done on the keyboard: if you move that keyboard to another machine, the changes will persist.

So why would I buy keyboards that do have dedicated arrow keys? While it’s more efficient to have arrow keys quickly available while ten-finger typing, there are plenty of times that I just need to reach out and scroll down a page. Arrow keys are more accessible at that point, and offer more options. Also, I like them better for gaming – when I don’t just create a new keyboard layer for gaming.

In one of these tools, either modify an existing layer or create a new layer. On your base layer, set the caps lock key to switch to that layer. In this case, I’m using MO(4) to momentarily turn on layer for – I could use TO (turn on when pressed) for the same result. Program your layer however you see fit.

Here’s what my base layer looks like, using Colemak on a Keychron K6 Pro.

Caps lock as a layer toggle

Windows

This is particularly helpful if your keyboard isn’t programmable, or if you’re working with a laptop keyboard. Note that these changes will affect all keyboards used on this installation because it’s a system-wide change.

There are a bunch of ways to do this but I found the fastest to be the TouchCursor app. It looks dated but it works just fine – I tested it in Jan 2024 on Windows 10. I preferred this to options such as Sharpkeys because it did exactly what I wanted quickly.

MacOS

This is particularly helpful if your keyboard isn’t programmable, or if you’re working with a laptop keyboard. Karabiner-Elements is a tool that lets you modify keyboard input and supports profiles so that each keyboard (for example, the laptop keyboard versus an external keyboard) can be managed separately.

To use:

  1. Install Karabiner-Elements
  2. Import the complex modification rule Hold CAPS LOCK for ijkl arrow keys (Anne Pro 2)

Karabiner-Elements has a bunch of modification rules if you’d like to try other options.

Linux

I don’t have personal experience with this because I only access Linux through a physical keyboard which is already programmed to my preferences. However, this looks like a good approach: Using Capslock + hjkl as arrow keys on Linux

Photo by Jay Zhang on Unsplash

One comment

Leave a comment