No description
Find a file
Rene 7d35a2cd7a toolbox: capture_output durch stdout=PIPE ersetzt (fzf-Kompatibilitaet)
fzf zeichnet die UI ueber stderr. capture_output=True piped auch stderr,
wodurch fzf auf aelteren Versionen (0.44, Debian) haengt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 14:22:42 +02:00
bin toolbox: capture_output durch stdout=PIPE ersetzt (fzf-Kompatibilitaet) 2026-03-31 14:22:42 +02:00
heic-scripts heic-scripts: executable flag setzen 2026-03-14 10:02:31 +01:00
micro Fix Forgejo URLs: dsm.motocamp.de:3051 → git.motocamp.de 2026-03-07 16:58:16 +01:00
nvim Fix Forgejo URLs: dsm.motocamp.de:3051 → git.motocamp.de 2026-03-07 16:58:16 +01:00
oh-my-zsh/custom Submodule-Updates: zsh-syntax-highlighting und powerlevel10k 2026-03-14 08:18:46 +01:00
zsh git-notify: Shell-Start-Benachrichtigung bei Remote-Updates 2026-03-27 14:01:48 +01:00
.p10k.zsh Add git-check-all.sh, git-update-all.sh und .p10k.zsh 2026-03-09 19:55:36 +01:00
README.md toolbox: 65 Tools, Install/Uninstall, Ctrl-N, ausführliche Beschreibungen 2026-03-28 10:49:59 +01:00

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)

  1. Auf einem bestehenden Mac: gitsync ausfuehren (pusht alles)
  2. 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
    
  3. Danach reicht: gitsync (lokal) oder mac-sync (frisch vom Server)