this post was submitted on 30 Oct 2024
38 points (97.5% liked)

Arch Linux

7783 readers
22 users here now

The beloved lightweight distro

founded 4 years ago
MODERATORS
 

I'm excited to introduce Keyshift, a performance-focused and easy-to-configure keyboard remapping software that I've been developing. I've been using it for some time, and I'm really happy with the results!

A layering software allows you to create your own Fn key equivalents. You can also have multiple of them.

With Keyshift, you can do the following and more:

  • Remap Keys: Use --config="A=B" to remap A to B, or --config="A=B;B=A" to swap keys.
  • Layer Keys: Try --config="CAPSLOCK+1=F1" to layer keys easily.
  • Layer Keys with Original Key Intact: For example, --config="CAPSLOCK+1=F1;CAPSLOCK+nothing=CAPSLOCK" keeps the original key functional.
  • Surround Keys: With --config="^LEFTSHIFT=^LEFTSHIFT;LEFTSHIFT+ESC=GRAVE;LEFTSHIFT+*=*", you can type "~" using Shift+Esc.

Full call example -

sudo keyshift --config "A=B;B=A" \
  --kbd /dev/input/by-id/usb-ITE_Tech._Inc._ITE_Device_8910_-event-kbd

You can also create a config-file with all mappings, which is the recommended way to use it. You can add this to your startup (or udev if you want) to make the mapping permanent.

The main difference from KMonad is Keyshift's focus on performance and a newer remapping syntax.

I invite you to give it a try and share your feedback!

AUR: https://aur.archlinux.org/packages/keyshift

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 4 weeks ago (1 children)

I'm a happy user of input-remapper (AUR). I use it to replace PageUp/PageDown with Home/End keys on my Laptop. How does your tool compared to that?

Feedback: Can you add an example systemd service? Or it would be even better if the PKGBUILD would install it, I've seen a lot of software which adds a disabled service, so you just have to enable and start it.

[–] [email protected] 1 points 4 weeks ago* (last edited 4 weeks ago)

Thanks for sharing your experience with input-remapper—glad to hear it’s working well for you! I wasn’t familiar with it before, but after looking into it a bit, here are some initial comparisons:

  • Performance: Keyshift is built in C++ with an emphasis on being as lightweight as possible, especially for gaming or performance-sensitive scenarios. In contrast, input-remapper is in Python, and KMonad uses Haskell. Each has its own strengths, but Keyshift focuses specifically on runtime efficiency.
  • Capabilities: Keyshift is more than a remapping tool—it’s designed to let users create layered key functions. For instance, you can set up configurations like CAPSLOCK+1 = F1 or DELETE+BACKSPACE = VOLUMEUP, making it easy to define combinations similar to a laptop’s Fn key functionality with added flexibility. I’m not sure if input-remapper offers something similar, but would be interested to hear more!
  • GUI: input-remapper has a nice GUI, while Keyshift is config-driven. Here’s a quick example to give you a sense of how the config looks.

If input-remapper meets all your needs, there’s no reason to switch, though I’d still love any feedback if you decide to try Keyshift.

Feedback noted on the systemd example—I’ll include it. On installing a service in PKGBUILD, since it requires a keyboard device, I’ll need to rework it a bit—opened an issue here. Thanks again for the insights!