Build the Panama Hyprland desktop
This commit is contained in:
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
fail() {
|
||||
printf 'status-events contract: %s\n' "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
status() {
|
||||
qs ipc call status-events status | jq -r ".${1}"
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
qs ipc call status-events reset >/dev/null 2>&1 || true
|
||||
if [[ "${restore_dnd:-false}" == "true" ]]; then
|
||||
qs ipc call notifications dnd >/dev/null 2>&1 || true
|
||||
fi
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
qs ipc show | rg -q '^target status-events$' || fail 'IPC target is missing'
|
||||
qs ipc call status-events reset >/dev/null
|
||||
|
||||
qs ipc call status-events fixture ambient >/dev/null
|
||||
[[ "$(status activeKey)" == "device-output" ]] || fail 'ambient fixture did not become active'
|
||||
[[ "$(status queueLength)" == "0" ]] || fail 'first event unexpectedly queued'
|
||||
|
||||
qs ipc call status-events fixture ambient-replacement >/dev/null
|
||||
[[ "$(status activeKey)" == "device-output" ]] || fail 'equivalent event changed its stable key'
|
||||
[[ "$(status title)" == "Studio Display" ]] || fail 'equivalent event did not replace active content'
|
||||
[[ "$(status queueLength)" == "0" ]] || fail 'equivalent event stacked instead of replacing'
|
||||
|
||||
qs ipc call status-events fixture critical >/dev/null
|
||||
[[ "$(status activeKey)" == "privacy-microphone" ]] || fail 'critical event did not preempt ambient event'
|
||||
[[ "$(status priority)" == "90" ]] || fail 'critical event priority was not preserved'
|
||||
[[ "$(status queueLength)" == "1" ]] || fail 'preempted event was not retained once'
|
||||
|
||||
qs ipc call status-events dismiss >/dev/null
|
||||
[[ "$(status activeKey)" == "device-output" ]] || fail 'dismiss did not reveal the queued ambient event'
|
||||
|
||||
qs ipc call status-events reset >/dev/null
|
||||
dnd_now="$(qs ipc call notifications dnd)"
|
||||
if [[ "$dnd_now" == "true" ]]; then
|
||||
restore_dnd=true
|
||||
fi
|
||||
qs ipc call status-events fixture ambient >/dev/null
|
||||
[[ "$(status active)" == "false" ]] || fail 'DND did not suppress an ambient event'
|
||||
|
||||
qs ipc call status-events fixture critical >/dev/null
|
||||
[[ "$(status activeKey)" == "privacy-microphone" ]] || fail 'DND suppressed a privacy event'
|
||||
|
||||
trap - EXIT
|
||||
cleanup
|
||||
printf 'status-events contract: PASS\n'
|
||||
Reference in New Issue
Block a user