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-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
# 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

./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

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:

  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

systemctl --user status lazy-update-manager.timer
systemctl --user list-timers lazy-update-manager.timer

License

MIT

Description
Arch Linux Update Manager
Readme 200 KiB
Languages
Go 81.3%
Shell 10.5%
JavaScript 4.6%
Makefile 3.6%