From 512483106110b5f9209bb03238d44b991fe15d22 Mon Sep 17 00:00:00 2001 From: adikro Date: Thu, 12 Feb 2026 23:04:24 +0100 Subject: thinkpad configuration finalization --- os/srv/compat.nix | 13 ++++++------- os/srv/files.nix | 29 +++++++++-------------------- os/srv/gaming.nix | 38 ++++++++++++++++++++++++++++++-------- os/srv/kdeconnect.nix | 13 ++++++------- os/srv/nix-helper.nix | 25 +++++++++++++++++++------ 5 files changed, 70 insertions(+), 48 deletions(-) (limited to 'os/srv') diff --git a/os/srv/compat.nix b/os/srv/compat.nix index f174e02..721fab1 100644 --- a/os/srv/compat.nix +++ b/os/srv/compat.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.os.srv.compat; in @@ -13,12 +18,6 @@ in environment.sessionVariables = { NIXOS_OZONE_WL = "1"; ELECTRON_ENABLE_WAYLAND = "1"; - WINE_RT_PRIO = "1"; }; - - environment.systemPackages = with pkgs; [ - winetricks - wineWowPackages.waylandFull - ]; }; } diff --git a/os/srv/files.nix b/os/srv/files.nix index b4130b0..875a825 100644 --- a/os/srv/files.nix +++ b/os/srv/files.nix @@ -9,16 +9,11 @@ let in { options.os.srv.files = { - thunar.enable = lib.mkEnableOption "enables the thunar file manager"; + enable = lib.mkEnableOption "enables general file management stuff"; krusader.enable = lib.mkEnableOption "enables krusader for easier file moving using ssh"; - utils.enable = lib.mkEnableOption "enables compression and trash utilities"; }; config = lib.mkMerge [ { - os.srv.files.utils.enable = lib.mkDefault cfg.thunar.enable; - } - - (lib.mkIf cfg.thunar.enable { programs.thunar = { enable = true; plugins = with pkgs; [ @@ -28,10 +23,15 @@ in }; services = { tumbler.enable = true; - gnome.gnome-keyring.enable = true; + gvfs.enable = true; }; - environment.systemPackages = with pkgs; [ file-roller ]; - }) + environment.systemPackages = with pkgs; [ + file-roller + gdu + pxz + pigz + ]; + } (lib.mkIf cfg.krusader.enable { environment.systemPackages = with pkgs; [ @@ -39,16 +39,5 @@ in kdePackages.kio-extras ]; }) - - (lib.mkIf cfg.utils.enable { - services.gvfs.enable = true; - - environment.systemPackages = with pkgs; [ - trashy - gdu - pxz - pigz - ]; - }) ]; } diff --git a/os/srv/gaming.nix b/os/srv/gaming.nix index f0ff771..912a252 100644 --- a/os/srv/gaming.nix +++ b/os/srv/gaming.nix @@ -10,12 +10,22 @@ let in { options.os.srv.gaming = { - enable = lib.mkEnableOption "enables gaming utilities"; + enable = lib.mkEnableOption "enables general gaming support"; + + tools.enable = lib.mkEnableOption "enables performance tools" // { + default = cfg.enable; + }; + launchers.enable = lib.mkEnableOption "enables 3rd party launchers" // { + default = cfg.enable; + }; + games.enable = lib.mkEnableOption "enables specific native games"; steam.enable = lib.mkEnableOption "enables steam utilities"; vr.enable = lib.mkEnableOption "enables vr support"; }; + config = lib.mkMerge [ - (lib.mkIf cfg.enable { + # --- PERFORMANCE & TOOLING --- + (lib.mkIf cfg.tools.enable { programs.gamescope = { enable = true; capSysNice = true; @@ -26,23 +36,34 @@ in enableRenice = true; }; + home-manager.users.${username}.hm.soft.mangohud.enable = true; + environment.systemPackages = with pkgs; [ - openttd-jgrpp ludusavi protonplus - openmw + ]; + }) + + # --- EXTERNAL LAUNCHERS --- + (lib.mkIf cfg.launchers.enable { + environment.systemPackages = with pkgs; [ heroic (prismlauncher.override { - additionalLibs = with pkgs; [ - ocl-icd - ]; + additionalLibs = with pkgs; [ ocl-icd ]; jdks = with pkgs; [ javaPackages.compiler.temurin-bin.jdk-25 ]; }) ]; + }) - home-manager.users.${username}.hm.soft.mangohud.enable = true; + # --- SPECIFIC GAMES --- + (lib.mkIf cfg.games.enable { + environment.systemPackages = with pkgs; [ + openttd-jgrpp + openmw + ]; }) + # --- STEAM --- (lib.mkIf cfg.steam.enable { programs.steam = { enable = true; @@ -58,6 +79,7 @@ in }; }) + # --- VR SUPPORT --- (lib.mkIf cfg.vr.enable { programs.alvr = { enable = true; diff --git a/os/srv/kdeconnect.nix b/os/srv/kdeconnect.nix index 049a1c6..01a0e4d 100644 --- a/os/srv/kdeconnect.nix +++ b/os/srv/kdeconnect.nix @@ -4,16 +4,15 @@ username, pkgs, ... -}: let +}: +let cfg = config.os.srv.kdeconnect; -in { +in +{ options.os.srv.kdeconnect.enable = lib.mkEnableOption "enables kde connect"; config = lib.mkIf cfg.enable { - environment.systemPackages = [pkgs.kdePackages.dolphin]; + environment.systemPackages = [ pkgs.kdePackages.dolphin ]; programs.kdeconnect.enable = true; - home-manager.users.${username}.services.kdeconnect = { - enable = true; - # indicator = true; - }; + home-manager.users.${username}.services.kdeconnect.enable = true; }; } diff --git a/os/srv/nix-helper.nix b/os/srv/nix-helper.nix index 63b3182..0bb819a 100644 --- a/os/srv/nix-helper.nix +++ b/os/srv/nix-helper.nix @@ -1,4 +1,10 @@ -{ config, lib, pkgs, username, ... }: +{ + config, + lib, + pkgs, + username, + ... +}: let cfg = config.os.srv.nix-helper; in @@ -6,18 +12,25 @@ in options.os.srv.nix-helper.enable = lib.mkEnableOption "enables nix-helper"; config = lib.mkIf cfg.enable { nix.settings = { - trusted-users = [ "root" "${username}" ]; - experimental-features = [ "nix-command" "flakes" ]; + trusted-users = [ + "root" + "${username}" + ]; + experimental-features = [ + "nix-command" + "flakes" + ]; }; programs.nh = { enable = true; flake = "/etc/nixos"; + clean.extraArgs = "--keep 5"; }; - environment.sessionVariables = { - NH_OS_FLAKE = "/etc/nixos"; - }; + # environment.sessionVariables = { + # NH_OS_FLAKE = "/etc/nixos"; + # }; environment.systemPackages = with pkgs; [ nix-output-monitor -- cgit v1.3