final version

This commit is contained in:
Melvin Ragusa
2026-02-02 14:44:31 +01:00
parent 90fafac5c9
commit a10802547b
6 changed files with 69 additions and 107 deletions

View File

@@ -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 {

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
];

View File

@@ -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";
};
};
}];
}
];
};
}