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
git clone <repo>
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-sendorhyprctl 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 |
# 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 --neededor 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)
./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-electronlauncher - Installs the desktop entry (for app menus / launchers)
- Enables
prefer_electronin the config - Installs and activates the systemd timer
With make
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
./install.sh electron-dist
Update
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:
$LAZY_UPDATE_MANAGER_DIR(environment variable)- Current working directory (if
electron/main.cjsexists) - Relative to the binary path
$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
systemctl --user status lazy-update-manager.timer
systemctl --user list-timers lazy-update-manager.timer
License
MIT
Description
Languages
Go
81.3%
Shell
10.5%
JavaScript
4.6%
Makefile
3.6%