- Tool-Dataclass um details, brew, apt Felder erweitert - ~65 Tools in 12 Kategorien (neu: Text/Daten, Dokumente, Bilder, Produktiv) - Nicht installierte Tools gedimmt mit Install-Angebot (brew/apt) - Ctrl-X: Deinstallation mit Bestätigung - Ctrl-N: Wizard zum Hinzufügen eigener Tools (custom_tools.json) - Kategorie-Header zeigt installiert/gesamt-Zähler - Preview-Pane rechts mit ausführlichen Beschreibungen und Beispielen - heic2jpg und h2j korrekt aus Scripts dokumentiert
194 lines
6.8 KiB
Markdown
194 lines
6.8 KiB
Markdown
# dotfiles-rene
|
|
|
|
Dotfiles und Skripte fuer macOS und Linux (Ubuntu auf MacBook Pro).
|
|
|
|
Wird automatisch von [macbook-setup](https://git.motocamp.de/rene/macbook-setup) deployed.
|
|
|
|
## Inhalt
|
|
|
|
```
|
|
bin/ Skripte (gitcheck, gitsync, gitupdate, toolbox)
|
|
zsh/ .zshrc mit Aliases, Cheatsheet, Tool-Integrationen
|
|
micro/ Micro-Editor Konfiguration
|
|
nvim/ Neovim Konfiguration
|
|
oh-my-zsh/custom/ Powerlevel10k, zsh-syntax-highlighting
|
|
heic-scripts/ HEIC-zu-JPEG Konverter (h2j)
|
|
pi/ Raspberry Pi spezifische Configs
|
|
```
|
|
|
|
## Git-Werkzeuge (~/bin)
|
|
|
|
Alle Skripte in `bin/` werden von `setup-desktop.sh` automatisch nach `~/` verlinkt.
|
|
|
|
### gitsync - Repositories synchronisieren
|
|
|
|
Synchronisiert alle Git-Repositories in `~/git-projekte` mit dem Gitea-Server:
|
|
|
|
- Fehlende Repos werden geklont
|
|
- Repos mit Remote-Aenderungen werden gepullt (fast-forward)
|
|
- Repos mit lokalen Commits werden gepusht
|
|
- Repos mit uncommitteten Aenderungen werden markiert
|
|
|
|
```bash
|
|
gitsync # alles synchronisieren
|
|
gitsync --dry-run # nur anzeigen, nichts aendern
|
|
gitsync --path /foo # anderes Basisverzeichnis
|
|
```
|
|
|
|
Die Repo-Liste ist im Skript hinterlegt. Bei neuen Repos dort einen Eintrag ergaenzen.
|
|
|
|
### gitcheck - Repository-Status pruefen
|
|
|
|
Zeigt den Status aller Repositories (lokale Aenderungen, ungepushte/ungepullte Commits).
|
|
Bietet am Ende an, ein dirty Repo direkt in **lazygit** zu öffnen.
|
|
|
|
```bash
|
|
gitcheck # nur Repos mit Aenderungen
|
|
gitcheck --all # alle Repos anzeigen
|
|
gitcheck --short # kompakte Ausgabe (Standard-Alias)
|
|
```
|
|
|
|
### gitupdate - Repositories aktualisieren
|
|
|
|
Pullt alle Repositories (ueberspringt Repos mit lokalen Aenderungen).
|
|
|
|
```bash
|
|
gitupdate # alle Repos pullen
|
|
```
|
|
|
|
### toolbox / tools - interaktiver Tool-Launcher
|
|
|
|
Zweistufiges fzf-Menü: erst Kategorie wählen, dann Tool — mit Preview-Pane für ausführliche
|
|
Beschreibung und Beispiele. Öffnet immer in einem neuen Tab (macOS: iTerm2, Linux: xfce4-terminal,
|
|
gnome-terminal, kitty, alacritty) im aktuellen Verzeichnis.
|
|
|
|
```bash
|
|
tools # interaktiver Launcher
|
|
```
|
|
|
|
Tastenbelegung im Tool-Menü:
|
|
|
|
| Taste | Funktion |
|
|
|-------|----------|
|
|
| `Enter` | Tool in neuem Tab starten |
|
|
| `Ctrl-X` | Installiertes Tool deinstallieren |
|
|
| `Ctrl-N` | Neues Tool hinzufügen (Wizard) |
|
|
| `Esc` | Zurück zur Kategorieauswahl |
|
|
|
|
Nicht installierte Tools werden **gedimmt** angezeigt — `Enter` bietet die Installation an
|
|
(`brew install …` / `sudo apt install …`). Der Kategorie-Header zeigt `(installiert/gesamt)`.
|
|
|
|
Kategorien: Git, Dateien, Anzeige, System, Netzwerk, Text/Daten, Rechnen, Produktiv,
|
|
Dokumente, Bilder, KI, Spass — insgesamt ~65 vorkonfigurierte Tools.
|
|
|
|
**Eigene Tools** werden in `~/.config/toolbox/custom_tools.json` gespeichert und
|
|
beim Start automatisch geladen. Die JSON-Datei ist auch manuell editierbar.
|
|
|
|
Mac-only Tools (z.B. `temps`, `dog`) werden auf Linux automatisch ausgeblendet.
|
|
Linux-Binaries (`batcat`, `fdfind`) werden automatisch aufgelöst.
|
|
|
|
### git-notify - Update-Benachrichtigung beim Shell-Start
|
|
|
|
Läuft automatisch im Hintergrund wenn eine neue interaktive Shell geöffnet wird.
|
|
Prüft per `git fetch` alle konfigurierten Repos auf neue Remote-Commits und gibt eine
|
|
kompakte Meldung aus wenn Updates verfügbar sind — kein Output wenn alles aktuell ist.
|
|
|
|
```
|
|
📥 Git-Updates verfügbar dotfiles-rene (2), ki-agenten (1)
|
|
→ gitsync zum Aktualisieren
|
|
```
|
|
|
|
### cb - Clipboard bereinigen
|
|
|
|
Entfernt die 2 fuehrenden Leerzeichen pro Zeile aus der Zwischenablage, die Claude Code bei der Terminal-Ausgabe einfuegt. Nuetzlich beim Kopieren mehrzeiliger Befehle oder Codeblocks.
|
|
|
|
```bash
|
|
cb # Zwischenablage bereinigen, dann mit Cmd+V einfuegen
|
|
```
|
|
|
|
Verwendet `pbpaste`/`pbcopy` auf macOS und `xclip` auf Linux.
|
|
|
|
## Terminal-Tools (installiert & konfiguriert)
|
|
|
|
Alle Tools sind über `tools` (toolbox) erreichbar. Hier eine Auswahl der wichtigsten:
|
|
|
|
| Tool | Kategorie | Zweck |
|
|
|------|-----------|-------|
|
|
| **lazygit** | Git | Git TUI: stagen, committen, rebasen |
|
|
| **tig** | Git | Git-Log TUI: History, Blame, Branches |
|
|
| **gh** | Git | GitHub CLI: PRs, Issues, Repos |
|
|
| **delta** | Anzeige | Schöne Git-Diffs (side-by-side) |
|
|
| **yazi** | Dateien | TUI-Dateimanager mit Bildvorschau |
|
|
| **fzf** | Dateien | Universeller Fuzzy-Finder |
|
|
| **fd** | Dateien | Schnelles find |
|
|
| **rg** | Dateien | Blitzschnelles grep (ripgrep) |
|
|
| **bat** | Anzeige | cat mit Syntax-Highlighting |
|
|
| **eza** | Anzeige | Modernes ls mit Git-Status |
|
|
| **btop** | System | Systemmonitor (CPU/RAM/Netz/Prozesse) |
|
|
| **jq** | Text/Daten | JSON-Prozessor |
|
|
| **yq** | Text/Daten | YAML/JSON-Prozessor |
|
|
| **pandoc** | Dokumente | Dokument-Konverter (md↔pdf↔docx) |
|
|
| **heic2jpg / h2j** | Bilder | HEIC → JPG konvertieren |
|
|
| **ffmpeg** | Bilder | Video/Audio konvertieren |
|
|
| **tldr** | Produktiv | Vereinfachte Manpages mit Beispielen |
|
|
| **nmap** | Netzwerk | Netzwerk-Scanner |
|
|
| **zoxide** | Dateien | Smart cd (lernt häufige Pfade) |
|
|
|
|
Screensaver (cmatrix, asciiquarium, pipes.sh, cbonsai) rotieren automatisch nach 5 Minuten Idle.
|
|
|
|
## Installation
|
|
|
|
### Automatisch (via macbook-setup)
|
|
|
|
`setup-desktop.sh` klont dieses Repo und verlinkt alles automatisch.
|
|
|
|
### Manuell (bestehender Mac/Linux — z.B. m13, m16)
|
|
|
|
```bash
|
|
# 1. Repo klonen
|
|
git clone https://git.motocamp.de/rene/dotfiles-rene.git ~/git-projekte/dotfiles-rene
|
|
|
|
# 2. zshrc installieren
|
|
cd ~/git-projekte/dotfiles-rene/zsh && bash install-zsh-dotfiles.sh
|
|
|
|
# 3. tools-Binary verlinken
|
|
mkdir -p ~/bin
|
|
ln -sf ~/git-projekte/dotfiles-rene/bin/toolbox ~/bin/toolbox
|
|
ln -sf ~/git-projekte/dotfiles-rene/bin/toolbox ~/bin/tools
|
|
|
|
# 4. Skripte ausführbar machen
|
|
chmod +x ~/git-projekte/dotfiles-rene/bin/*.sh
|
|
```
|
|
|
|
Ab dem nächsten Shell-Start läuft `git-notify` automatisch im Hintergrund und meldet
|
|
verfügbare Updates. Mit `gitsync` werden alle Repos dann auf einmal aktualisiert.
|
|
|
|
## Offline-KI einrichten (neuer Mac)
|
|
|
|
Lokale KI (LM Studio auf M1 Max) ueber VPN nutzen:
|
|
|
|
```bash
|
|
mac-sync # zshrc mit KI-Aliases holen
|
|
git clone https://git.motocamp.de/rene/offline-ki.git ~/git-projekte/offline-ki
|
|
cd ~/git-projekte/offline-ki && pip install -e .
|
|
```
|
|
|
|
Danach (VPN muss verbunden sein):
|
|
|
|
| Alias | Funktion |
|
|
|-------|----------|
|
|
| `ki-chat` | Interaktiver Chat (lokal) |
|
|
| `ki-agent` | Agent mit Dateizugriff (lokal) |
|
|
| `ki-rchat` | Chat ueber ki.motocamp.de (VPN) |
|
|
| `ki-ragent` | Agent ueber ki.motocamp.de (VPN) |
|
|
|
|
Voraussetzung: M1 Max zuhause laeuft mit LM Studio (Server aktiv).
|
|
|
|
## Neuen Mac einrichten (Kurzfassung)
|
|
|
|
1. Auf einem bestehenden Mac: `gitsync` ausfuehren (pusht alles)
|
|
2. Auf dem neuen Mac (noch ohne .zshrc) einmalig:
|
|
```bash
|
|
curl -fsSL https://git.motocamp.de/rene/dotfiles-rene/raw/branch/main/bin/git-sync-all.sh | bash
|
|
```
|
|
3. Danach reicht: `gitsync` (lokal) oder `mac-sync` (frisch vom Server)
|