# 🐧 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 <DEINE_GPG_ID>`
4. **Git-Helper setzen:**
   ```fish
   config config --local credential.helper manager
   config config --local credential.credentialStore gpg
   ```

---

## 📂 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 <pfad_zur_datei>
config commit -m "Nachricht"
config push
```

*Hinweis: Beim Push öffnet sich automatisch der Browser für den Gitea-Login.*