| bin | ||
| heic-scripts | ||
| micro | ||
| nvim | ||
| oh-my-zsh/custom | ||
| zsh | ||
| .p10k.zsh | ||
| README.md | ||
dotfiles-rene
Dotfiles und Skripte fuer macOS und Linux (Ubuntu auf MacBook Pro).
Wird automatisch von 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
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.
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).
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.
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.
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)
# 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:
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)
- Auf einem bestehenden Mac:
gitsyncausfuehren (pusht alles) - Auf dem neuen Mac (noch ohne .zshrc) einmalig:
curl -fsSL https://git.motocamp.de/rene/dotfiles-rene/raw/branch/main/bin/git-sync-all.sh | bash - Danach reicht:
gitsync(lokal) odermac-sync(frisch vom Server)