From 1ad4b02ab8d88fcd4652f7596b3aa9fa71f66640 Mon Sep 17 00:00:00 2001 From: rene Date: Fri, 27 Mar 2026 12:33:58 +0100 Subject: [PATCH] zshrc: nvim-cheats, claude-profiles, Secrets-Loading, Fixes - nvim-cheats Funktion mit allen wichtigen Shortcuts (neu) - claude-profiles-Block (claude-priv/work/account) - Secrets-Loading via ~/.secrets - PATH bereinigt: LM Studio Duplikat entfernt, npm-global ergaenzt - Screensaver und Cowsay pruefen jetzt ob Tools installiert sind - temps/yazi/fetch Aliases und Cheat-Sheet aktualisiert - Conda-Block und iTerm2-Integration nicht im Repo (maschinenspezifisch) Co-Authored-By: Claude Sonnet 4.6 --- zsh/.zshrc | 172 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 140 insertions(+), 32 deletions(-) diff --git a/zsh/.zshrc b/zsh/.zshrc index f075b5e..8c2786b 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,5 +1,5 @@ # ---------------------------------------------------------- -# Zsh-Konfiguration fuer Rene (Linux / MacBook Pro) +# Zsh-Konfiguration fuer Rene # Oh My Zsh + Powerlevel10k + Micro # ---------------------------------------------------------- @@ -10,34 +10,44 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi -# 1b) Secrets laden (API-Keys etc. — Datei liegt lokal, NICHT im Repo) +# 1b) Secrets laden (API-Keys etc. — liegt lokal, NICHT im Repo) [[ -f "$HOME/.secrets" ]] && source "$HOME/.secrets" # 2) Oh My Zsh Basis export ZSH="$HOME/.oh-my-zsh" + +# Theme: Powerlevel10k ZSH_THEME="powerlevel10k/powerlevel10k" +# Plugins +# - git: Git-Shortcuts +# - zsh-syntax-highlighting: farbige Befehle in der Shell plugins=( git zsh-syntax-highlighting zoxide ) +# Oh My Zsh laden source "$ZSH/oh-my-zsh.sh" -# 3) Powerlevel10k-Konfiguration +# 3) Powerlevel10k-Konfiguration laden (falls vorhanden) [[ -f "$HOME/.p10k.zsh" ]] && source "$HOME/.p10k.zsh" -# 4) Standard-Editor (lokal: micro, SSH: nicht erzwingen) +# 4) Sprache/Lokalisierung (optional, bei Bedarf anpassen) +# export LANG=de_DE.UTF-8 +# export LC_ALL=de_DE.UTF-8 + +# 5) Standard-Editor (lokal: micro, SSH-Session: nichts erzwingen) if [[ -z "$SSH_CONNECTION" ]]; then export EDITOR="micro" export VISUAL="micro" fi -# 5) Pfade -export PATH="$HOME/bin:$HOME/.local/bin:$HOME/.npm-global/bin:$PATH" +# 6) Pfade erweitern +export PATH="$HOME/bin:$HOME/.local/bin:$HOME/.npm-global/bin:$HOME/.lmstudio/bin:$PATH" -# 6) Aliases +# 7) Nützliche Aliases # ls-Varianten alias ll='ls -lha' @@ -49,7 +59,7 @@ alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' -# Konfigdateien +# Schneller in Konfigdateien alias zshconfig='micro ~/.zshrc' alias p10kconfig='micro ~/.p10k.zsh' @@ -61,8 +71,14 @@ alias gp='git push' alias gl='git log --oneline --graph --decorate' alias gitcheck="~/git-check-all.sh --short" alias gitupdate="~/git-update-all.sh" -alias cb="xclip -selection clipboard -o | sed 's/^ //' | xclip -selection clipboard -i" -# Offline-KI Shortcuts (LM Studio via ki CLI) +alias gitsync="~/git-projekte/dotfiles-rene/bin/git-sync-all.sh" +alias mac-sync="curl -fsSL https://git.motocamp.de/rene/dotfiles-rene/raw/branch/main/bin/git-sync-all.sh | bash" +alias cb="pbpaste | sed 's/^ //' | pbcopy" +# Ubuntu-Kompatibilitaet: fd und bat heissen dort anders +command -v fdfind &>/dev/null && ! command -v fd &>/dev/null && alias fd='fdfind' +command -v batcat &>/dev/null && ! command -v bat &>/dev/null && alias bat='batcat' + +# Offline-KI Shortcuts alias ki-chat='ki interactive' alias ki-agent='ki interactive --agent-mode' alias ki-rchat='ki --remote interactive' @@ -77,27 +93,7 @@ alias ki-wetter='ki wetter' alias ki-tl='ki tl' alias fetch="fastfetch" -alias gitsync="~/git-sync-all.sh" -alias mac-sync="curl -fsSL https://git.motocamp.de/rene/dotfiles-rene/raw/branch/main/bin/git-sync-all.sh | bash" - -# Ubuntu-Kompatibilitaet: fd und bat heissen dort anders -command -v fdfind &>/dev/null && ! command -v fd &>/dev/null && alias fd='fdfind' -command -v batcat &>/dev/null && ! command -v bat &>/dev/null && alias bat='batcat' - -# 7) History -HISTFILE="$HOME/.zsh_history" -HISTSIZE=5000 -SAVEHIST=5000 -setopt HIST_IGNORE_DUPS -setopt HIST_IGNORE_SPACE -setopt SHARE_HISTORY - -# 8) Zsh-Optionen -setopt AUTO_CD - -# 9) Fenster-/Tab-Titel -precmd() { print -Pn "\e]0;%n@%m: %~\a" } -export COLORTERM=truecolor +alias temps="sudo powermetrics -s cpu_power,gpu_power,thermal,battery -i 1000 -n 1" # Cheat-Sheet: alle Tools, Aliases und Skripte auf einen Blick tools() { @@ -145,6 +141,7 @@ tools() { fzf Fuzzy-Finder (Ctrl+T Dateien, Ctrl+R History) ncdu interaktive Festplattennutzung duf schoene Uebersicht freier Speicherplatz + yazi Terminal-Dateimanager (q = quit) micro einfacher Editor (Ctrl+S, Ctrl+Q) BILDER (~/bin) @@ -164,11 +161,18 @@ tools() { SYSTEM & KONFIG ──────────────────────────────────────────────────────────────── fetch fastfetch (Systeminfo) + temps CPU/GPU-Temperatur + Akku (Mac) cb Clipboard bereinigen (2 Leerzeichen weg) zshconfig ~/.zshrc bearbeiten p10kconfig ~/.p10k.zsh bearbeiten tldr Kurzanleitung mit Beispielen + CLAUDE CODE + ──────────────────────────────────────────────────────────────── + claude-priv Claude Code mit Privat-Account (mail@motocamp.de) + claude-work Claude Code mit Work-Account (rene@rm202.de) + claude-account priv|work Re-Login: abmelden, Browser, neu anmelden + MACBOOK-SETUP (curl | bash) ──────────────────────────────────────────────────────────────── setup-base.sh <13|16> Basis-Setup (als root) @@ -221,7 +225,8 @@ if [[ -o interactive ]] && command -v cowsay &>/dev/null; then _greet() { local all_cows=(default tux sheep elephant dragon gnu koala) local cow_files=() - local cowpath=$(cowsay -l 2>/dev/null | tail -n +2 | tr ' ' '\n') + local cowpath + cowpath=$(cowsay -l 2>/dev/null | tail -n +2 | tr ' ' '\n') for c in "${all_cows[@]}"; do echo "$cowpath" | grep -qx "$c" && cow_files+=("$c") done @@ -259,3 +264,106 @@ if [[ -o interactive ]] && command -v cowsay &>/dev/null; then _greet unfunction _greet fi + +# 8) History +HISTFILE="$HOME/.zsh_history" +HISTSIZE=5000 +SAVEHIST=5000 + +setopt HIST_IGNORE_DUPS # keine direkt aufeinanderfolgenden Duplikate +setopt HIST_IGNORE_SPACE # Befehle, die mit Leerzeichen beginnen, nicht speichern +setopt SHARE_HISTORY # History zwischen mehreren Zsh-Sessions teilen + +# Automatisches cd wenn nur ein Verzeichnisname eingegeben wird +setopt AUTO_CD + +# 9) Prompt-Titel (Fenster-/Tab-Titel) +precmd() { print -Pn "\e]0;%n@%m: %~\a" } +export COLORTERM=truecolor + +# claude-profiles-start +alias claude-priv='CLAUDE_CONFIG_DIR=~/.claude-priv command claude' # mail@motocamp.de +alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work command claude' # rene@rm202.de +alias claude='echo "Bitte claude-priv oder claude-work verwenden."' +claude-account() { + local profile="$1" + if [[ "$profile" != "priv" && "$profile" != "work" ]]; then + echo "Verwendung: claude-account priv|work" + return 1 + fi + local config_dir="$HOME/.claude-${profile}" + echo "==> Claude Code abmelden (${profile})..." + CLAUDE_CONFIG_DIR="$config_dir" command claude /logout + echo "" + echo "==> Browser oeffnen - bitte ab- und neu anmelden..." + open "https://console.anthropic.com" + read -r "?Wenn im Browser fertig, Enter druecken..." + echo "" + echo "==> Claude Code anmelden (${profile})..." + CLAUDE_CONFIG_DIR="$config_dir" command claude /login +} +# claude-profiles-end + +nvim-cheats() { + echo -e "\e[1;36m=== NVIM CHEAT SHEET ===\e[0m\n" + + # Navigation + echo -e "\e[1mNAVIGATION & POSITIONIERUNG\e[0m" + echo "-------------------------------------------" + echo "h/j/k/l : Links/Unten/Oben/Rechts bewegen" + echo "w/b : Zum nächsten/vorherigen Wort springen" + echo "gg/G : Anfang / Ende der Datei" + echo ":Nr : Zur Zeilenummer Nr springen (z.B. :42)\n" + + # LÖSCHEN + echo -e "\e[1;33mLÖSCHEN & BEARBEITEN\e[0m" + echo "-------------------------------------------" + echo "dd : Ganze Zeile löschen" + echo "dw : Wort löschen" + echo "D / d$ : Alles nach Cursor bis Zeilenende löschen" + echo "d0 : Alles vor Cursor bis Zeilenbeginn löschen" + echo "x : Zeichen unter dem Cursor löschen" + echo "X : Zeichen vor dem Cursor löschen\n" + + # EDITING & UNDO + echo -e "\e[1mEDITING & RÜCKGÄNGIG\e[0m" + echo "-------------------------------------------" + echo "i/a : Einfügemodus (vor/nach Cursor)" + echo "o/O : Neue Zeile öffnen (unter/über)" + echo "Esc : In den Normalmodus zurückkehren" + echo "u : Rückgängig machen (Undo)" + echo "Ctrl-r : Wiederherstellen (Redo)\n" + + # VISUELL & COPY/PASTE + echo -e "\e[1mVISUELL WÄHLEN & KOPIEREN\e[0m" + echo "-------------------------------------------" + echo "v : Visueller Modus starten" + echo "yy/yw : Kopieren (Yank) Zeile/Wort" + echo "p/P : Einfügen (Paste) nach/vor Cursor\n" + + # CHANGE (Löschen + Einfügemodus) + echo -e "\e[1mCHANGE (Löschen & direkt tippen)\e[0m" + echo "-------------------------------------------" + echo "cw : Wort ab Cursor ersetzen" + echo "cc / S : Ganze Zeile ersetzen" + echo "ci\" : Inhalt in Anführungszeichen ersetzen" + echo "ci( : Inhalt in Klammern ersetzen" + echo "C / c\$ : Alles nach Cursor bis Zeilenende ersetzen\n" + + # SUCHE & ERSETZEN + echo -e "\e[1mSUCHE & ERSETZEN\e[0m" + echo "-------------------------------------------" + echo "/suche : Suche vorwärts" + echo "?suche : Suche rückwärts" + echo "n/N : Nächsten/vorherigen Treffer anspringen" + echo "* : Wort unter Cursor suchen" + echo ":%s/alt/neu/g : Ersetzen (global in Datei)\n" + + # DATEI & FENSTER + echo -e "\e[1mDATEI & FENSTER\e[0m" + echo "-------------------------------------------" + echo ":wq / :x : Speichern und schließen" + echo ":q! : Änderungen verwerfen & schließen" + echo ":sp file : Split horizontal (neues Fenster unten)" + echo ":vs file : Split vertikal (neues Fenster rechts)\n" +}