# LazyUpdateManager > A lazy Arch Linux update helper with desktop notifications, web UI, and Electron app. LazyUpdateManager checks for available package updates and sends a **weekly desktop notification** while updates are pending. No nagging, no constant reminders – just a gentle nudge once a week. --- ## Quick Start ```sh git clone cd LazyUpdateManager ./install.sh ``` After installation: | Command | Action | |---------|--------| | `lazy-update-manager gui` | Open the desktop app (or launch from app menu) | | `lazy-update-manager gui web` | Open the web UI in your browser | | `lazy-update-manager check` | Check for updates | | `lazy-update-manager status` | Show available updates | | `lazy-update-manager update` | Run interactive full system update | | `lazy-update-manager version` | Print installed version | --- ## Features - **Automatic updates** – checks official repos (`checkupdates` / `pacman -Qu`) and AUR (`paru` / `yay`) - **Weekly reminder** – desktop notification via `notify-send` or `hyprctl notify`, at most once per week - **Web UI** – browser-based interface for searching, filtering, ignoring packages, and system status - **Desktop app** – Electron wrapper for native window integration - **systemd timer** – checks every 2 hours, reminds weekly - **Settings** – terminal, language (DE/EN), auto-refresh, ignored packages, AUR toggle - **Selective installs** – update individual packages when needed --- ## GUI – Web & Desktop The GUI lets you: | Feature | Description | |---------|-------------| | 🔄 Refresh | Manual or automatic update list refresh | | 🔍 Search & filter | Filter packages by source (repo/AUR) | | 📦 Selective install | Install only selected packages | | 🙈 Hide packages | Reduce noise by ignoring packages | | 🖥️ System status | Pacman lock, disk space, kernel, AUR helper, terminal | | ⚙️ Settings | Timer interval, terminal, language, auto-refresh, confirmation prompts | ```sh # Open web UI in browser lazy-update-manager gui web # Open desktop app (when prefer_electron is enabled) lazy-update-manager gui ``` > Selective installs use `pacman -S --needed` or the AUR helper with `-S --needed`. > Full system updates are the safer default on Arch – partial upgrades can cause dependency issues. --- ## Installation ### With install.sh (recommended) ```sh ./install.sh ``` What it does: - Checks dependencies (Go, Node.js, npm) - Installs npm packages (Electron) - Builds the Go backend - Copies the binary to `~/.local/bin/` - Creates the `lazy-update-manager-electron` launcher - Installs the desktop entry (for app menus / launchers) - Enables `prefer_electron` in the config - Installs and activates the systemd timer ### With make ```sh make build # Build Go backend only make install # Install binary + desktop entry + systemd make desktop # Run Electron app in dev mode make desktop-dist # Build distribution packages (AppImage, Pacman) ``` ### Build Electron distribution ```sh ./install.sh electron-dist ``` ### Update ```sh git pull --ff-only ./install.sh ``` --- ## Requirements | Package | Notes | |---------|-------| | Arch Linux | – | | Go ≥ 1.22 | Required to build | | `pacman-contrib` | Recommended, provides `checkupdates` | | `paru` / `yay` | Optional – for AUR updates | | `libnotify` | Optional – for `notify-send` | | Node.js + npm | Optional – for the Electron desktop app | --- ## Desktop App Details The **launcher** `~/.local/bin/lazy-update-manager-electron` starts Electron with the correct working directory. It is used by the desktop entry (app menu / launcher) and internally by `lazy-update-manager gui`. Project directory lookup order: 1. `$LAZY_UPDATE_MANAGER_DIR` (environment variable) 2. Current working directory (if `electron/main.cjs` exists) 3. Relative to the binary path 4. `$HOME/Projekte/LazyUpdateManager` --- ## Data & Configuration | Path | Contents | |------|----------| | `~/.config/lazy-update-manager/config.json` | Settings (terminal, language, AUR, timer, …) | | `~/.local/state/lazy-update-manager/state.json` | Last check, last reminder, update count | | `~/.local/share/applications/lazy-update-manager.desktop` | Desktop entry for app menus | | `~/.config/systemd/user/lazy-update-manager.{service,timer}` | systemd timer files | ### Check timer status ```sh systemctl --user status lazy-update-manager.timer systemctl --user list-timers lazy-update-manager.timer ``` --- ## License MIT