# 🐧 Jakob's Dotfiles Dieses Repository verwaltet meine System-Konfigurationen unter **CachyOS** (Arch Linux) mit **Hyprland** und der **Fish-Shell**. ## 🛠 Setup-Struktur Ich verwende ein **Bare Repository**, um mein Home-Verzeichnis sauber zu halten. Die Git-Datenbank liegt in `~/.dotfiles`, aber die Dateien bleiben an ihrem Platz. ### 1. Initialisierung (auf einem neuen System) ```fish git init --bare $HOME/.dotfiles alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' config config --local status.showUntrackedFiles no ``` --- ## 🔐 Authentifizierung (Browser-Login / FIDO) Um den "Windows-Style" Login über den Browser (Gitea + WebAuthn/FIDO) zu ermöglichen, wird der **Git Credential Manager (GCM)** in Kombination mit **GPG** und **pass** genutzt. ### Installation der Tools ```fish # GCM über AUR (paru) paru -S git-credential-manager-bin # Pass und GPG über pacman sudo pacman -S pass gnupg ``` ### Konfiguration des Passwort-Speichers 1. **GPG-Key erstellen:** `gpg --generate-key` 2. **ID kopieren** (z.B. `90D469EF...`) 3. **Pass initialisieren:** `pass init ` 4. **Git-Helper setzen:** ```fish config config --local credential.helper manager config config --local credential.credentialStore gpg ``` --- ## � VS Code & Electron Keyring (Hyprland) Da unter Hyprland kein Standard-Keyring läuft, VS Code diesen aber zwingend benötigt (z. B. für GitHub Copilot, Settings-Sync oder Git), nutzen wir eine Brücke. Diese stellt die D-Bus Secret Service API bereit und speichert die Geheimnisse direkt in unserer bestehenden pass-Datenbank. ### 1. Installation der Brücke ```fish # Installiert den pass-secret-service über das AUR paru -S pass-secret-service-bin ``` ### 2. Dienst aktivieren Damit die Brücke im Hintergrund läuft, aktivieren wir den zugehörigen Systemd-User-Service: ```fish systemctl --user enable --now pass-secret-service ``` ### 3. VS Code konfigurieren VS Code muss angewiesen werden, die D-Bus Schnittstelle zu nutzen. In VS Code die Command Palette öffnen (Strg + Shift + P), nach Preferences: Configure Runtime Arguments suchen und den folgenden Eintrag in der argv.json setzen: ```json "password-store": "gnome-libsecret" ``` *(Hinweis: gnome-libsecret ist hier lediglich das Electron-Schlagwort für die D-Bus-Schnittstelle, die wir mit pass gekapert haben).* ### 4. GPG-Agent Cache konfigurieren (Empfohlen) Damit VS Code nicht bei jedem Sync-Vorgang im Hintergrund ein Passwort-Popup triggert, sollte der GPG-Cache erhöht werden. Dazu die Datei `~/.gnupg/gpg-agent.conf` anpassen: ``` default-cache-ttl 3600 max-cache-ttl 28800 ``` Anschließend den Agenten neu laden: ```fish gpg-connect-agent reloadagent /bye ``` --- ## �📂 Wichtige Dateien im Repo * **Hyprland:** `~/.config/hypr/hyprland.conf` (Keybinds & Window-Rules) * **Hyprpaper:** `~/.config/hypr/hyprpaper.conf` (Neue Block-Syntax!) * **Waybar/Wofi:** Styles und Configs für Topbar und Launcher. * **Fish:** `~/.config/fish/config.fish` (Inklusive `config` Alias und deaktiviertem Fastfetch). * **Kitty:** `~/.config/kitty/kitty.conf` (Transparenz & Blur). --- ## ⌨️ Täglicher Workflow Zum Hinzufügen oder Ändern von Dateien wird der `config`-Alias genutzt: ```fish config status config add config commit -m "Nachricht" config push ``` *Hinweis: Beim Push öffnet sich automatisch der Browser für den Gitea-Login.*