# 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 ```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 - **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 --- ## GUI – Web & Desktop Die GUI bietet dir: | 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 # Web-UI im Browser öffnen lazy-update-manager gui web # Desktop-App (wenn prefer_electron aktiviert) lazy-update-manager gui ``` > 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 ``` - 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 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) ``` ### Electron-Distribution bauen ```sh ./install.sh electron-dist ``` ### Aktualisieren ```sh git pull --ff-only ./install.sh ``` --- ## Anforderungen | 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 | --- ## Desktop-App Details 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. 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` --- ## 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