Why another text expander?
Most Linux text expanders were built for X11 and break, or need raw keyboard access, on Wayland desktops. WayExpand is written for Wayland from the start, with input-method, libei and wlroots backends, and a setup flow that picks the safest input path your desktop offers. It never grants raw keyboard access on its own.
Features
- Matcher preview: try your snippets as you type, using the daemon's own matching engine, before any desktop setup.
- Quick-insert picker: bind
wayexpand-gui --pickerto a shortcut, type a few letters, press Enter. - Whole config files from templates:
wayexpand new playbookasks for the host group and writes a ready Ansible playbook. Dockerfiles, Compose, Kubernetes, systemd units, nginx sites and CI workflows are built in. - Safe by design: matching pauses in password fields when the desktop reports them, command snippets run without a shell under timeouts, and errors never echo your snippet text.
- Bring your library: import Espanso YAML, edit in the GUI, the terminal UI or plain TOML, and roll out team snippets with fleet policy.
Install
On Ubuntu 26.04, the experimental daily package is in the PPA:
sudo add-apt-repository ppa:cyberducttape/ppa
sudo apt update
sudo apt install wayexpand
Experimental .deb, .rpm and archives for x86_64 and aarch64 are on the releases page, or build from source with Rust 1.92 or newer:
git clone https://github.com/cyberducttape/wayexpand
cd wayexpand
./scripts/install-user.sh
wayexpand-gui
Then run wayexpand doctor to see what your desktop supports.
Desktop compatibility
Wayland backends are available, but compositor support varies and no compositor is certified yet by automated end-to-end tests. App-specific snippets need focused-window tracking, currently only on KDE Plasma; elsewhere they fail closed. Packages are experimental builds that pass CI but not real-desktop certification. Check wayexpand doctor on your own session before relying on it.