# 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 - interaktiver Tool-Launcher Startet eine fzf-basierte Auswahl aller installierten Tools mit Kategorien und Kurzbeschreibungen. TUI-Tools (lazygit, btop, yazi…) öffnen in einem neuen Terminal-Tab, Output-Tools laufen direkt inline. Funktioniert auf macOS (iTerm2) und Linux (xfce4-terminal, gnome-terminal, kitty, alacritty). ```bash tools # interaktiver Launcher tools-ref # statisches Cheatsheet (Kurzform: tr) ``` Mac-only Tools (z.B. `temps`) werden auf Linux automatisch ausgeblendet. Linux-Binaries (`batcat`, `fdfind`) werden automatisch aufgelöst. ### 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) | Tool | Zweck | Alias | |------|-------|-------| | **lazygit** | Git TUI: stagen, committen, rebasen | `lg` | | **delta** | Schöne Git-Diffs (side-by-side, automatisch aktiv) | — | | **atuin** | Fuzzy History-Suche mit Zeitstempel | `Ctrl+R` | | **mise** | Tool-Versionen pro Projekt verwalten | `mise use` | | **btop** | Systemmonitor (CPU/RAM/Netz/Prozesse) | `btop` | | **yazi** | Terminal-Dateimanager | `yazi` | | **bat** | cat mit Syntax-Highlighting | `bat` | | **eza** | Modernes ls | `eza -la`, `eza -T` | | **fzf** | Fuzzy-Finder | `Ctrl+T`, `Ctrl+R` | | **zoxide** | Smart cd (lernt häufige Pfade) | `z` | | **nmap** | Netzwerk-Scanner | `nmap` | | **units** | Einheitenumrechnung | `units` | | **cmatrix** | Matrix-Screensaver | `cmatrix` | | **asciiquarium** | Aquarium-Screensaver | `asciiquarium` | | **pipes.sh** | Rohre-Screensaver | `pipes.sh` | | **cbonsai** | Bonsai-Screensaver | `cbonsai` | | **nms** | Sneakers-Entschlüsselungseffekt | `ls \| nms` | Screensaver 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) ```bash git clone https://git.motocamp.de/rene/dotfiles-rene.git ~/git-projekte/dotfiles-rene # zshrc installieren cd ~/git-projekte/dotfiles-rene/zsh && bash install-zsh-dotfiles.sh # toolbox in den PATH legen ln -sf ~/git-projekte/dotfiles-rene/bin/toolbox ~/bin/toolbox ``` ## 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)