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,38 +1,72 @@
{ config, pkgs, ... }:
{
# --- Pantheon: elementary OS's desktop environment (gala compositor, Wayland) ---
# Pulls in its own session (pantheon-wayland), top panel (Wingpanel), dock,
# app launcher, Files, Terminal, Screenshot, Photos, notifications, and
# GTK/icon theming — no separate compositor config or dotfile symlinking
# needed, unlike the previous Hyprland setup.
# Plasma ships a proper Wayland session (KWin) with solid Xwayland
# support; xserver stays on for that Xwayland layer and for the xkb
# layout below, not because the session itself needs it.
services.xserver.enable = true;
services.xserver.displayManager.lightdm.enable = true;
services.desktopManager.pantheon.enable = true;
services.desktopManager.plasma6.enable = true;
# SDDM is KDE's own greeter — Qt-based, and launches Wayland sessions
# natively, Plasma included.
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
# Keyboard layout for LightDM/XWayland; Pantheon's own session picks this
# up too.
services.xserver.xkb = {
layout = "pl";
variant = "";
};
security.polkit.enable = true;
services.tumbler.enable = true;
services.gvfs.enable = true;
# Native Wayland backend for Electron/Chromium-based apps
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# xserver.nix installs xterm unconditionally; Konsole is the terminal here.
services.xserver.excludePackages = [ pkgs.xterm ];
# Comfortable trackpad defaults for a laptop — tap-to-click and natural
# scrolling aren't on by default, and gala reads touchpad settings from
# GSettings at runtime (not services.libinput, which is X11-only), so
# they're set here as a dconf default instead.
programs.dconf.profiles.user.databases = [
{
settings."org/gnome/desktop/peripherals/touchpad" = {
tap-to-click = true;
natural-scroll = true;
two-finger-scrolling-enabled = true;
};
}
# Icon/cursor theme packages. Plasma has no gsettings-style declarative
# knob for this the way Budgie did — pick them in System Settings, or
# bring in plasma-manager later for a fully declarative setup.
environment.systemPackages = [
pkgs.gruvbox-plus-icons
pkgs.bibata-cursors
];
# The third-party "Bouncing Popups" KWin effect (~/.local/share/kwin/effects)
# stacks on top of Plasma's own slidingpopups/fadingpopups and forces blur
# on every popup and the panel, making applet popups and panel settings
# open sluggishly. [$i] locks the key so ~/.config/kwinrc can't re-enable it.
environment.etc."xdg/kwinrc".text = ''
[Plugins]
bouncingPopupsEnabled[$i]=false
'';
# Breeze Dark as the default Plasma (panel/popup) theme. Avoid sparse
# third-party themes like "Darkly" (18 files): every SVG they lack falls
# back via an uncached search of all ~89 XDG_DATA_DIRS, which made applet
# popups and panel settings take 2-6 s to open. Not locked, so the theme
# can still be changed in System Settings.
environment.etc."xdg/plasmarc".text = ''
[Theme]
name=breeze-dark
'';
environment.extraInit = ''
export XDG_DATA_DIRS="$XDG_DATA_DIRS:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
'';
fonts.packages = with pkgs; [
corefonts
dejavu_fonts
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
nerd-fonts.fira-code
nerd-fonts.jetbrains-mono
nerd-fonts.hack
inter
liberation_ttf
roboto
];
}