docs: restructure README with tables and better overview
This commit is contained in:
238
README.md
238
README.md
@@ -1,176 +1,154 @@
|
|||||||
# LazyUpdateManager
|
# 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.
|
> 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 <repo>
|
||||||
|
cd LazyUpdateManager
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
That's it. After installation you have:
|
||||||
|
|
||||||
|
| Was? | Befehl |
|
||||||
|
|------|--------|
|
||||||
|
| Desktop-App starten | `lazy-update-manager gui` (oder aus Wofi/Rofi starten) |
|
||||||
|
| Nur Web-UI | `lazy-update-manager gui web` |
|
||||||
|
| Updates prüfen | `lazy-update-manager check` |
|
||||||
|
| Status anzeigen | `lazy-update-manager status` |
|
||||||
|
| Interaktiv aktualisieren | `lazy-update-manager update` |
|
||||||
|
| Version prüfen | `lazy-update-manager version` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Checks official repository updates with `checkupdates` when available, otherwise `pacman -Qu`
|
- **Automatische Updates** – prüft offizielle Repos (`checkupdates` / `pacman -Qu`) und AUR (`paru` / `yay`)
|
||||||
- Checks AUR updates with `paru -Qua` or `yay -Qua` when either helper is installed
|
- **Wöchentliche Erinnerung** – per `notify-send` oder `hyprctl notify`, maximal einmal pro Woche
|
||||||
- Sends notifications with `notify-send`, with `hyprctl notify` as fallback
|
- **Web-Oberfläche** – browsergestützte UI für Update-Suche, Filter, Pakete ignorieren, Systemstatus
|
||||||
- Provides a graphical browser UI for checking and installing updates
|
- **Desktop-App** – Electron-Wrapper für native Fenster-Integration
|
||||||
- Provides an Electron desktop app wrapper for the GUI
|
- **systemd-Timer** – prüft alle 2 Stunden, erinnert wöchentlich
|
||||||
- Supports update search, source filters, ignored packages, system status, and auto-refresh
|
- **Einstellungen** – Terminal, Sprache (DE/EN), Auto-Refresh, Ignorierte Pakete, AUR an/aus
|
||||||
- Includes a systemd user timer that checks every two hours and reminds weekly
|
- **Selektive Installation** – einzelne Pakete gezielt aktualisieren
|
||||||
- Provides an interactive `update` command
|
|
||||||
|
|
||||||
## Requirements
|
---
|
||||||
|
|
||||||
- Arch Linux
|
## GUI – Web & Desktop
|
||||||
- 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
|
Die GUI bietet dir:
|
||||||
|
|
||||||
Build the Go backend:
|
| Funktion | Beschreibung |
|
||||||
|
|----------|-------------|
|
||||||
|
| 🔄 Refresh | Update-Liste manuell oder automatisch aktualisieren |
|
||||||
|
| 🔍 Suche & Filter | Pakete nach Quelle (Repo/AUR) filtern und durchsuchen |
|
||||||
|
| 📦 Selektive Installation | Nur bestimmte Pakete installieren |
|
||||||
|
| 🙈 Pakete ausblenden | Noise-Reduktion durch Ignorieren |
|
||||||
|
| 🖥️ Systemstatus | Pacman-Lock, Festplatte, Kernel, AUR-Helper, Terminal |
|
||||||
|
| ⚙️ Einstellungen | Timer, Terminal, Sprache, Auto-Refresh, Bestätigungen |
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make build
|
# Web-UI im Browser öffnen
|
||||||
|
lazy-update-manager gui web
|
||||||
|
|
||||||
|
# Desktop-App (wenn prefer_electron aktiviert)
|
||||||
|
lazy-update-manager gui
|
||||||
```
|
```
|
||||||
|
|
||||||
Full install (recommended):
|
> Selektive Paket-Installs nutzen `pacman -S --needed` oder den AUR-Helper mit `-S --needed`.
|
||||||
|
> Full system updates sind auf Arch der sicherere Weg.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Mit install.sh (empfohlen)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./install.sh
|
./install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
- Prüft Abhängigkeiten (Go, Node.js, npm)
|
||||||
|
- Installiert npm-Pakete (Electron)
|
||||||
|
- Baut Go-Backend
|
||||||
|
- Kopiert Binary nach `~/.local/bin/`
|
||||||
|
- Legt Launcher `lazy-update-manager-electron` an
|
||||||
|
- Installiert Desktop-Eintrag (für Wofi/Rofi)
|
||||||
|
- Aktiviert `prefer_electron` in der Config
|
||||||
|
- Installiert und aktiviert systemd-Timer
|
||||||
|
|
||||||
|
### Manuell mit make
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./bin/lazy-update-manager status
|
make build # Nur Go-Backend bauen
|
||||||
./bin/lazy-update-manager check
|
make install # Binary + Desktop + systemd installieren
|
||||||
./bin/lazy-update-manager check -quiet
|
make desktop # Electron-App im Dev-Modus starten
|
||||||
./bin/lazy-update-manager notify
|
make desktop-dist # Distribution bauen (AppImage, Pacman)
|
||||||
./bin/lazy-update-manager notify -force
|
|
||||||
./bin/lazy-update-manager gui
|
|
||||||
./bin/lazy-update-manager update
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Graphical Interface
|
### Electron-Distribution bauen
|
||||||
|
|
||||||
```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 (development):
|
|
||||||
|
|
||||||
```sh
|
|
||||||
make desktop
|
|
||||||
```
|
|
||||||
|
|
||||||
Or use the installed launcher directly:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
lazy-update-manager-electron
|
|
||||||
```
|
|
||||||
|
|
||||||
Build distribution packages (AppImage, Pacman):
|
|
||||||
|
|
||||||
```sh
|
|
||||||
make desktop-dist
|
|
||||||
```
|
|
||||||
|
|
||||||
### Desktop Launcher
|
|
||||||
|
|
||||||
After installation, a launcher script `lazy-update-manager-electron` is placed in `~/.local/bin/`. It sets the project directory and starts Electron directly. This is also what the desktop entry (wofi/rofi) uses.
|
|
||||||
|
|
||||||
When running `lazy-update-manager gui` from the terminal, the Go backend tries to start the Electron app automatically when `prefer_electron` is enabled (default after installation). You can force the web interface with `lazy-update-manager gui web`.
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
```sh
|
|
||||||
./install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Or with `make`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
make install
|
|
||||||
```
|
|
||||||
|
|
||||||
This installs:
|
|
||||||
|
|
||||||
- the binary to `~/.local/bin/lazy-update-manager`
|
|
||||||
- the Electron app launcher to `~/.local/bin/lazy-update-manager-electron`
|
|
||||||
- a desktop entry to `~/.local/share/applications/lazy-update-manager.desktop`
|
|
||||||
- the user service and timer to `~/.config/systemd/user/`
|
|
||||||
|
|
||||||
The installer also runs `npm install`, builds the Go backend, sets `prefer_electron: true` in the config, and enables the systemd timer.
|
|
||||||
|
|
||||||
### Build Electron distribution packages
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./install.sh electron-dist
|
./install.sh electron-dist
|
||||||
```
|
```
|
||||||
|
|
||||||
### Check version and update
|
### Aktualisieren
|
||||||
|
|
||||||
After installing, check the installed version with:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
lazy-update-manager version
|
|
||||||
```
|
|
||||||
|
|
||||||
To update to the latest version from this repository:
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git pull --ff-only
|
git pull --ff-only
|
||||||
./install.sh
|
./install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
If you prefer to test the local build without installing, run the bundled binary directly:
|
---
|
||||||
|
|
||||||
```sh
|
## Anforderungen
|
||||||
./bin/lazy-update-manager gui
|
|
||||||
```
|
|
||||||
|
|
||||||
## Weekly Reminder
|
| Paket | Hinweis |
|
||||||
|
|-------|---------|
|
||||||
|
| Arch Linux | – |
|
||||||
|
| Go ≥ 1.22 | Zum Bauen |
|
||||||
|
| `pacman-contrib` | Empfohlen für `checkupdates` |
|
||||||
|
| `paru` / `yay` | Optional – für AUR-Updates |
|
||||||
|
| `libnotify` | Optional – für `notify-send` |
|
||||||
|
| Node.js + npm | Optional – für Electron-Desktop-App |
|
||||||
|
|
||||||
The timer runs every two hours, but `lazy-update-manager notify` stores the last reminder timestamp in:
|
---
|
||||||
|
|
||||||
```text
|
## Desktop-App Details
|
||||||
~/.local/state/lazy-update-manager/state.json
|
|
||||||
```
|
|
||||||
|
|
||||||
That means you only get a reminder once per week while updates are available.
|
Der **Launcher** `~/.local/bin/lazy-update-manager-electron` startet Electron mit dem richtigen Arbeitsverzeichnis. Er wird vom Desktop-Eintrag (Wofi/Rofi) und intern von `lazy-update-manager gui` verwendet.
|
||||||
|
|
||||||
Settings are stored in:
|
Suchreihenfolge für das Projektverzeichnis:
|
||||||
|
1. `$LAZY_UPDATE_MANAGER_DIR` (Env-Variable)
|
||||||
|
2. Aktuelles Arbeitsverzeichnis (wenn `electron/main.cjs` existiert)
|
||||||
|
3. Relativ zum Binary-Pfad
|
||||||
|
4. `$HOME/Projekte/LazyUpdateManager`
|
||||||
|
|
||||||
```text
|
---
|
||||||
~/.config/lazy-update-manager/config.json
|
|
||||||
```
|
|
||||||
|
|
||||||
## Check Timer
|
## Daten & Konfiguration
|
||||||
|
|
||||||
|
| Pfad | Inhalt |
|
||||||
|
|------|--------|
|
||||||
|
| `~/.config/lazy-update-manager/config.json` | Einstellungen (Terminal, Sprache, AUR, Timer, …) |
|
||||||
|
| `~/.local/state/lazy-update-manager/state.json` | Letzter Check, letzte Erinnerung, Update-Count |
|
||||||
|
| `~/.local/share/applications/lazy-update-manager.desktop` | Desktop-Eintrag für Menüs/Wofi |
|
||||||
|
| `~/.config/systemd/user/lazy-update-manager.{service,timer}` | systemd-Timer |
|
||||||
|
|
||||||
|
### Timer-Status prüfen
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
systemctl --user status lazy-update-manager.timer
|
systemctl --user status lazy-update-manager.timer
|
||||||
systemctl --user list-timers lazy-update-manager.timer
|
systemctl --user list-timers lazy-update-manager.timer
|
||||||
```
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lizenz
|
||||||
|
|
||||||
|
MIT
|
||||||
|
|||||||
Reference in New Issue
Block a user