From a10802547b2468a306b9d5c2c05abb94540eab68 Mon Sep 17 00:00:00 2001 From: Melvin Ragusa Date: Mon, 2 Feb 2026 14:44:31 +0100 Subject: [PATCH] final version --- .config/niri/config.kdl | 9 ++++ configuration.nix | 2 +- modules/desktop.nix | 49 -------------------- modules/gaming.nix | 11 +---- modules/power.nix | 5 -- modules/theming.nix | 100 +++++++++++++++++++++++----------------- 6 files changed, 69 insertions(+), 107 deletions(-) diff --git a/.config/niri/config.kdl b/.config/niri/config.kdl index 34e7053..b11f16b 100644 --- a/.config/niri/config.kdl +++ b/.config/niri/config.kdl @@ -1,6 +1,12 @@ // Niri configuration for CachyOS // For documentation and full reference, see: https://github.com/YaLTeR/niri/wiki +// ────────────── Cursor Configuration ────────────── +cursor { + xcursor-theme "Adwaita" + xcursor-size 24 +} + // ────────────── Input Configuration ────────────── // https://github.com/YaLTeR/niri/wiki/Configuration:-Input @@ -328,6 +334,9 @@ binds { XDG_SESSION_TYPE "wayland" XDG_CURRENT_DESKTOP "niri" QS_ICON_THEME "Papirus-Dark" + GTK_THEME "adw-gtk3-dark" + XCURSOR_THEME "Adwaita" + XCURSOR_SIZE "24" } hotkey-overlay { diff --git a/configuration.nix b/configuration.nix index 1bef856..85b58f3 100644 --- a/configuration.nix +++ b/configuration.nix @@ -27,7 +27,7 @@ # ═══════════════════════════════════════════════════════════════ boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - boot.kernelPackages = pkgs.linuxPackages_latest; + boot.kernelPackages = pkgs.linuxPackages_zen; # ═══════════════════════════════════════════════════════════════ # NETWORKING diff --git a/modules/desktop.nix b/modules/desktop.nix index 3fd0481..e638f4b 100644 --- a/modules/desktop.nix +++ b/modules/desktop.nix @@ -28,60 +28,11 @@ }; }; - # Screen locker service (swayidle triggers this) - systemd.user.services.swaylock = { - description = "Screen Locker"; - serviceConfig = { - Type = "forking"; - ExecStart = "${pkgs.swaylock-effects}/bin/swaylock -f"; - }; - }; - - # Idle daemon - lock screen and turn off display - systemd.user.services.swayidle = { - description = "Idle Manager"; - wantedBy = [ "graphical-session.target" ]; - wants = [ "graphical-session.target" ]; - after = [ "graphical-session.target" ]; - serviceConfig = { - Type = "simple"; - ExecStart = '' - ${pkgs.swayidle}/bin/swayidle -w \ - timeout 300 'systemctl --user start swaylock' \ - timeout 600 'niri msg action power-off-monitors' \ - before-sleep 'systemctl --user start swaylock' - ''; - Restart = "on-failure"; - RestartSec = 1; - }; - }; - - # Wallpaper service - systemd.user.services.swaybg = { - description = "Wallpaper Daemon"; - wantedBy = [ "graphical-session.target" ]; - wants = [ "graphical-session.target" ]; - after = [ "graphical-session.target" ]; - serviceConfig = { - Type = "simple"; - # Default to a solid color - change path to your wallpaper - ExecStart = "${pkgs.swaybg}/bin/swaybg -c '#1e1e2e'"; - Restart = "on-failure"; - }; - }; - # Desktop packages environment.systemPackages = with pkgs; [ # Vicinae launcher inputs.vicinae.packages.${pkgs.system}.default - # Screen lock & idle - swaylock-effects - swayidle - - # Wallpaper - swaybg - # Polkit agent polkit_gnome diff --git a/modules/gaming.nix b/modules/gaming.nix index f048fb9..0820b37 100644 --- a/modules/gaming.nix +++ b/modules/gaming.nix @@ -1,5 +1,5 @@ # modules/gaming.nix -# Full gaming setup: Steam, Gamemode, Lutris, Heroic, MangoHud, Wine, Proton +# Full gaming setup: Steam, Gamemode, Lutris, Heroic, Wine, Proton { config, pkgs, lib, ... }: { @@ -46,10 +46,6 @@ # Proton management protonup-qt # GUI to manage Proton-GE versions - # Performance overlay - mangohud # FPS counter, GPU/CPU stats overlay - goverlay # GUI to configure MangoHud - # Wine for non-Steam games wineWowPackages.stagingFull # Latest Wine with all features winetricks # Wine helper scripts @@ -60,11 +56,6 @@ gamescope # Micro-compositor for games (fixes some issues) ]; - # Allow MangoHud to work properly - environment.variables = { - MANGOHUD = "1"; # Enable by default (can be toggled per-game) - }; - # Gaming-related kernel tweaks boot.kernel.sysctl = { # Increase file watchers for large games diff --git a/modules/power.nix b/modules/power.nix index d26ceb5..8a19650 100644 --- a/modules/power.nix +++ b/modules/power.nix @@ -16,15 +16,10 @@ # Use schedutil for modern AMD CPUs (responds to load dynamically) powerManagement.cpuFreqGovernor = "schedutil"; - # Enable powertop auto-tune for additional optimizations - # (reduces power draw even on desktop when idle) - powerManagement.powertop.enable = true; - # ═══════════════════════════════════════════════════════════════ # PACKAGES # ═══════════════════════════════════════════════════════════════ environment.systemPackages = with pkgs; [ - powertop # Power consumption analyzer power-profiles-daemon # Already enabled as service, CLI tool for control ]; diff --git a/modules/theming.nix b/modules/theming.nix index 6ad3241..3ed40a8 100644 --- a/modules/theming.nix +++ b/modules/theming.nix @@ -1,6 +1,11 @@ # modules/theming.nix # Visual theming: fonts, GTK/Qt themes, cursors, icons -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: { # ───────────────────────────────────────────────────────────── @@ -13,16 +18,16 @@ nerd-fonts.jetbrains-mono # Additional fonts for full coverage - inter # Modern UI font - noto-fonts # Wide Unicode coverage - noto-fonts-cjk-sans # Chinese, Japanese, Korean - noto-fonts-emoji # Color emoji + inter # Modern UI font + noto-fonts # Wide Unicode coverage + noto-fonts-cjk-sans # Chinese, Japanese, Korean + noto-fonts-color-emoji # Color emoji # Optional nice fonts - source-sans # Adobe Source Sans - source-serif # Adobe Source Serif - source-code-pro # Adobe Source Code - fira-code # Alternative coding font with ligatures + source-sans # Adobe Source Sans + source-serif # Adobe Source Serif + source-code-pro # Adobe Source Code + fira-code # Alternative coding font with ligatures ]; fontconfig = { @@ -30,9 +35,15 @@ # Default fonts defaultFonts = { - sansSerif = [ "Inter" "Noto Sans" ]; + sansSerif = [ + "Inter" + "Noto Sans" + ]; serif = [ "Noto Serif" ]; - monospace = [ "JetBrainsMono Nerd Font" "JetBrains Mono" ]; + monospace = [ + "JetBrainsMono Nerd Font" + "JetBrains Mono" + ]; emoji = [ "Noto Color Emoji" ]; }; @@ -51,38 +62,41 @@ # ───────────────────────────────────────────────────────────── environment.systemPackages = with pkgs; [ # GTK themes - adw-gtk3 # GTK3 theme matching libadwaita - adwaita-icon-theme # GNOME icons (needed for many apps) + adw-gtk3 # GTK3 theme matching libadwaita + adwaita-icon-theme # GNOME icons (needed for many apps) # Icon theme - papirus-icon-theme # Modern, flat icons + papirus-icon-theme # Modern, flat icons - # Cursor theme - bibata-cursors # Modern cursor theme + # Cursor theme (Adwaita cursor is included in adwaita-icon-theme above) # Qt theming - qt5ct # Qt5 configuration tool - qt6ct # Qt6 configuration tool - adwaita-qt # Adwaita theme for Qt5 - adwaita-qt6 # Adwaita theme for Qt6 + libsForQt5.qt5ct # Qt5 configuration tool + kdePackages.qt6ct # Qt6 configuration tool # Theme tools - dconf-editor # Edit GNOME/GTK settings - nwg-look # GTK settings editor for Wayland + dconf-editor # Edit GNOME/GTK settings + nwg-look # GTK settings editor for Wayland ]; # ───────────────────────────────────────────────────────────── - # Qt Theming Environment + # Environment Variables for Theming # ───────────────────────────────────────────────────────────── environment.sessionVariables = { # Qt platform integration - QT_QPA_PLATFORMTHEME = "qt5ct"; + QT_QPA_PLATFORMTHEME = "qt6ct"; - # Cursor theme (for apps that don't respect system settings) - XCURSOR_THEME = "Bibata-Modern-Classic"; + # GTK theme (for apps that don't read dconf) + GTK_THEME = "adw-gtk3-dark"; + + # Cursor theme + XCURSOR_THEME = "Adwaita"; XCURSOR_SIZE = "24"; }; + # Ensure cursor themes are found + environment.pathsToLink = [ "/share/icons" ]; + # ───────────────────────────────────────────────────────────── # GTK Settings via dconf # ───────────────────────────────────────────────────────────── @@ -91,22 +105,24 @@ programs.dconf = { enable = true; - profiles.user.databases = [{ - settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - gtk-theme = "adw-gtk3-dark"; - icon-theme = "Papirus-Dark"; - cursor-theme = "Bibata-Modern-Classic"; - cursor-size = lib.gvariant.mkInt32 24; - font-name = "Inter 11"; - document-font-name = "Inter 11"; - monospace-font-name = "JetBrainsMono Nerd Font 10"; + profiles.user.databases = [ + { + settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + gtk-theme = "adw-gtk3-dark"; + icon-theme = "Papirus-Dark"; + cursor-theme = "Adwaita"; + cursor-size = lib.gvariant.mkInt32 24; + font-name = "Inter 11"; + document-font-name = "Inter 11"; + monospace-font-name = "JetBrainsMono Nerd Font 10"; + }; + "org/gnome/desktop/wm/preferences" = { + titlebar-font = "Inter Bold 11"; + }; }; - "org/gnome/desktop/wm/preferences" = { - titlebar-font = "Inter Bold 11"; - }; - }; - }]; + } + ]; }; }