147 lines
3.9 KiB
Markdown
147 lines
3.9 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
|
|
- 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
|
|
```
|