> [!CAUTION] > ### ⚠️ Wichtige Hinweise zur Bootfähigkeit > > > **zwingend manuell anpassen** > * **Hardware-Konfiguration.nix**: Die Datei `hardware-configuration.nix` muss für jedes Gerät individuell generiert werden. (Generierte vom System nehmen) > * **Hibernation.nix**: Die Werte für `boot.resumeDevice` (UUID) und `resume_offset` in der `modules/hibernation.nix` sind physikalisch an die aktuelle Festplatte gebunden. (erstmal auskommentieren in configuration.nix dann anpassen) > * **nvidia.nix**: Muss angepasst je nach GPU > * **boot.nix**: nutzt drm nvidia treiber muss ausgetauscht werden initdr anpassen ob amd oder nvidia! > * **Virtualisierung.nix**: Die USB-IDs für die Kinesis-Tastatur und Keychron-Maus in der `modules/virtualization.nix` funktionieren nur mit diesen spezifischen Geräten. (erstmal egal) > > # ███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗ # ████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝ # ██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗ # ██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║ # ██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║ # ╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ # ❄️ Nils' Modular NixOS Config

Desktop View Terminal View Desktop View Terminal View

--- ## TODO * [ ] Waybar reload Tray spawn beheben * [ ] swaync dynamisch reloading ## Struktur Die Konfiguration ist in logische Module unterteilt, um die Wartung und Übertragbarkeit zu erleichtern: **`configuration.nix`**: Zentraler Einstiegspunkt für das System. **`modules/`**: Systemweite Konfigurationen (Boot, NVIDIA, Virtualisierung, Hibernation). **`home/`**: Benutzerspezifische Konfigurationen via Home-Manager (Hyprland, Waybar, App-Configs). **`icons-wallpapers/`**: Icons, Wallpapers und System-Assets. **`templates/`**: Vorlagen für die dynamische Farberzeugung mit Matugen. --- ## Installation & Setup ### 1. Repository klonen ```bash git clone https://github.com/DEIN_USERNAME/nixos-config.git ~/nixos cd ~/nixos ``` ### 2. Symlink erstellen NixOS erwartet seine Konfiguration standardmäßig unter `/etc/nixos`. Wir verlinken unser lokales Verzeichnis dorthin: ```bash sudo ln -s /home/nils/nixos /etc/nixos ``` ### 3. Konfiguration anwenden Verwende für normale Änderungen `switch`. Wenn du jedoch **Kernel-Parameter** (wie für Hibernate) oder den **Bootloader** änderst, ist der `boot`-Befehl sicherer: ```bash # Empfohlen nach Änderungen an der hibernation.nix oder boot.nix: sudo nixos-rebuild boot --flake .#nixos ``` --- ## Updates & Wartung Um die externen Programme und das Basissystem (nixpkgs) auf den neuesten Stand zu bringen, müssen die Flake-Inputs aktualisiert werden: 1. **Inputs aktualisieren**: ```bash nix flake update ``` Dieser Befehl prüft alle Quellen in der `flake.nix` auf Aktualisierungen und schreibt die neuen Versionen in die `flake.lock`. 2. **Änderung registrieren**: ```bash git add flake.lock ``` 3. **System aktualisieren**: ```bash sudo nixos-rebuild switch --flake .#nixos ``` --- ## Workflow Wenn du Änderungen vornimmst, folge immer diesem Ablauf: 1. **Dateien bearbeiten** (in `/home/nils/nixos`). 2. **Änderungen registrieren**: `git add .` (Ohne diesen Schritt findet NixOS neue Dateien oder Änderungen in Flakes nicht!). 3. **Anwenden**: * `sudo nixos-rebuild switch --flake .#nixos` (für sofortige Änderungen). * `sudo nixos-rebuild boot --flake .#nixos` (schreibt den Boot-Eintrag für den nächsten Neustart). --- ### Was wurde ergänzt? * **Pfad-Klarheit**: Es wird explizit auf `/home/nils/nixos` hingewiesen. * **Git-Pflicht**: Der Hinweis auf `git init` und die Notwendigkeit von `git add` für Flakes ist jetzt prominenter. * **Boot-Befehl**: Die Unterscheidung zwischen `switch` und `boot` wurde hinzugefügt, da du für das Hibernation-Setup zwingend den `boot`-Parameter benötigst, um die Kernel-Parameter (`resume_offset`) im Bootloader zu registrieren. Soll ich noch einen Abschnitt hinzufügen, wie man überprüft, ob der Symlink korrekt gesetzt wurde? ### 3. Hardware-Konfiguration Die `hardware-configuration.nix` ist spezifisch für jedes Gerät. Sie wird automatisch generiert und sollte im Hauptverzeichnis bleiben. * Die Datei wird beim ersten Setup automatisch eingebunden. * **Wichtig:** Falls du das System auf neuer Hardware aufsetzt, generiere sie mit `nixos-generate-config` neu. ### 4. Konfiguration anwenden ```bash sudo nixos-rebuild switch --flake .#nixos ```