DEV Community

Cover image for Remapping keyboard keys | keyd
Arun Krish
Arun Krish

Posted on

Remapping keyboard keys | keyd

It’s been two days since my external keyboard’s Enter button stopped working.

At first, I seriously thought about throwing away the keyboard because the Enter key is basically everything while coding or using a terminal.

Then I got a thought:

What if I could use another key as Enter?

I searched online and eventually found a lightweight solution using keyd.

In my case, I remapped:

Right Alt → Enter
Enter fullscreen mode Exit fullscreen mode

and it worked perfectly.


My Environment

  • Linux: Debian 12
  • Desktop Environment: GNOME Shell 43.9
  • Display System: Wayland

You can check your session type with:

echo $XDG_SESSION_TYPE
Enter fullscreen mode Exit fullscreen mode

If the output is:

wayland
Enter fullscreen mode Exit fullscreen mode

then you are good to follow further.


Why I Chose keyd

I wanted:

  • a lightweight solution
  • no complicated GUI
  • something that works properly on Wayland

keyd is a low-level keyboard remapping daemon that works very well on modern Linux systems.

Official project:

https://github.com/rvaiya/keyd


Installing keyd

Method 1 — Install from repositories

sudo apt install keyd
Enter fullscreen mode Exit fullscreen mode

Method 2 — Build from source

If unavailable in repositories:

git clone https://github.com/rvaiya/keyd.git
cd keyd
make
sudo make install
Enter fullscreen mode Exit fullscreen mode

Enable the keyd Service

Start and enable the daemon:

sudo systemctl enable --now keyd
Enter fullscreen mode Exit fullscreen mode

Check if it is running:

systemctl status keyd
Enter fullscreen mode Exit fullscreen mode

You should see something like:

active (running)
Enter fullscreen mode Exit fullscreen mode

Creating the Remap

Open the keyd configuration file:

sudo nano /etc/keyd/default.conf
Enter fullscreen mode Exit fullscreen mode

Paste this configuration:

[ids]

*

[main]

rightalt = enter
Enter fullscreen mode Exit fullscreen mode

Apply the Changes

Reload the configuration:

sudo keyd reload
Enter fullscreen mode Exit fullscreen mode

Testing

Now press:

Right Alt
Enter fullscreen mode Exit fullscreen mode

It should behave exactly like the Enter key:

  • execute terminal commands
  • create new lines
  • work in browsers/editors

Things I Learned During This

While troubleshooting this issue, I learned:

  • modern Linux desktops use Wayland
  • old X11 remapping tools are less reliable on Wayland
  • keyd works at a lower level using Linux input events
  • GNOME aggressively captures Super-key shortcuts. I can't even use any other shortcuts as enter because of this.

That’s why remapping:

  • Super + key was inconsistent for me,

while:

  • Right Alt → Enter worked reliably.

Useful Commands

Reload configuration

sudo keyd reload
Enter fullscreen mode Exit fullscreen mode

Restart the service

sudo systemctl restart keyd
Enter fullscreen mode Exit fullscreen mode

Stop the service

sudo systemctl stop keyd
Enter fullscreen mode Exit fullscreen mode

Disable autostart

sudo systemctl disable keyd
Enter fullscreen mode Exit fullscreen mode

Uninstall keyd

sudo apt remove keyd
Enter fullscreen mode Exit fullscreen mode

Final Thoughts

Honestly, I started this just trying to save a keyboard with a broken Enter key.

But while fixing it, I ended up learning:

  • Wayland vs X11
  • Linux input remapping
  • low-level input systems

Linux customization goes surprisingly deep once you start exploring it.

Top comments (1)

Collapse
 
arunkrish11 profile image
Arun Krish

Have you done something like this?