diff --git a/README.md b/README.md index 5c2e078..ccea3d3 100644 --- a/README.md +++ b/README.md @@ -14,90 +14,91 @@ cd LazyUpdateManager ./install.sh ``` -That's it. After installation you have: +After installation: -| 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` | +| Command | Action | +|---------|--------| +| `lazy-update-manager gui` | Open the desktop app (or launch from app menu) | +| `lazy-update-manager gui web` | Open the web UI in your browser | +| `lazy-update-manager check` | Check for updates | +| `lazy-update-manager status` | Show available updates | +| `lazy-update-manager update` | Run interactive full system update | +| `lazy-update-manager version` | Print installed 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 +- **Automatic updates** – checks official repos (`checkupdates` / `pacman -Qu`) and AUR (`paru` / `yay`) +- **Weekly reminder** – desktop notification via `notify-send` or `hyprctl notify`, at most once per week +- **Web UI** – browser-based interface for searching, filtering, ignoring packages, and system status +- **Desktop app** – Electron wrapper for native window integration +- **systemd timer** – checks every 2 hours, reminds weekly +- **Settings** – terminal, language (DE/EN), auto-refresh, ignored packages, AUR toggle +- **Selective installs** – update individual packages when needed --- ## GUI – Web & Desktop -Die GUI bietet dir: +The GUI lets you: -| 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 | +| Feature | Description | +|---------|-------------| +| 🔄 Refresh | Manual or automatic update list refresh | +| 🔍 Search & filter | Filter packages by source (repo/AUR) | +| 📦 Selective install | Install only selected packages | +| 🙈 Hide packages | Reduce noise by ignoring packages | +| 🖥️ System status | Pacman lock, disk space, kernel, AUR helper, terminal | +| ⚙️ Settings | Timer interval, terminal, language, auto-refresh, confirmation prompts | ```sh -# Web-UI im Browser öffnen +# Open web UI in browser lazy-update-manager gui web -# Desktop-App (wenn prefer_electron aktiviert) +# Open desktop app (when prefer_electron is enabled) 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. +> Selective installs use `pacman -S --needed` or the AUR helper with `-S --needed`. +> Full system updates are the safer default on Arch – partial upgrades can cause dependency issues. --- ## Installation -### Mit install.sh (empfohlen) +### With install.sh (recommended) ```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 +What it does: +- Checks dependencies (Go, Node.js, npm) +- Installs npm packages (Electron) +- Builds the Go backend +- Copies the binary to `~/.local/bin/` +- Creates the `lazy-update-manager-electron` launcher +- Installs the desktop entry (for app menus / launchers) +- Enables `prefer_electron` in the config +- Installs and activates the systemd timer -### Manuell mit make +### With 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) +make build # Build Go backend only +make install # Install binary + desktop entry + systemd +make desktop # Run Electron app in dev mode +make desktop-dist # Build distribution packages (AppImage, Pacman) ``` -### Electron-Distribution bauen +### Build Electron distribution ```sh ./install.sh electron-dist ``` -### Aktualisieren +### Update ```sh git pull --ff-only @@ -106,41 +107,41 @@ git pull --ff-only --- -## Anforderungen +## Requirements -| Paket | Hinweis | -|-------|---------| +| Package | Notes | +|---------|-------| | 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 | +| Go ≥ 1.22 | Required to build | +| `pacman-contrib` | Recommended, provides `checkupdates` | +| `paru` / `yay` | Optional – for AUR updates | +| `libnotify` | Optional – for `notify-send` | +| Node.js + npm | Optional – for the Electron desktop app | --- -## Desktop-App Details +## 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. +The **launcher** `~/.local/bin/lazy-update-manager-electron` starts Electron with the correct working directory. It is used by the desktop entry (app menu / launcher) and internally by `lazy-update-manager gui`. -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 +Project directory lookup order: +1. `$LAZY_UPDATE_MANAGER_DIR` (environment variable) +2. Current working directory (if `electron/main.cjs` exists) +3. Relative to the binary path 4. `$HOME/Projekte/LazyUpdateManager` --- -## Daten & Konfiguration +## Data & Configuration -| 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 | +| Path | Contents | +|------|----------| +| `~/.config/lazy-update-manager/config.json` | Settings (terminal, language, AUR, timer, …) | +| `~/.local/state/lazy-update-manager/state.json` | Last check, last reminder, update count | +| `~/.local/share/applications/lazy-update-manager.desktop` | Desktop entry for app menus | +| `~/.config/systemd/user/lazy-update-manager.{service,timer}` | systemd timer files | -### Timer-Status prüfen +### Check timer status ```sh systemctl --user status lazy-update-manager.timer @@ -149,6 +150,6 @@ systemctl --user list-timers lazy-update-manager.timer --- -## Lizenz +## License MIT