[GUIDE] Customizing keyboard layout at software level on the Framework Laptop

I have spent time customizing my keyboard layout on my Framework Laptop 13. And I see it’s a very fun activity. So, I created this thread for the topic of the customized keyboard layout at the software level on Linux/*BSD.

  • I want to focus this thread on only the Linux/*BSD OS use cases. If you want to discuss on Windows use cases, please create a new thread.
  • I want to focus this thread on software-level customization. If you want to mainly discuss QMK/ZMK, the firmware level keyboard layout customization, or the hardware level keyboard layout customization, please create a new thread.

Here I wrote a document about my software-level keyboard layout customization using Sway window manager and Mouseless. I hope you enjoy the document.

I am also interested in trying KMonad.

Please let me know how you customize the keyboard layout at the software level on Linux/*BSD.


Kmonad surely is great, however one critical (for me) qmk feature that is still missing is key combos.

1 Like

Nothing to add as @junaruga did a marvelous job as always. :slight_smile:

I’ll mark this as a wiki. In the title, marking this as a guide for the sake of topic flow.

1 Like

It’s good to know you experienced Kmonad. How is the mouse emulation? Mouseless provides the following setting for acceleration and deceleration and different speeds.

The following setting to control mouse speed is my favorite. I can control the speed with 2x (holding the “a” key), 1x (default), 0.5x (holding the “s” key), 0.3x (holding the “d” key), and 0.1x (holding the “f” key) on the mouse keyboard layout layer.

Sure! Thank you.

1 Like

I have actually never tried mouse emulation. I mostly use software that does not require mouse interaction: AwesomeWM tiling window manager, neovim, and vim keybind plugins for the browser.
In the cases where I do need a mouse, my trackpoint/trackpad does the job well enough.
Maybe that’ll change once I get my framework since that doesn’t have a trackpoint option.