Switch to the PC config layout: Plasma, Limine, shared configs/

Same modules and settings as nexoniarz-config-nixos; only hardware.nix
differs. Pantheon/LightDM -> Plasma 6/SDDM, systemd-boot -> Limine,
system.nix/drivers.nix split into focused modules, Firefox prefs and
fastfetch config in configs/.

Laptop hardware kept: AMD 680M + RTX 4050 PRIME offload (bus IDs
unchanged), NVIDIA suspend fix, asusd + supergfxd, tablet driver,
DualSense ERTM fix, laptop scripts (brightness, hotspot, telemetry,
weather). Dropped: GoPro v4l2loopback webcam, blueman.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Nexoniarz 2026-10-02 21:07:55 +02:00
commit 863abb4fd3
21 changed files with 754 additions and 367 deletions

View file

@ -1,36 +1,43 @@
# nexoniarz-config-nixos-laptop
My personal NixOS system configuration tailored for daily use on an
**ASUS TUF Gaming A15 (FA507NU)**.
My personal NixOS configuration for an ASUS TUF Gaming A15 (FA507NU).
Shares its layout and settings with my PC config
([nexoniarz-config-nixos](https://github.com/Nexoniarz/nexoniarz-config-nixos));
only the hardware differs.
## Overview
- **OS:** NixOS
- **DE / Compositor:** Pantheon (gala, Wayland)
- **Display manager:** LightDM (elementary greeter)
- **OS:** NixOS 26.05 (unstable channel)
- **Desktop:** KDE Plasma 6 on Wayland (KWin), SDDM
- **Bootloader:** Limine
- **Terminal:** Konsole
- **Shell:** Zsh
- **Audio:** PipeWire
- **CPU:** AMD Ryzen 5 7535HS
- **GPU:** AMD Radeon 680M (iGPU, drives the internal panel) + NVIDIA RTX
4050 Max-Q (dGPU, PRIME render offload only — run anything through it with
`nvidia-offload <command>`)
- **Laptop control:** `asusctl` (fan curves, keyboard backlight, battery
charge limit) + `supergfxctl` (dGPU power-state switching)
- **GPU:** AMD Radeon 680M (iGPU, drives the panel) + NVIDIA RTX 4050 Max-Q
(PRIME render offload only; run things on it with `nvidia-offload <command>`)
- **Laptop control:** asusctl (fans, keyboard backlight, charge limit) + supergfxctl (dGPU power state)
## Layout
- `configuration.nix` — top-level imports
- `hardware-configuration.nix` — generated by `nixos-generate-config`, don't
hand-edit
- `modules/system.nix` — bootloader, networking, time, sound, hardening,
nix-ld
- `modules/drivers.nix` — hybrid graphics (NVIDIA PRIME offload), ASUS
daemons, misc hardware (webcam loopback, tablet driver)
- `modules/desktop.nix` — Pantheon desktop environment
- `modules/users.nix` — user account, Steam, Firefox, Flatpak
- `modules/apps.nix` — all installed packages
- `modules/scripts.nix` + `modules/scripts/` — small custom CLI helpers
(encrypted vault toggle, metadata stripping, brightness control, Wi-Fi
hotspot, system telemetry, weather fetch)
| File | Contents |
|---|---|
| `configuration.nix` | Imports only |
| `modules/boot.nix` | Limine, kernel, zram/swap |
| `modules/networking.nix` | NetworkManager, firewall, DNS-over-TLS, MAC randomization |
| `modules/locale.nix` | Timezone, locale, console keymap |
| `modules/nix-settings.nix` | Nix features, GC, unfree |
| `modules/security.nix` | sysctl hardening, sudo, firejail, GnuPG, polkit |
| `modules/hardware.nix` | Hybrid graphics (PRIME offload), ASUS daemons, tablet, Bluetooth, I2C, RTL-SDR, printing |
| `modules/audio.nix` | PipeWire |
| `modules/desktop.nix` | Plasma, SDDM, fonts, theming |
| `modules/users.nix` | Account, shell, Steam, Flatpak |
| `modules/apps.nix` | Installed packages, nix-ld |
| `modules/default-apps.nix` | MIME associations |
| `modules/scripts.nix` | Custom scripts in `modules/scripts/` (vault, metadata stripping, brightness, Wi-Fi hotspot, telemetry, weather) |
| `modules/fastfetch.nix` | Installs `configs/fastfetch/config.jsonc` system-wide |
| `modules/firefox.nix` | Firefox, with prefs from `configs/firefox/prefs.js` (reapplied each start, not locked) |
| `configs/` | Plain app config files (Firefox prefs, fastfetch) used by the modules |
---