Files
LazyUpdateManager/README.md

122 lines
3.2 KiB
Markdown

# 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
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`.
It also installs a desktop launcher to `~/.local/share/applications/lazy-update-manager.desktop`.
## Enable Weekly Reminder
```sh
make enable-user-service
```
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
```