# LazyUpdateManager LazyUpdateManager is a small update helper for Arch Linux and Hyprland. It checks for available package updates and sends a desktop notification at most once per week while updates are pending. ## Features - Checks official repository updates with `checkupdates` when available, otherwise `pacman -Qu` - Checks AUR updates with `paru -Qua` or `yay -Qua` when either helper is installed - Sends notifications with `notify-send`, with `hyprctl notify` as fallback - Provides a graphical browser UI for checking and installing updates - Provides an Electron desktop app wrapper for the GUI - Supports update search, source filters, ignored packages, system status, and auto-refresh - Includes a systemd user timer that checks every two hours and reminds weekly - Provides an interactive `update` command ## Requirements - Arch Linux - Go 1.22 or newer to build - `pacman-contrib` recommended for `checkupdates` - Optional: `paru` or `yay` for AUR updates - Optional: `libnotify` for `notify-send` - Optional: Node.js and npm for the Electron desktop app ## Build ```sh make build ``` ## Usage ```sh ./bin/lazy-update-manager status ./bin/lazy-update-manager check ./bin/lazy-update-manager check -quiet ./bin/lazy-update-manager notify ./bin/lazy-update-manager notify -force ./bin/lazy-update-manager gui ./bin/lazy-update-manager update ``` ## Graphical Interface ```sh ./bin/lazy-update-manager gui ``` The GUI opens in your browser and lets you: - refresh the update list - search and filter updates by source - start update installation in a terminal - select individual packages and install only those when you explicitly want that workflow - hide noisy packages from the active update count - see system readiness, Pacman lock state, disk space, AUR helper, terminal, and kernel version - enable or disable AUR checks - change the reminder interval - configure automatic refresh - choose the terminal used for installing updates - manage settings in a dedicated dialog with tabs for general behavior, notifications, installation, and ignored packages - disable reminders, keep install terminals open or let them close, and control confirmation for selective installs - switch the interface language between German and English Selective package installs use `pacman -S --needed` or the configured AUR helper with `-S --needed`. On Arch, full system updates are still the safer default because partial upgrades can cause dependency mismatches. ## Desktop App Install the Electron dependencies once: ```sh npm install ``` Start the desktop app: ```sh make desktop ``` Build desktop packages: ```sh make desktop-dist ``` ## Install ```sh make install ``` This installs: - the binary to `~/.local/bin/lazy-update-manager` - the desktop launcher to `~/.local/share/applications/lazy-update-manager.desktop` - the user service and timer to `~/.config/systemd/user/` When a user systemd session is available, the timer is enabled immediately so update notifications work after install. The install target now preserves the previous binary by backing it up when it differs, so installations are safe and reversible. ### Check version and update After installing, check the installed version with: ```sh lazy-update-manager version ``` To update to the latest version from this repository: ```sh git pull --ff-only make build make install ``` If you prefer to test the local build without installing, run the bundled binary directly: ```sh ./bin/lazy-update-manager gui ``` ## Weekly Reminder The timer runs every two hours, but `lazy-update-manager notify` stores the last reminder timestamp in: ```text ~/.local/state/lazy-update-manager/state.json ``` That means you only get a reminder once per week while updates are available. Settings are stored in: ```text ~/.config/lazy-update-manager/config.json ``` ## Check Timer ```sh systemctl --user status lazy-update-manager.timer systemctl --user list-timers lazy-update-manager.timer ```