35 lines
1.2 KiB
Bash
Executable File
35 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
|
|
fail() {
|
|
printf 'activity-indicator contract: %s\n' "$1" >&2
|
|
exit 1
|
|
}
|
|
|
|
cleanup() {
|
|
qs ipc call activity close >/dev/null 2>&1 || true
|
|
qs ipc call activity clear >/dev/null 2>&1 || true
|
|
qs ipc call status-events reset >/dev/null 2>&1 || true
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
[[ -f "$repo_dir/config/dot/quickshell/modules/bar/ActivityIndicator.qml" ]] || fail 'bar indicator is missing'
|
|
[[ -f "$repo_dir/config/dot/quickshell/modules/bar/ActivityPanel.qml" ]] || fail 'activity detail panel is missing'
|
|
rg -q 'ActivityIndicator \{' "$repo_dir/config/dot/quickshell/modules/bar/Bar.qml" || fail 'bar does not instantiate the activity indicator'
|
|
! rg -q '^[[:space:]]*RecordingIndicator \{\}' "$repo_dir/config/dot/quickshell/shell.qml" || fail 'legacy recording popup is still instantiated'
|
|
|
|
qs ipc call activity fixture microphone-on >/dev/null
|
|
qs ipc call activity open >/dev/null
|
|
for _ in $(seq 1 20); do
|
|
if hyprctl layers | rg -q 'namespace: qs-popover-activity'; then
|
|
printf 'activity-indicator contract: PASS\n'
|
|
exit 0
|
|
fi
|
|
sleep 0.1
|
|
done
|
|
|
|
fail 'active privacy state did not map its detail panel'
|