Version history of the WifeRice dotfiles.
hypridle-git from AUR. swayidle -w flag blocked 66min suspend because Lock.qml never exits-w blocking)mem_sleep_default=s2idle kernel parameter~/.config/hypr/LoginScreen Settings/ directory has been removed entirely. SDDM runs as the sddm user and cannot traverse 700 home directories — this was the root cause of the blank login screen for many users. All SDDM files now live under /usr/share/sddm/. QML theme files always update on every install. Wallpaper/face icons respect SDDM_OVERWRITE prompt.bgWallpaper visible changed from false to true so the source image can be read by the blur effect..face.icon system path works correctly.background.png fallback deployed on every install/restore — even if users delete all wallpaper.* files, SDDM will never go blank. Multi-format fallback: wallpaper.png → wallpaper.jpg → wallpaper.jpeg → wallpaper.webp → wallpaper.bmp → background.png.install.sh and restore.sh — SDDM QML files now deploy on every update unconditionally (not gated by KEEP_WALLPAPERS or SDDM_OVERWRITE). Wallpaper and face icon deployment respects SDDM_OVERWRITE. LoginScreen Settings references removed from installer, restorer, and GuidePopup tips (changelog entries kept as historical record)./usr/share/sddm/themes/matugen-minimal/, /usr/share/sddm/faces/) and explains why home-directory paths don't work with SDDM's sddm user permissions.file:/// URLs to absolute paths — file:/// URLs with spaces or percent-encoding can fail on some Qt/SDDM versions. Plain absolute paths work universally.~/.config/hypr/Faces/, LoginScreen Settings/, Lockscreen Wallpaper/) — install.sh and restore.sh now NEVER overwrite existing user files./usr/share/sddm/faces/, /usr/share/sddm/themes/matugen-minimal/) — now always overwritten with latest defaults on every update./usr/share/sddm/faces/ (was missing — SDDM avatar would fail when LoginScreen Settings was empty)..face fallback was blocked by incorrect else if condition — now uses indexOf('.face.icon') so fallthrough works correctly.Hyprland/scripts/ and were missed by rsync)..face.icon instead of per-username ${CURRENT_USER}.face.icon.~/.Wallpapers/ references removed — no fallback, no migration code left behind~/.config/hypr/Faces/ and ~/.config/hypr/Lockscreen Wallpaper/DOTS_VERSION in install.sh finally bumped to 1.7.82 (was stuck at 1.7.78 — users never saw update notifications)~/.config/hypr/ — QML and scripts read from new paths first.face.icon deploy now copies hidden files correctly with /./ source path instead of * globusb_sound.sh was stale (pointed to sounds/ not sounds/usb/).face.icon now deployed to correct location that QML actually readssounds/network/: connection/, power/, navigation/systemctl suspend after display off, preventing battery drain on laptopsquickshell/sounds/ subfolders by device type — USB, network, battery — for maintainability~/.config/hypr/LoginScreen Settings/Wallpaper/LoginScreen Settings/ override folder instead of system SDDM pathMain.qml now has multi-format wallpaper fallback (was limited to wallpaper.png only)~/.config/hypr/LoginScreen Settings/ first — drop wallpaper and face icon there to customize login without sudo/usr/share/sddm/faces/.face.icon → /usr/share/sddm/faces/.faceinstall.sh and restore.sh deploy defaults to LoginScreen Settings/~/.config/hypr/Faces/.face.icon — ~/.face.icon and ~/.face are manual-only fallbacksrestore.sh condition and summary no longer reference username-specific face icon pathsinstall.sh no longer copies face icon to ~/.face.icon/usr/share/sddm/faces/.face.icon (generic) with fallback to .face instead of per-username fileMain.qml updated with onStatusChanged Image.Error fallback chain for avatarrestore.sh copies face icon to /usr/share/sddm/faces/.face.icon onlytipOpacity fatal error on non-About tabs — Behavior removed from all tabs except Abouttop -bn1 awk syntax fix + ps fallbacksysUptimetip_icon.svg — custom lightbulb SVG icon with gradient fills and glow dots~/.config/hypr/ — QML and scripts read from new paths first.face.icon deploy now copies hidden files correctly with /./ source path instead of * globusb_sound.sh was stale (pointed to sounds/ not sounds/usb/).face.icon now deployed to correct location that QML actually readsinstall.sh AUR packages — saves 1.5GB of forced downloads; install manually with yay -S steamsounds/network/connection/, sounds/network/power/, sounds/network/navigation/audio_autoswitch.sh and usb_sound.sh — prevents potential command injection via malformed USB device descriptorssettings_watcher.sh — sanitized template variable substitutioninstall.sh and restore.sh — migrated from predictable /tmp paths to mktemp-based random directoriesswayidle 66-min timeout used hyprctl dispatch dpms off instead of systemctl suspend — display stayed black after unlocking, requiring force restartswayidle timeout 4000 now runs systemctl suspend — after-resume fires correctly on wake, display turns back onquickshell/sounds/{battery,usb,updater,music}/ subfolders — consistent single locationhyprctl reload now runs detached after the install script exits (was synchronous, disrupted Wayland session and crashed the terminal)Hyprland/sounds/ and copied every update instead of generated once by ffmpeginstall.sh uses systemctl --user restart for audio-autoswitch.service instead of kill $pids — prevents stale duplicate process instances that caused multiple soundssettings_watcher.sh --compile reload also detached to prevent kitty crash during updateskeybindings.conf but NOT in keybinds.conf.template, so it was silently wiped on every settings_watcher --compileusb_sound.sh.install.sh defaults flipped — Enter now overwrites configs (was 'keep'). Updates actually update users now. Type Y explicitly to keep old configs.audio_autoswitch.sh (same script, same service, one less service to manage)udevadm monitor --property (no root) in a background fork inside audio_autoswitch.sh — runs as a user process with full PipeWire access, same as battery_fetch.shaudio_autoswitch.sh now has a background USB udev monitor alongside the existing pactl subscribe audio listener — no separate service, no separate script99-usb-sound.rules automatically removed from /etc/udev/rules.d/ on updateENV{ID_BUS}=usb instead of ID_FS_USAGE=filesystem for reliable USB storage detectionENV{ID_MODEL}=?* — some devices don't report model strings; matched by vendor ID onlyusb_sound.sh --test plays both plug/unplug chimes for manual troubleshootingusb_sound.sh --check shows diagnostics (sound files, PipeWire status, boot guard state)2>/dev/null — logged with visible warning on failure2>/dev/null || true — if monitors.conf generation failed, Hyprland fell back to default 1.5 scale with no warningquickshell with AUR quickshell-git (same QML API, no conflict with existing git installs)quickshell-git from AUR no longer see conflict errors during install or reinstallcode with AUR visual-studio-code-bin (Microsoft's official binary)visual-studio-code-bin from AUR no longer see conflict errors during installsettings_watcher.sh --compile triggered hyprctl reload which spawned a second watcher from the startup list. Two watchers raced, creating a cascade of reloads that reset the scale to ~1.5 despite monitors.conf saying scale=1settings_watcher.sh — prevents duplicate instances. --compile now kills old watcher before running. Scale-forcing code already existed but was defeated by the cascadeaccel_profile = flat) — precise aiming for gamerstouchpad accel_profile = flat)ttf-ms-win11-auto AUR package consistently fails to build (symlink error, exit status 4) — Microsoft blocks auto-downloadsttf-liberation (metric-compatible Arial/Times New Roman/Courier New) and ttf-dejavu (wider Unicode coverage)sudo pacman -Sy added, yay properly installed, 2>/dev/null removed, rsync --delete guarded against empty source, set -e hardened with || truelock.sh — kill "" bug was killing ALL processes (PID 0); division-by-zero crash on empty music playlistfetch_workspaces.sh — unquoted heredoc caused JSON injection from env varsrestore.sh — version no longer hardcoded to 1.7.20, chmod uses find (not glob), tilde replaced with $HOMEtheme_profiles.sh — wallpaper now actually applies via awww imgcheck_disk.sh, toggle_gaming.sh, toggle_powerprofile.sh — sudo commands guarded with timeout to prevent hangsupdate_notifier.sh — notification button click now opens terminalvolume_listener.sh — locale-independent parsing with LC_MESSAGES=C$HOME across all script files (settings_watcher.sh, restore.sh, theme_profiles.sh, reload.sh)hypridle.conf no longer deployed (swayidle is the default)default_settings.json — uiScale 1.0 → 1 (int consistency)