Mac-style layout switching for GNOME Linux

A lightweight background service to switch layout behaviors: tap Left Control to set English, and tap Right Control to cycle other layouts. Fast, native GTK4 config, Wayland-ready.

GnomeLngSwitcher
GnomeLngSwitcher User Interface Mockup

Quick Install

Deploy layouts switcher daemon directly via terminal

bash Terminal
$ wget https://github.com/OleksiyM/LinuxLngSwitcher/releases/latest/download/gnome-lng-switcher-x86_64.tar.gz
$ tar -xzf gnome-lng-switcher-x86_64.tar.gz
$ chmod +x gnome-lng-switcher
$ sudo usermod -aG input $USER
$ ./gnome-lng-switcher

Designed for GNOME

A native, responsive system-wide background utility designed with Libadwaita styling principles.

Left/Right Control

Standalone taps switch layouts instantly. Standard Control modifier operations (like Ctrl+C / Ctrl+V) are preserved and function as usual.

Wayland & X11 Native

Fully compliant with modern Linux display servers. Listens directly to `/dev/input` events, avoiding limitations of window managers.

GTK4 / Libadwaita GUI

An easy-to-use native settings interface that adapts to light/dark themes. Save config directly or schedule service auto-start at login.

Setup Guide

Follow these quick configurations steps to get layout switching running on your workstation.

Install Required Libraries

Make sure you have GTK4 and Libadwaita development packages installed on your Linux system:

  1. Ubuntu / Debian:
    sudo apt update && sudo apt install -y libgtk-4-dev libadwaita-1-dev build-essential pkg-config
  2. Fedora:
    sudo dnf install -y gtk4-devel libadwaita-devel pkgconfig

Grant Keyboard Event Access

To capture standalone control keys, the utility needs read permissions for keyboard events in `/dev/input` without requiring `sudo`:

  1. Add your user account to the system input group:
    sudo usermod -aG input $USER
  2. Log out of your desktop session and log back in (or reboot) for the permissions to take effect.

Enable D-Bus Layout Helper

Modern GNOME Shell blocks programmatic layout switches by default. We install a tiny GNOME extension helper to act as a bridge:

  1. Run GnomeLngSwitcher settings: ./gnome-lng-switcher
  2. In the Access & Daemon Status category, find GNOME Extension Helper and click "Enable Helper".
  3. Log out and log in once more to load the GNOME Shell helper extension into session memory.

Start Layout Switching Daemon

Run the app settings window again to start the daemon process and toggle preferences:

  1. Launch GUI: ./gnome-lng-switcher
  2. Ensure all status indicators show green (Accessibility Access and GNOME Extension Helper are active).
  3. Configure layout assignments for Left and Right Control keys.
  4. Click "Start Daemon" to activate background keyboard interception.
  5. Toggle "Launch at Login" if you want layout switcher to launch silently during PC boot.