mirror of
https://git.sr.ht/~roxwize/.dotfiles
synced 2025-06-07 20:49:29 +00:00
~
Signed-off-by: roxwize <rae@roxwize.xyz>
This commit is contained in:
parent
58bc04d360
commit
2566b6da29
13 changed files with 191 additions and 33 deletions
118
nixos/modules/system/default.nix
Normal file
118
nixos/modules/system/default.nix
Normal file
|
@ -0,0 +1,118 @@
|
|||
{ pkgs, lib, config, ... }: let
|
||||
cfg = config.r5e.system;
|
||||
in with lib; {
|
||||
options.r5e.system = {
|
||||
graphics = {
|
||||
display.x11 = {
|
||||
enable = mkEnableOption "X11";
|
||||
windowManagers = {
|
||||
twm.enable = mkEnableOption "twm";
|
||||
};
|
||||
displayManager = {
|
||||
# enable = mkEnableOption "SDDM";
|
||||
autologin = {
|
||||
enable = mkEnableOption "SDDM autologin";
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "rae";
|
||||
};
|
||||
session = mkOption {
|
||||
type = types.str;
|
||||
default = "none+twm";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hardwareAcceleration = {
|
||||
enable = mkEnableOption "graphics acceleration";
|
||||
intel = {
|
||||
videoPlayback = {
|
||||
# TODO wiki.nixos.org/wiki/Intel_Graphics
|
||||
enable = mkEnableOption "accelerated video playback";
|
||||
package = mkPackageOption pkgs "intel-media-driver";
|
||||
};
|
||||
qsv = {
|
||||
enable = mkEnableOption "Intel Quick Sync Video";
|
||||
package = mkPackageOption pkgs "vpl-gpu-rt";
|
||||
};
|
||||
};
|
||||
nvidia = {
|
||||
enable = mkEnableOption "NVIDIA drivers";
|
||||
package = mkPackageOption config.boot.kernelPackages.nvidiaPackages "stable";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
steam = {
|
||||
enable = mkEnableOption "Steam";
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
thunderbird = {
|
||||
enable = mkEnableOption "Mozilla Thunderbird";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
LIBVA_DRIVER_NAME = mkIf cfg.graphics.hardwareAcceleration.intel.videoPlayback.enable
|
||||
(if cfg.graphics.hardwareAcceleration.intel.videoPlayback.package == pkgs.intel-vaapi-driver then "i965" else "iHD");
|
||||
};
|
||||
};
|
||||
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = cfg.graphics.hardwareAcceleration.enable;
|
||||
extraPackages =
|
||||
optional cfg.graphics.hardwareAcceleration.intel.videoPlayback.enable cfg.graphics.hardwareAcceleration.intel.videoPlayback.package
|
||||
++ optional cfg.graphics.hardwareAcceleration.intel.qsv.enable cfg.graphics.hardwareAcceleration.intel.qsv.package;
|
||||
};
|
||||
nvidia = mkIf cfg.graphics.hardwareAcceleration.nvidia.enable {
|
||||
modesetting.enable = true;
|
||||
powerManagement = {
|
||||
enable = false;
|
||||
finegrained = false;
|
||||
};
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
package = cfg.graphics.hardwareAcceleration.nvidia.package;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
xserver = {
|
||||
enable = cfg.graphics.display.x11.enable;
|
||||
xkb.layout = "us";
|
||||
windowManager = cfg.graphics.display.x11.windowManagers;
|
||||
videoDrivers = optional cfg.graphics.hardwareAcceleration.nvidia.enable "nvidia";
|
||||
};
|
||||
displayManager.sddm = {
|
||||
enable = cfg.graphics.display.x11.enable;
|
||||
settings.Autologin = mkIf cfg.graphics.display.x11.displayManager.autologin.enable {
|
||||
User = cfg.graphics.display.x11.displayManager.autologin.user;
|
||||
Session = cfg.graphics.display.x11.displayManager.autologin.session;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
steam = {
|
||||
enable = cfg.programs.steam.enable;
|
||||
remotePlay.openFirewall = cfg.programs.steam.openFirewall;
|
||||
dedicatedServer.openFirewall = cfg.programs.steam.openFirewall;
|
||||
localNetworkGameTransfers.openFirewall = cfg.programs.steam.openFirewall;
|
||||
};
|
||||
thunderbird = {
|
||||
enable = cfg.programs.thunderbird.enable;
|
||||
policies.DisableTelemetry = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue