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?O=0&K=keyshift

  • infeeeee@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    9 days ago

    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.

    • hirak99@lemmy.mlOP
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      9 days ago

      Yes, it works on Wayland.

      Since Keyshift interacts directly with input devices, it’s independent of the desktop system, so it works seamlessly on Wayland, X11, and even in terminal environments.