From a244b89f6408291cdd3368f88217764d80ff4525 Mon Sep 17 00:00:00 2001 From: Pepe44DEV Date: Wed, 27 May 2026 03:22:21 +0200 Subject: [PATCH] docs: restructure README with tables and better overview --- README.md | 238 +++++++++++++++++++++++++----------------------------- 1 file changed, 108 insertions(+), 130 deletions(-) diff --git a/README.md b/README.md index 02a2f2a..5c2e078 100644 --- a/README.md +++ b/README.md @@ -1,176 +1,154 @@ # 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 +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 -- 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 +- **Automatische Updates** – prüft offizielle Repos (`checkupdates` / `pacman -Qu`) und AUR (`paru` / `yay`) +- **Wöchentliche Erinnerung** – per `notify-send` oder `hyprctl notify`, maximal einmal pro Woche +- **Web-Oberfläche** – browsergestützte UI für Update-Suche, Filter, Pakete ignorieren, Systemstatus +- **Desktop-App** – Electron-Wrapper für native Fenster-Integration +- **systemd-Timer** – prüft alle 2 Stunden, erinnert wöchentlich +- **Einstellungen** – Terminal, Sprache (DE/EN), Auto-Refresh, Ignorierte Pakete, AUR an/aus +- **Selektive Installation** – einzelne Pakete gezielt aktualisieren -## 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 +## GUI – Web & Desktop -## 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 -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 ./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 -./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 +make build # Nur Go-Backend bauen +make install # Binary + Desktop + systemd installieren +make desktop # Electron-App im Dev-Modus starten +make desktop-dist # Distribution bauen (AppImage, Pacman) ``` -## 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 (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 +### Electron-Distribution bauen ```sh ./install.sh electron-dist ``` -### 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: +### Aktualisieren ```sh git pull --ff-only ./install.sh ``` -If you prefer to test the local build without installing, run the bundled binary directly: +--- -```sh -./bin/lazy-update-manager gui -``` +## Anforderungen -## 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 -~/.local/state/lazy-update-manager/state.json -``` +## Desktop-App Details -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 systemctl --user status lazy-update-manager.timer systemctl --user list-timers lazy-update-manager.timer ``` + +--- + +## Lizenz + +MIT