Add a no-animations mode, on by default in VMs (#13550)
A machine without a GPU, like most VMs, renders through llvmpipe on the CPU, where every animated frame and every translucent window costs. In a VM, opening and closing a terminal took ~5s of CPU; a panel ~3.4s. omarchy toggle animations (also under Toggle > Animations) places a Hyprland flag that turns off animations, blur and shadows and makes windows opaque. The shell follows Hyprland's animations:enabled, rereading it on every config reload: its one-shot animations run for Style.duration(ms), which is then 0, and its spinners, pulses and title marquee hold still. A new install in a VM starts with the flag in place. Measured in the ISO test VM (llvmpipe), CPU per interaction: terminal open+close 5000ms -> 481ms, workspace switch 1670ms -> 409ms, audio panel 3446ms -> 796ms, volume OSD 2324ms -> 584ms, menu 2028ms -> 1241ms. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
97a9fce54f
commit
b18ab4952b
41 files changed
+201
-79
No files matched your search
@@ -84,3 +84,30 @@ pass "fullscreen off leaves full screen"
|
||||
HOME="$test_home" omarchy-toggle-fullscreen-desktop on
|
||||
[[ -f $bar_flag && -f $gaps_flag ]] || fail "fullscreen on enters full screen"
|
||||
pass "fullscreen on enters full screen"
|
||||
|
||||
# The flag records animations being off, so on and off are the other way round.
|
||||
printf '#!/bin/bash\nexit 0\n' >"$stub_bin/omarchy-notification-send"
|
||||
chmod +x "$stub_bin/omarchy-notification-send"
|
||||
animations_flag="$test_home/.local/state/omarchy/toggles/hypr/no-animations.lua"
|
||||
|
||||
HOME="$test_home" omarchy-toggle-animations off
|
||||
[[ -f $animations_flag ]] || fail "animations off places the no-animations flag"
|
||||
HOME="$test_home" omarchy-toggle-animations on
|
||||
[[ ! -f $animations_flag ]] || fail "animations on removes the no-animations flag"
|
||||
HOME="$test_home" omarchy-toggle-animations
|
||||
[[ -f $animations_flag ]] || fail "toggling animations flips the flag"
|
||||
pass "animations toggle turns the no-animations flag the right way round"
|
||||
|
||||
# A VM install starts without animations; other machines keep them.
|
||||
for virt in vm none; do
|
||||
rm -rf "$test_home/.local/state/omarchy/toggles/hypr"
|
||||
printf '#!/bin/bash\n[[ %s == vm ]]\n' "$virt" >"$stub_bin/omarchy-hw-vm"
|
||||
chmod +x "$stub_bin/omarchy-hw-vm"
|
||||
HOME="$test_home" OMARCHY_PATH="$ROOT" bash "$ROOT/install/user/hardware/vm-no-animations.sh" >/dev/null
|
||||
if [[ $virt == "vm" ]]; then
|
||||
[[ -f $animations_flag ]] || fail "a VM install turns animations off"
|
||||
else
|
||||
[[ ! -f $animations_flag ]] || fail "a machine that is not a VM keeps its animations"
|
||||
fi
|
||||
done
|
||||
pass "a VM install starts without animations"
|
||||
Reference in new issue
Block a user