Repository navigation
Rename the program to Clickwork, and ship an MSI
2.0.0 carries no new behaviour: it is the rename, plus the installer the Microsoft
Store submission needs.
Renamed everywhere the program names itself: the window title, the crate and its
executable, the Windows file metadata, the tray and overlay window classes, the
single-instance mutex, the log file, and the product name in all six languages of the
built-in handbook. The documentation follows, 94 occurrences across eight files.
The one piece of real work is the data folder. It moves from %APPDATA%\MacroRecorder
to %APPDATA%\Clickwork, and an existing installation must not lose its macros,
templates and history to a rename. On first run the old folder is moved across; if the
move fails - a file held open, a permission - the old folder is used where it stands.
A portable installation, with its files beside the executable, never touches %APPDATA%
and is unaffected. That migration is also why "MacroRecorder" still appears once in
main.rs and in the changelog: those two places have to name the old thing.
packaging/ holds the WiX 7 source for Clickwork.msi. The install folder is chosen by
the person installing, which matters here because Clickwork keeps its data beside its
own executable whenever that folder is writable.
Linux — packages rebuilt 2026-09-20
The Windows build above is unchanged and has not been reissued. Clickwork.exe and
Clickwork.msi are the same files as before; everything in this section happened on the
Linux side, so a new version number would have promised Windows users something that does
not exist. The application still reports 2.0.0; what moved is the packaging revision.
Four packages now, not one
| File | For | Install |
|---|---|---|
clickwork-2.0.0-4-x86_64.pkg.tar.zst |
Arch, CachyOS, EndeavourOS | sudo pacman -U clickwork-2.0.0-4-x86_64.pkg.tar.zst |
clickwork_2.0.0-1_amd64.deb |
Debian 12+, Ubuntu 22.04+, Mint | sudo apt install ./clickwork_2.0.0-1_amd64.deb |
clickwork-2.0.0-1.x86_64.rpm |
Fedora 36+, RHEL 9+, openSUSE | sudo dnf install ./clickwork-2.0.0-1.x86_64.rpm |
clickwork-2.0.0-x86_64-linux.tar.gz |
anything else with glibc 2.35 or newer | unpack, then ./install.sh |
All four carry the same binary, built in a debian:bookworm container so its glibc floor is
2.35 — old enough for Ubuntu 22.04 and Debian 12. A build on a current rolling
distribution needs GLIBC_2.43, which almost nothing ships: it would install cleanly and
then refuse to start, so CI now compares every build against a stated maximum and fails one
that exceeds it. The .deb is installed into a clean Debian container by CI and run there
against a real compositor before it is allowed out.
More compositors than Hyprland
Hyprland is still the only one that answers every question about a window. What changed is
that the others are no longer all-or-nothing:
| Compositor | Windows | Capture | Playback |
|---|---|---|---|
| Hyprland | everything | 6.0 ms | yes |
| KDE Plasma | list, measure, process, virtual desktop | 2.0 ms | yes |
| sway, niri, river, Wayfire, labwc | list, focus, close, fullscreen | yes | yes |
| COSMIC | not yet | not yet | keyboard only |
| GNOME | no | no | no |
KDE Plasma is supported now, through KWin's own protocols — it implements none of the
wlroots ones. Capture there is the fastest of the three. One condition: the program has to
be installed, because KWin hands its window protocol and its screenshot interface only to
a client that an installed desktop file names. Any of the four packages does that; an
unpacked binary run in place does not, and --doctor says so when it happens.
What does not work on KDE is typing text — replaying recorded keys does, and more
faithfully than elsewhere. Recording by coordinate needs Hyprland: nothing else can say
where the pointer is, so build mouse steps from picture or element anchors there.
clickwork --selftest session prints what the session you are in can do, and
clickwork --doctor prints what the program can and cannot answer on it.
Where to read the rest
PLATFORMS.md ·
PLATFORMS_RU.md —
Windows against Linux feature by feature, which package to take, and a measured table of
nine compositors.
LINUX.md ·
LINUX_RU.md —
permissions, coordinates at fractional scale, keyboard layouts, compositor keybinds.
Recording needs read access to /dev/input; every package installs the udev rule that
grants it to the user seated at the machine. Text recognition needs tesseract and a
language pack, which the packages recommend rather than require — without it everything
works except the steps that read text.