Files
LazyUpdateManager/README.md

155 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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