Text Expander on Ubuntu 26.04 LTS: What Still Works Now That GNOME Is Wayland-Only

Quick answer: Ubuntu 26.04 LTS ships GNOME 50, and GNOME 50 removed the X11 session entirely, so there is no "log into Ubuntu on Xorg" option anymore. Any text expander built on X11 input hooks (AutoKey, xdotool scripts, most older tools) cannot see what you type in native Wayland apps. What still works is anything that reads input at the kernel level, below the compositor: Espanso's Wayland build (after a manual setcap step, and still labelled experimental by its own docs) and Lightning Assist (one "Grant access" click inside the app, no terminal). Since 26.04.1 landed on 27 August 2026, 24.04 users are being offered the upgrade, which is why this suddenly matters.
Disclosure: we make Lightning Assist, a paid text expander with a free plan. The other tools here are competitors. Everything below about them is taken from their own documentation and release notes, linked at the end.
What Actually Changed in 26.04
Three things, and only the first one breaks software:
- GNOME 50 has no X11 session. Earlier releases let you pick "Ubuntu on Xorg" at the login screen when a tool didn't work on Wayland. That menu entry is gone, and installing the X.org packages by hand doesn't bring it back, because the session code was removed upstream, not just hidden.
- XWayland stays. X11 applications keep running inside a compatibility layer. Your old X11 apps open fine. The catch is that an X11 input tool running under XWayland only sees keystrokes sent to other XWayland windows, never to native Wayland apps, and on 26.04 nearly everything you use daily (GNOME Text Editor, Files, Firefox, the terminal, Thunderbird) is native Wayland.
- 26.04.1 opened the upgrade path. Ubuntu 26.04 LTS was released on 23 April 2026; the 26.04.1 point release on 27 August 2026 is when Ubuntu starts prompting 24.04 LTS users to upgrade. That's the moment a lot of working text-expander setups quietly stop expanding.
Nothing here is Ubuntu being difficult. Wayland's design is that no application gets to watch keystrokes meant for another application. That's good for security and exactly the thing a text expander needs to work around.
Why Your Old Setup Went Quiet
A classic X11 text expander does two things through the X server: it listens to every key you press (XRecord or XGrabKey) and it types the expansion back (XTest or xdotool). Under Wayland the compositor owns both halves, and it doesn't share. So the tool starts, reports that it's running, and never expands anything. There's no error, which is why people spend an evening reinstalling before they suspect the session type.
To check what session you're on:
echo $XDG_SESSION_TYPE
On a fresh 26.04 install with GNOME this prints wayland, and there is no setting to change it.
Tool by Tool: What Works on 26.04
| Tool | Status on Ubuntu 26.04 (GNOME Wayland) | Setup required |
|---|---|---|
| AutoKey | Doesn't work in native Wayland apps. It's built directly on the X11 window tree and xdotool; XWayland doesn't help. |
None possible |
| xdotool / xbindkeys scripts | Same as AutoKey: only reach XWayland windows | — |
| Espanso (2.4.1, September 2026) | Works through its separate Wayland build (espanso-debian-wayland-amd64.deb). Espanso's own install guide still calls Wayland support "experimental". |
sudo setcap "cap_dac_override+p" $(which espanso) in a terminal, non-US keyboard layouts configured by hand, app-specific matches only on KDE |
| Lightning Assist (2.6) | Works in native Wayland apps, XWayland apps and terminals; as-you-type expansion, snippet hotkeys and push-to-talk dictation all use the same kernel-level backend | One "Grant access" click inside the app the first time; no logout |
| Browser extensions (Text Blaze, Magical) | Work, but only inside the browser | — |
| GNOME itself | No built-in text expansion. Keyboard settings can remap keys and set shortcuts, not expand text | — |
The two that work do it the same way: they read /dev/input (evdev) and type through /dev/uinput, one level below the compositor. That's why neither cares whether you're on GNOME 50, KDE, or Sway. The difference is who does the setup: Espanso documents the terminal command and leaves it to you; Lightning Assist asks for the permission from inside the app and applies it to your current session immediately, so you don't log out and back in.
If you're on Espanso and it stopped after the upgrade, the fix is usually the setcap step plus making sure you installed the Wayland package, not the X11 one. We keep a full walkthrough in Espanso Not Working? 9 Fixes, fix #9.
Setting Up Lightning Assist on Ubuntu 26.04
The whole thing is about two minutes.
1. Install the .deb. Download it from the downloads page and install it with apt rather than by double-clicking, which on recent Ubuntu often fails silently:
sudo apt install ./lightning-assist_*.deb
The package registers the uinput kernel module and a udev rule for it during installation. If apt complains about the file, our .deb installation guide covers the common errors. The AppImage also runs on 26.04 (it ships its own runtime, so no libfuse2 package is needed), but the .deb is the smoother path because of that udev rule.
2. Launch it and grant input access once. On a Wayland session the app asks, once, for permission to read the keyboard, and the confirmation goes through your desktop's standard password dialog. What it does under the hood is add your user to the input group and set an access-control entry on the input devices for the session already running — which is why you do not have to log out and back in before snippets start expanding.
3. Test in a native Wayland app. Open GNOME Text Editor (native Wayland) and type one of the starter snippets from the tutorial. Then try the terminal and, if you have one, an XWayland app such as an older Electron build. All three should expand the same way.
4. Voice, if you use it. Push-to-talk dictation (hold Ctrl+Super, speak, release) runs through the same backend, so it works in native Wayland apps once step 2 is done, with nothing extra to configure. GNOME's own defaults do not claim a bare Ctrl+Super, so the two do not fight over it; GNOME does use Ctrl+Super together with the digits 1-9 to open a new window of a pinned app, so avoid pressing a number while holding the dictation chord.
Keyboard layouts are read from the session, so a German, French, Russian or Arabic layout works without a config step, and switching layouts mid-session is picked up automatically.
If You're Upgrading From 24.04 Rather Than Installing Fresh
- Check the session type first with the
echocommand above. A 24.04 machine that was deliberately set to Xorg will come back on Wayland after the upgrade, and that's the moment expansion stops. - AutoKey users: there's no configuration that brings it back on GNOME 50. Your options are a desktop that still ships an X11 session, such as XFCE or MATE (a different desktop, not a setting), or a tool with a Wayland backend. Our AutoHotkey on Linux guide covers AutoKey and the migration options.
- Espanso users: upgrade to 2.4.1, switch to the Wayland package if you were on the X11 one, and re-run
setcap, because file capabilities belong to the old binary. - Lightning Assist users: the app notices the session change and shows the "Grant access" prompt on the next launch; nothing else to do.
Frequently Asked Questions
Can I just install Xorg on Ubuntu 26.04 and log into X11?
Not with GNOME. GNOME 50 removed the X11 session code, so even with the X.org packages installed there's no session to select at login. XWayland still runs individual X11 apps, but that doesn't restore X11 input tools. Other desktops (KDE, XFCE, MATE) make their own choices; on stock Ubuntu with GNOME, the answer is no.
Why does my text expander work in one app but not another?
Because the app that works is running under XWayland, and the one that doesn't is native Wayland. An X11-based expander can still see keystrokes inside XWayland windows. As you update apps, more of them become native Wayland, so the "works sometimes" list gets shorter over time. A kernel-level backend (evdev/uinput) doesn't have this split.
Does the kernel-level approach mean the app can read everything I type?
Yes, in the same sense that any text expander on any OS has to see what you type to know when a trigger appears. On Wayland that requires explicit permission, which is why both Espanso and Lightning Assist ask for it. Lightning Assist processes keystrokes locally on your machine; what it looks for is your own trigger list.
Will this still work on Ubuntu 26.10 and later?
The evdev/uinput path doesn't depend on the GNOME or Ubuntu version; it's the kernel's input layer, which is stable. What changes between releases is the desktop's shortcut handling, not the expansion itself.
Related Reading
- Text Expander for Linux: the full Linux page, including X11 and distributions other than Ubuntu
- Text Expansion on Wayland: What Works and Why: the protocol-level explanation of what Wayland allows
- How to Install a .deb File on Ubuntu, Debian & Mint
- Best Text Expanders for Linux in 2026
Sources
- Ubuntu 26.04 LTS release notes: release date 23 April 2026
- Ubuntu 26.04.1 LTS released: the 27 August 2026 point release that opens upgrades from 24.04
- GNOME 50 removes the X11 session: what breaks on Ubuntu 26.04
- Espanso: Install on Linux: Wayland package,
setcapstep, "experimental" status and known limitations - Espanso v2.4.0 and v2.4.1 release notes