autotype-rs
v1.5.1
Published
Compact Rust typing app for Windows and Linux X11/Wayland with custom global hotkeys, instant start, adjustable delay and dark/light themes
Readme
autotype-rs
Compact Rust typing app for Windows x64 and Linux x64, supporting both X11/Xorg and Wayland. Adjustable delay (0.1–3600 seconds, default 2), custom header, custom global Start/Stop shortcuts, instant start, and dark/light themes.
npx [email protected]
bunx --bun [email protected]
# or install once:
npm install -g [email protected]
autotype-rsEnter text, choose a delay, click Start typing, and focus your destination. On Wayland, click Enable typing and approve the desktop keyboard-control dialog. Cancel works during approval and typing; returning to the app also stops typing. Escape works globally on Windows/X11 and when focused on Wayland. Custom global Start/Stop shortcuts are available in Keys.
Open Keys to enable and customize global shortcuts. Defaults are Ctrl+Shift+F6 (Start) and Ctrl+Shift+F7 (Stop). Focus your destination and release the full Start shortcut. Instant typing is available on Windows/X11 and protected GNOME sessions. Other Wayland paths require your selected positive countdown; release all shortcut keys before it ends. Clear Start shortcut skips the delay to use the delay where Instant is supported; the regular Start button still uses it. Shortcuts are off until enabled. Shortcut settings are saved across launches; entered text stays in memory.
On Wayland, the desktop chooses and approves your shortcuts in its dialog. Global shortcuts also require a GlobalShortcuts portal backend; keyboard control still needs Enable typing. The app displays the approved combinations. Change in desktop… requires GlobalShortcuts version 2; with older versions, disable and enable shortcuts to reassign them. Release the full shortcut before typing. Portal closure or restart cancels typing and clears approved bindings; enable shortcuts again to rebind. Wayland creates a hidden desktop entry for portal identification.
Wayland's Protect destination defaults on, with adapters for GNOME, KDE Plasma,
Hyprland and Sway. GNOME needs the bundled companion extension; export it with
autotype-rs --export-gnome-extension NEW_DIRECTORY, then install and enable it as
explained in the Wayland setup guide.
KDE uses a temporary script. The guard stops on window changes or adapter failure;
it cannot protect individual fields/tabs or make checking and input atomic.
Explicitly disabling it allows destination changes to redirect the remaining text.
Remember permission saves only a private portal restore token, if the desktop
allows it. Disconnect closes the session and forgets the local token.
All four Wayland desktops still need a portal backend with RemoteDesktop keyboard-control support. Focus adapters do not supply missing keyboard permission; some Hyprland/Sway portal installations offer only screenshots/screencasts. Xwayland does not bypass that requirement. Linux needs a graphical session, glibc 2.35+, OpenGL/EGL, libxkbcommon and, on X11, libxkbcommon-x11. On Debian/Ubuntu:
sudo apt install libgl1 libegl1 libxkbcommon0 libxkbcommon-x11-0No Rust compiler is required. Both executables are bundled; installation does not
run an install script or download another binary. Node.js 18+ or Bun is required.
The GUI runs independently of the terminal. --help and --version work without
opening a window. Text stays in memory and is never uploaded or saved; only
opt-in permission restoration saves a private desktop token.
For Proxmox/noVNC, match local/guest keyboard layouts and Caps Lock. Windows/X11 use physical Shift for capitals; Unicode fallback may not work in remote consoles. Wayland passes key symbols through the desktop compositor.
Build a package from the repository
npm run build:native --prefix npm
# On Linux with the Rust Windows GNU target and MinGW installed:
npm run build:native --prefix npm -- --target x86_64-pc-windows-gnu
npm test --prefix npm
cd npm
npm packNative Linux builds need Rust and a C compiler. Native Windows builds need Rust and Visual Studio C++ tools. CI combines Ubuntu 22.04 and Windows builds into one package. Prepack validates both executable formats, metadata, hashes and Linux executable permissions. Registry publication requires npm sign-in.
Updating
Use the package manager rather than a separate app self-updater:
npx autotype-rs@latest
bunx --bun autotype-rs@latest
# For a global npm install:
npm install -g autotype-rs@latestExplicit versions such as @1.3.2 remain pinned. Close the app before replacing
its bundled executable. Standalone downloads are updated from GitHub releases.
