final version
This commit is contained in:
@@ -1,6 +1,12 @@
|
|||||||
// Niri configuration for CachyOS
|
// Niri configuration for CachyOS
|
||||||
// For documentation and full reference, see: https://github.com/YaLTeR/niri/wiki
|
// For documentation and full reference, see: https://github.com/YaLTeR/niri/wiki
|
||||||
|
|
||||||
|
// ────────────── Cursor Configuration ──────────────
|
||||||
|
cursor {
|
||||||
|
xcursor-theme "Adwaita"
|
||||||
|
xcursor-size 24
|
||||||
|
}
|
||||||
|
|
||||||
// ────────────── Input Configuration ──────────────
|
// ────────────── Input Configuration ──────────────
|
||||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
|
// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
|
||||||
|
|
||||||
@@ -328,6 +334,9 @@ binds {
|
|||||||
XDG_SESSION_TYPE "wayland"
|
XDG_SESSION_TYPE "wayland"
|
||||||
XDG_CURRENT_DESKTOP "niri"
|
XDG_CURRENT_DESKTOP "niri"
|
||||||
QS_ICON_THEME "Papirus-Dark"
|
QS_ICON_THEME "Papirus-Dark"
|
||||||
|
GTK_THEME "adw-gtk3-dark"
|
||||||
|
XCURSOR_THEME "Adwaita"
|
||||||
|
XCURSOR_SIZE "24"
|
||||||
}
|
}
|
||||||
|
|
||||||
hotkey-overlay {
|
hotkey-overlay {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
# ═══════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════
|
||||||
# NETWORKING
|
# NETWORKING
|
||||||
|
|||||||
@@ -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
|
# Desktop packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Vicinae launcher
|
# Vicinae launcher
|
||||||
inputs.vicinae.packages.${pkgs.system}.default
|
inputs.vicinae.packages.${pkgs.system}.default
|
||||||
|
|
||||||
# Screen lock & idle
|
|
||||||
swaylock-effects
|
|
||||||
swayidle
|
|
||||||
|
|
||||||
# Wallpaper
|
|
||||||
swaybg
|
|
||||||
|
|
||||||
# Polkit agent
|
# Polkit agent
|
||||||
polkit_gnome
|
polkit_gnome
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# modules/gaming.nix
|
# 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, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -46,10 +46,6 @@
|
|||||||
# Proton management
|
# Proton management
|
||||||
protonup-qt # GUI to manage Proton-GE versions
|
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
|
# Wine for non-Steam games
|
||||||
wineWowPackages.stagingFull # Latest Wine with all features
|
wineWowPackages.stagingFull # Latest Wine with all features
|
||||||
winetricks # Wine helper scripts
|
winetricks # Wine helper scripts
|
||||||
@@ -60,11 +56,6 @@
|
|||||||
gamescope # Micro-compositor for games (fixes some issues)
|
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
|
# Gaming-related kernel tweaks
|
||||||
boot.kernel.sysctl = {
|
boot.kernel.sysctl = {
|
||||||
# Increase file watchers for large games
|
# Increase file watchers for large games
|
||||||
|
|||||||
@@ -16,15 +16,10 @@
|
|||||||
# Use schedutil for modern AMD CPUs (responds to load dynamically)
|
# Use schedutil for modern AMD CPUs (responds to load dynamically)
|
||||||
powerManagement.cpuFreqGovernor = "schedutil";
|
powerManagement.cpuFreqGovernor = "schedutil";
|
||||||
|
|
||||||
# Enable powertop auto-tune for additional optimizations
|
|
||||||
# (reduces power draw even on desktop when idle)
|
|
||||||
powerManagement.powertop.enable = true;
|
|
||||||
|
|
||||||
# ═══════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════
|
||||||
# PACKAGES
|
# PACKAGES
|
||||||
# ═══════════════════════════════════════════════════════════════
|
# ═══════════════════════════════════════════════════════════════
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
powertop # Power consumption analyzer
|
|
||||||
power-profiles-daemon # Already enabled as service, CLI tool for control
|
power-profiles-daemon # Already enabled as service, CLI tool for control
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
# modules/theming.nix
|
# modules/theming.nix
|
||||||
# Visual theming: fonts, GTK/Qt themes, cursors, icons
|
# Visual theming: fonts, GTK/Qt themes, cursors, icons
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
@@ -13,16 +18,16 @@
|
|||||||
nerd-fonts.jetbrains-mono
|
nerd-fonts.jetbrains-mono
|
||||||
|
|
||||||
# Additional fonts for full coverage
|
# Additional fonts for full coverage
|
||||||
inter # Modern UI font
|
inter # Modern UI font
|
||||||
noto-fonts # Wide Unicode coverage
|
noto-fonts # Wide Unicode coverage
|
||||||
noto-fonts-cjk-sans # Chinese, Japanese, Korean
|
noto-fonts-cjk-sans # Chinese, Japanese, Korean
|
||||||
noto-fonts-emoji # Color emoji
|
noto-fonts-color-emoji # Color emoji
|
||||||
|
|
||||||
# Optional nice fonts
|
# Optional nice fonts
|
||||||
source-sans # Adobe Source Sans
|
source-sans # Adobe Source Sans
|
||||||
source-serif # Adobe Source Serif
|
source-serif # Adobe Source Serif
|
||||||
source-code-pro # Adobe Source Code
|
source-code-pro # Adobe Source Code
|
||||||
fira-code # Alternative coding font with ligatures
|
fira-code # Alternative coding font with ligatures
|
||||||
];
|
];
|
||||||
|
|
||||||
fontconfig = {
|
fontconfig = {
|
||||||
@@ -30,9 +35,15 @@
|
|||||||
|
|
||||||
# Default fonts
|
# Default fonts
|
||||||
defaultFonts = {
|
defaultFonts = {
|
||||||
sansSerif = [ "Inter" "Noto Sans" ];
|
sansSerif = [
|
||||||
|
"Inter"
|
||||||
|
"Noto Sans"
|
||||||
|
];
|
||||||
serif = [ "Noto Serif" ];
|
serif = [ "Noto Serif" ];
|
||||||
monospace = [ "JetBrainsMono Nerd Font" "JetBrains Mono" ];
|
monospace = [
|
||||||
|
"JetBrainsMono Nerd Font"
|
||||||
|
"JetBrains Mono"
|
||||||
|
];
|
||||||
emoji = [ "Noto Color Emoji" ];
|
emoji = [ "Noto Color Emoji" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -51,38 +62,41 @@
|
|||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# GTK themes
|
# GTK themes
|
||||||
adw-gtk3 # GTK3 theme matching libadwaita
|
adw-gtk3 # GTK3 theme matching libadwaita
|
||||||
adwaita-icon-theme # GNOME icons (needed for many apps)
|
adwaita-icon-theme # GNOME icons (needed for many apps)
|
||||||
|
|
||||||
# Icon theme
|
# Icon theme
|
||||||
papirus-icon-theme # Modern, flat icons
|
papirus-icon-theme # Modern, flat icons
|
||||||
|
|
||||||
# Cursor theme
|
# Cursor theme (Adwaita cursor is included in adwaita-icon-theme above)
|
||||||
bibata-cursors # Modern cursor theme
|
|
||||||
|
|
||||||
# Qt theming
|
# Qt theming
|
||||||
qt5ct # Qt5 configuration tool
|
libsForQt5.qt5ct # Qt5 configuration tool
|
||||||
qt6ct # Qt6 configuration tool
|
kdePackages.qt6ct # Qt6 configuration tool
|
||||||
adwaita-qt # Adwaita theme for Qt5
|
|
||||||
adwaita-qt6 # Adwaita theme for Qt6
|
|
||||||
|
|
||||||
# Theme tools
|
# Theme tools
|
||||||
dconf-editor # Edit GNOME/GTK settings
|
dconf-editor # Edit GNOME/GTK settings
|
||||||
nwg-look # GTK settings editor for Wayland
|
nwg-look # GTK settings editor for Wayland
|
||||||
];
|
];
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
# Qt Theming Environment
|
# Environment Variables for Theming
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
# Qt platform integration
|
# Qt platform integration
|
||||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||||
|
|
||||||
# Cursor theme (for apps that don't respect system settings)
|
# GTK theme (for apps that don't read dconf)
|
||||||
XCURSOR_THEME = "Bibata-Modern-Classic";
|
GTK_THEME = "adw-gtk3-dark";
|
||||||
|
|
||||||
|
# Cursor theme
|
||||||
|
XCURSOR_THEME = "Adwaita";
|
||||||
XCURSOR_SIZE = "24";
|
XCURSOR_SIZE = "24";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Ensure cursor themes are found
|
||||||
|
environment.pathsToLink = [ "/share/icons" ];
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
# GTK Settings via dconf
|
# GTK Settings via dconf
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
@@ -91,22 +105,24 @@
|
|||||||
|
|
||||||
programs.dconf = {
|
programs.dconf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles.user.databases = [{
|
profiles.user.databases = [
|
||||||
settings = {
|
{
|
||||||
"org/gnome/desktop/interface" = {
|
settings = {
|
||||||
color-scheme = "prefer-dark";
|
"org/gnome/desktop/interface" = {
|
||||||
gtk-theme = "adw-gtk3-dark";
|
color-scheme = "prefer-dark";
|
||||||
icon-theme = "Papirus-Dark";
|
gtk-theme = "adw-gtk3-dark";
|
||||||
cursor-theme = "Bibata-Modern-Classic";
|
icon-theme = "Papirus-Dark";
|
||||||
cursor-size = lib.gvariant.mkInt32 24;
|
cursor-theme = "Adwaita";
|
||||||
font-name = "Inter 11";
|
cursor-size = lib.gvariant.mkInt32 24;
|
||||||
document-font-name = "Inter 11";
|
font-name = "Inter 11";
|
||||||
monospace-font-name = "JetBrainsMono Nerd Font 10";
|
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";
|
];
|
||||||
};
|
|
||||||
};
|
|
||||||
}];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user