final version
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
}];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user