feat(devshell): add terminal UI capture tools (#69629)
This commit is contained in:
@@ -41,6 +41,11 @@
|
||||
# libglvnd provides libEGL.so.1 that cage needs on NixOS.
|
||||
cage
|
||||
libglvnd
|
||||
# Graphical terminal + Wayland screenshot client for CLI/TUI UI
|
||||
# evidence. `cage -- ghostty ...` keeps captures off the user's
|
||||
# live compositor; grim runs inside that isolated client session.
|
||||
ghostty
|
||||
grim
|
||||
]
|
||||
++ self'.packages.default.passthru.devDeps;
|
||||
shellHook = ''
|
||||
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
out=${1:?usage: $0 OUTPUT.png [command...]}
|
||||
shift
|
||||
mkdir -p "$(dirname "$out")"
|
||||
|
||||
# This runs inside `cage --`, after Ghostty has already opened the isolated
|
||||
# Wayland display. Capture before this script exits so Cage keeps the surface
|
||||
# alive long enough for grim to see it.
|
||||
if (($#)); then
|
||||
"$@"
|
||||
fi
|
||||
if ! command -v grim >/dev/null 2>&1; then
|
||||
echo "grim is required inside the Cage client session" >&2
|
||||
exit 127
|
||||
fi
|
||||
grim "$out"
|
||||
Reference in New Issue
Block a user