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>
10 lines
565 B
Bash
10 lines
565 B
Bash
# A VM usually renders on the CPU, where animations and transparency cost
|
|
# every frame, so start it without them. omarchy-toggle-animations brings them
|
|
# back. This runs before any Hyprland session exists, so place the flag
|
|
# directly rather than through omarchy-hyprland-toggle, which reloads Hyprland.
|
|
if omarchy-hw-vm; then
|
|
echo "Detected a virtual machine. Turning off animations and transparency."
|
|
mkdir -p "$HOME/.local/state/omarchy/toggles/hypr"
|
|
cp "$OMARCHY_PATH/default/hypr/toggles/no-animations.lua" "$HOME/.local/state/omarchy/toggles/hypr/"
|
|
fi
|