155 lines
4.4 KiB
Markdown
155 lines
4.4 KiB
Markdown
# 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 <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
|
||
|
||
- **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
|