Files
Panama/tests/quickshell/scratchpad-shelf-contract.sh
T

34 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
shelf="$repo_dir/config/dot/quickshell/modules/overview/ScratchpadShelf.qml"
body="$repo_dir/config/dot/quickshell/modules/overview/OverviewBody.qml"
keys="$repo_dir/config/dot/hypr/keybinds.lua"
fail() {
printf 'scratchpad-shelf contract: %s\n' "$1" >&2
exit 1
}
[[ -f "$shelf" ]] || fail 'global scratchpad shelf is missing'
rg -q 'special:scratch' "$body" || fail 'overview does not discover the global scratch workspace'
rg -q 'ScratchpadShelf \{' "$body" || fail 'overview does not instantiate the shelf'
rg -q 'DropArea \{' "$shelf" || fail 'shelf is not a drag destination'
rg -q 'onRestoreRequested' "$body" || fail 'shelf cards cannot restore to the selected workspace'
rg -q 'SUPER.*X|mod .*\+ X' "$keys" || fail 'Super+X scratchpad toggle disappeared'
rg -q 'SHIFT \+ X' "$keys" || fail 'Super+Shift+X send-to-scratchpad binding disappeared'
qs ipc call overview open >/dev/null
for _ in $(seq 1 20); do
if hyprctl layers | rg -q 'namespace: qs-overview'; then
qs ipc call overview close >/dev/null
printf 'scratchpad-shelf contract: PASS\n'
exit 0
fi
sleep 0.1
done
fail 'overview did not map with the shelf present'