The GNOME Input Daemon
The GNOME desktop environment on Ubuntu uses a modular background service called the GNOME Settings Daemon (GSD) to handle hardware interactions. One of its specific plugins is gsd-keyboard. This daemon is responsible for applying your specific keyboard layouts, managing keyboard shortcuts tied to the GNOME shell, handling typing accessibility features like Bounce Keys, and ensuring that custom input methods (like IBUS for international languages) integrate properly with the graphical session.
For standard desktop users, this daemon is critical; without it, your custom keyboard shortcuts might stop working, and switching between languages can break. However, if you are running a specialized Kiosk machine where users are not allowed to use keyboard shortcuts, a headless server running a minimal VNC session where input is handled entirely by the remote client, or if you prefer to manage all your xbindkeys and input settings manually via X11/Wayland configs rather than through GNOME, gsd-keyboard can be an interfering nuisance. In these advanced edge cases, you might want to disable it.
How to Disable the Gsd-keyboard Service
Because gsd-keyboard is a dynamically loaded plugin rather than an independent systemd service, you cannot disable it with systemctl stop. You must prevent the executable from running.
Warning: Disabling this will break GNOME-specific keyboard shortcuts, layout switching, and keyboard accessibility features. Proceed with caution.
- Open your Ubuntu Terminal.
- To disable the plugin by removing its execute permissions, run the following command:
sudo chmod -x /usr/libexec/gsd-keyboard
(Note: Depending on your exact Ubuntu version, the binary may be located in /usr/lib/gnome-settings-daemon/gsd-keyboard).
- Restart your machine, or log out of your current session and log back in.
GNOME will no longer load its native keyboard manager, forcing the system to fall back on lower-level X11 or Wayland input handling.