* Swap terminaltexteffects for ttfx ttfx is a Rust port of terminaltexteffects that renders byte-identical frames as a single dependency-free binary. Same option names, defaults, and exit codes, so every invocation here is unchanged apart from the command name. The screensaver runs at --frame-rate 120 with --random-effect. On a fullscreen canvas Python cannot hold that for the heavier effects (beams: 14.1 ms/frame against an 8.3 ms budget, so ~71fps); ttfx renders the same effect at 564fps. Startup drops from ~107 ms to ~1 ms, and the base image no longer needs Python for the screensaver. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Need a migration --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
62 lines
2.2 KiB
Bash
Executable File
62 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Show idle, screensaver, and lock diagnostics
|
|
# omarchy:group=debug
|
|
# omarchy:args=[log-lines]
|
|
# omarchy:examples=omarchy debug idle | omarchy-debug-idle 400
|
|
|
|
lines=${1:-200}
|
|
if [[ ! $lines =~ ^[0-9]+$ ]]; then
|
|
lines=200
|
|
fi
|
|
|
|
section() {
|
|
printf '\n== %s ==\n' "$1"
|
|
}
|
|
|
|
section "Time"
|
|
date -Is
|
|
|
|
section "Idle IPC status"
|
|
omarchy-shell idle status 2>&1 | jq . 2>/dev/null || omarchy-shell idle status 2>&1 || true
|
|
|
|
section "Quickshell instances"
|
|
quickshell list -p "$OMARCHY_PATH/shell" --any-display 2>&1 || true
|
|
|
|
section "Recent idle logs"
|
|
quickshell --no-color log -p "$OMARCHY_PATH/shell" --any-display --tail "$lines" --log-times -r 'quickshell.wayland.idle_notify=true' 2>&1 \
|
|
| grep -Ei 'omarchy idle|idle_notify|screensaver|lock|error|warn|failed' || true
|
|
|
|
section "Persisted shell log"
|
|
journalctl -t omarchy-shell -n "$lines" --no-pager --quiet 2>/dev/null || true
|
|
|
|
section "Relevant processes"
|
|
ps -eo pid=,args= \
|
|
| grep -E 'quickshell -n -p|omarchy-system-sleep-monitor|systemd-inhibit.*Lock screen before suspend|org\.omarchy\.screensaver|omarchy-screensaver|(^|/| )ttfx( |$)' \
|
|
| grep -v grep || true
|
|
|
|
section "Sleep lock service"
|
|
systemctl --user status omarchy-sleep-lock.service --no-pager 2>/dev/null || true
|
|
|
|
section "Hyprland screensaver clients"
|
|
hyprctl clients -j 2>/dev/null \
|
|
| jq -r '.[] | select(.class == "org.omarchy.screensaver" or .initialClass == "org.omarchy.screensaver") | [.pid,.class,.initialClass,.title,.focusHistoryID] | @tsv' || true
|
|
|
|
section "Idle inhibitors"
|
|
hyprctl clients -j 2>/dev/null \
|
|
| jq -r '.[] | select(.inhibitingIdle == true or ((.tags // []) | index("noidle"))) | [.pid,.class,.title,((.tags // []) | join(",")),.inhibitingIdle] | @tsv' || true
|
|
|
|
section "Screensaver detector"
|
|
if hyprctl clients -j 2>/dev/null | jq -e '.[] | select(.class == "org.omarchy.screensaver" or .initialClass == "org.omarchy.screensaver")' >/dev/null; then
|
|
echo "running-window"
|
|
elif pgrep -f '[o]rg.omarchy.screensaver' >/dev/null; then
|
|
echo "running-process"
|
|
elif omarchy-toggle-enabled screensaver-off; then
|
|
echo "disabled"
|
|
else
|
|
echo "stopped"
|
|
fi
|
|
|
|
section "Lock detector"
|
|
omarchy-shell lock status 2>&1 | jq . 2>/dev/null || omarchy-shell lock status 2>&1 || true
|