Skip to content

Voxtype

The Voxtype extension adds Voxtype, AI voice dictation for Wayland, to a Frostyard desktop image. It also ships the tools that type the text for you: wtype, ydotool, and wl-clipboard. Every image carries the extension’s definition, switched off. The extension itself is not in the image: Updex turns it on and downloads it.

You need:

  • A Frostyard desktop bootc image: Snow, Snowfield, or Sundog, not Floe.
  • Root access to enable, update, and remove the extension.
  • Network access to https://repository.frostyard.org/ext/voxtype/.
  • Free space in /var for the download and the installed image.

The Voxtype extension has no published test results on Frostyard images yet. Try it on a machine you can spare first.

See what Updex found, then enable the feature and download it now:

Terminal window
updex features list --component=voxtype
sudo updex features enable voxtype --now

voxtype appears as a component, with its feature disabled. The enable command downloads the image, checks its checksum and signature, links it, and refreshes the merge.

Check the merge and the files that the extension adds:

Terminal window
systemd-sysext status
command -v voxtype wtype ydotool ydotoold wl-copy wl-paste

systemd-sysext status lists voxtype. Each name prints a path.

If enable --now exits with a refresh error (refresh_error in JSON), the download worked, but the activation did not. If the output says activation did not finish, the extension is merged, but users and groups can be missing: reboot. Otherwise the merge state is unknown: reboot. A sudo systemd-sysext refresh by hand does not create users and groups. Then run the checks above again.

Reboot after enable --now. snosi-sysext-udev-reload.service runs at boot, and no test shows that it runs on a live merge. The uinput module and the udev rule apply after the reboot.

Add your user to the input group, because the udev rule gives that group access to /dev/uinput and no user is in it by default:

Terminal window
sudo usermod -aG input "$USER"

Then sign out and sign in again.

Run voxtype to dictate. Voxtype types the text with wtype on compositors that support it, or with ydotool on GNOME. When typing fails, it falls back to the clipboard through wl-copy and wl-paste.

ydotool types through /dev/uinput. The extension makes that work in three ways:

  • It loads the uinput kernel module at boot.
  • It ships a udev rule that gives the input group access to /dev/uinput. A service, snosi-sysext-udev-reload.service, makes udev read that rule after the merge, before multi-user.target.
  • It sets RestartSec=5s on the ydotool.service user unit, so a slow boot does not use up its start attempts.

The ydotool.service user unit does not start by itself. You, or your compositor keybinding, start it. Check its state:

Terminal window
systemctl --user status ydotool.service

When the udev rule applies, /dev/uinput is owned by root:input with mode 0660.

See whether a newer image exists, then update:

Terminal window
updex features check --component=voxtype
sudo updex features update --component=voxtype

The update downloads the newest image and links it. A refresh replaces /usr under a running app, and a running app can fail. Close Voxtype before you run updex features update, or update with --no-refresh and reboot. See Manage system extensions for the check output and the update timer.

Roll back with sudo updex features rollback voxtype. It takes effect at the next boot. See Roll back.

Remove Voxtype now:

Terminal window
sudo updex features disable voxtype --now --force

Updex unmerges all extensions on the host, deletes the Voxtype image, and merges the rest again. Your Voxtype settings stay in your home directory. Reboot when the command finishes. Without --force, Updex refuses while the image is merged.

Item What you get
Package requests voxtype from the Frostyard APT repository, plus wtype, ydotool, and wl-clipboard
Version The image file name carries the voxtype version, plus a +rN snosi revision when one is set
Commands /usr/bin/voxtype, /usr/bin/wtype, /usr/bin/ydotool, /usr/bin/ydotoold, /usr/bin/wl-copy, and /usr/bin/wl-paste
Kernel module uinput, loaded at boot by /usr/lib/modules-load.d/60-voxtype.conf
udev /usr/lib/udev/rules.d/80-uinput.rules, and snosi-sysext-udev-reload.service, which multi-user.target upholds
User service ydotool.service, with a drop-in that sets RestartSec=5s. It does not start by itself
Image file voxtype_<version>_<os>_<arch>.raw.zst; .raw.xz, .raw.gz, and .raw also work
Download From https://repository.frostyard.org/ext/voxtype/, signature required (Verify=true), into /var/lib/extensions.d/

Each build checks that these paths are present: every command above, the ydotool user unit and its drop-in, the udev rule, the reload service and its script, the uinput module file, and the multi-user.target drop-in. A build that is missing one fails.

Reviewed 2026-10-27; Updex facts reviewed 2026-10-30. snosi commit b2858ca0222814c395cf8248db98f3e096d57dc9; Updex v2.1.3 commit 2661e987faac986f2594d1d9bbbadf1bf3053f5b.