99 lines
3.4 KiB
Markdown
99 lines
3.4 KiB
Markdown
# 🐧 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
|
||
```
|
||
|
||
---
|
||
|
||
## <20> 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
|
||
```
|
||
|
||
---
|
||
|
||
## <20>📂 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.* |