dotfiles-rene/README.md
rene c5915545ec README: toolbox, Terminal-Tools-Tabelle und Inhaltsverzeichnis aktualisiert
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 13:31:09 +01:00

153 lines
5.2 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 - 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)