Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b6868f7
feat(cua-driver-rs)(linux): show cursor and type in background terminals
codex May 31, 2026
a1e4e36
fix(nix): refresh cua-driver vendoring metadata
codex May 31, 2026
ad91c2e
fix(nix): set cua-driver cargo hash
codex May 31, 2026
86e7754
ci(nix): parallelize checks with matrix
codex May 31, 2026
81f3a3b
fix(platform-linux): import request connection trait
codex May 31, 2026
6d406ab
test(nix): track xterm windows by pid
codex May 31, 2026
bba26a2
test(nix): wait for ffmpeg recorders to finish
codex May 31, 2026
0974678
test(nix): simplify ffmpeg gif encoding
codex Jun 1, 2026
8d3e016
test(nix): log ffmpeg output on gif failures
codex Jun 1, 2026
3ec50b9
test(nix): record gifs with imagemagick
codex Jun 1, 2026
e4a123f
test(nix): relax linux cursor focus assertion
codex Jun 1, 2026
88225d1
test(nix): align linux cursor gif assertion
codex Jun 1, 2026
fb5f3c2
Switch Linux keyboard input from XSendEvent to XTEST injection (#1805)
r33drichards Jun 3, 2026
1d44d5a
fix(nix): bump cua-driver to 0.5.1 and refresh cargoHash
r33drichards Jun 3, 2026
86bdb9d
fix(linux): bound Tk `send` so the tk background-GUI test can't hang
r33drichards Jun 3, 2026
f6f8604
fix(platform-linux): stop Qt5 AT-SPI segfault by disabling property c…
r33drichards Jun 3, 2026
7a13dfd
test(nix): record a GIF artifact in every Linux background GUI matrix…
r33drichards Jun 3, 2026
be4b279
fix(platform-linux): land GTK4 focus-free write via generic AT-SPI path
r33drichards Jun 3, 2026
689a8b6
Remove synthetic-focus-nudge fallback from AT-SPI insert_text
r33drichards Jun 3, 2026
ef8330a
test(linux-background-gui): real-app READ-ONLY skeleton matrix (5 per…
r33drichards Jun 4, 2026
3a967f3
fix(linux-background-gui): make windowFindCmd a script path, not inli…
r33drichards Jun 4, 2026
0bdaba2
test(linux-background-gui): drop the 9 apps that fail headless, keep …
r33drichards Jun 4, 2026
00b84fb
feat(linux): AT-SPI + Set-of-Marks annotated screenshots for skeleton…
r33drichards Jun 5, 2026
de6598f
fix(nix): regenerate Cargo.lock and refresh cargoHash after rebase on…
r33drichards Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
339 changes: 334 additions & 5 deletions .github/workflows/nix-build.yml

Large diffs are not rendered by default.

74 changes: 73 additions & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,79 @@
services.cua-driver.package = cuaDriverPackage;
};
};
};

cua-driver-linux-cursor-click-gif = import ./nix/cua-driver/tests/linux-cursor-click-gif.nix {
inherit pkgs;
inherit (pkgs) lib;
cuaDriverModule = {
imports = [ ./nix/cua-driver/module.nix ];
services.cua-driver.package = cuaDriverPackage;
};
};

cua-driver-linux-background-terminal-gif = import ./nix/cua-driver/tests/linux-background-terminal-gif.nix {
inherit pkgs;
inherit (pkgs) lib;
cuaDriverModule = {
imports = [ ./nix/cua-driver/module.nix ];
services.cua-driver.package = cuaDriverPackage;
};
};
}
// pkgs.lib.optionalAttrs (system == "x86_64-linux") (
# Background GUI input coverage — one independent matrix job per
# app, proving focus-free typing into real toolkit/browser windows.
pkgs.lib.listToAttrs (
map (
app:
pkgs.lib.nameValuePair "cua-driver-linux-background-gui-${app}" (
import ./nix/cua-driver/tests/linux-background-gui.nix {
inherit pkgs app;
inherit (pkgs) lib;
cuaDriverModule = {
imports = [ ./nix/cua-driver/module.nix ];
services.cua-driver.package = cuaDriverPackage;
};
}
)
# Real-app matrix: 5 apps per toolkit category run as a LENIENT,
# READ-ONLY skeleton (find window + driver page/get_text + GIF;
# focus-free WRITE / typed-text assertions are added later via
# trajectories). chromium keeps the full CDP focus-free-write
# override; tk is the negative-control full entry (Tk `send`).
# "firefox" remains disabled: under the emulated CI VM (no KVM)
# it does not surface its window within the launch timeout.
) [
"chromium"
"tk"
# GTK3
"gtk3-gedit"
"gtk3-mousepad"
# gtk3-geany / gtk3-abiword temporarily disabled: their huge
# AT-SPI trees make the bounds walk + recorder grind in the
# emulated CI VM and the jobs time out. Re-enable once the
# walk is fast enough for 700+-node trees.
# "gtk3-geany"
"gtk3-scite"
# "gtk3-abiword"
# GTK4
"gtk4-characters"
# Qt5
"qt5-manuskript"
"qt5-klog"
"qt5-openambit"
# Qt6
"qt6-kate"
"qt6-kcalc"
"qt6-okular"
"qt6-qownnotes"
# Electron
"electron-zettlr"
"electron-joplin"
"electron-logseq"
]
)
);
}
)
// {
Expand Down
Loading
Loading