{ pkgs, sls-steam, options, config, ... }: let cpuid-fault-emulation = pkgs.callPackage ../../pkgs/cpuid-fault-emulation { kernel = config.boot.kernelPackages.kernel; }; in { imports = [ ./hardware-configuration.nix ./packages.nix ../../modules/scripts.nix ../../modules/desktop/xremap.nix ../../modules/programs/neovim/neovim.nix ]; # DISKS fileSystems."/media/gamedisk4" = { device = "/dev/disk/by-uuid/D290EB87C8A1E82A"; fsType = "ntfs3"; options = [ "uid=1000" "gid=100" "rw" "user" "exec" "umask=000" "nofail" ]; }; fileSystems."/media/gamedisk" = { device = "/dev/disk/by-uuid/5C7C14707C1446E4"; fsType = "ntfs3"; options = [ "uid=1000" "gid=100" "rw" "user" "exec" "umask=000" "nofail" ]; }; fileSystems."/media/gamedisk2" = { device = "/dev/disk/by-uuid/945A7421DAD8A3CE"; fsType = "ntfs3"; options = [ "uid=1000" "gid=100" "rw" "user" "exec" "umask=000" "nofail" ]; }; nix.settings.experimental-features = [ "nix-command" "flakes" ]; boot.kernelParams = [ "iomem=relaxed" "iommu=pt" "amd_iommu=on" "kvm.ignore_msrs=1" "mitigations=off" "amdgpu.ppfeaturemask=0xffffffff" "clearcpuid=umip" ]; xdg = { mime.defaultApplications = { "inode/directory" = [ "nemo.desktop" ]; "application/x-gnome-saved-search" = [ "nemo.desktop" ]; }; }; hardware.graphics.enable = true; hardware.graphics.enable32Bit = true; services.hardware.openrgb.enable = true; hardware.bluetooth = { enable = true; powerOnBoot = false; }; # Bootloader. boot.loader.grub.enable = true; boot.loader.grub.device = "nodev"; boot.loader.grub.efiSupport = true; boot.extraModulePackages = [ cpuid-fault-emulation ]; environment.systemPackages = [ (pkgs.writeShellScriptBin "enable-hypervisor" '' sudo modprobe -r kvm_amd kvm sudo modprobe cpuid_fault_emulation '') (pkgs.writeShellScriptBin "disable-hypervisor" '' sudo modprobe -r cpuid_fault_emulation sudo modprobe kvm_amd kvm '') ]; networking.hostName = "nixos-desktop"; networking.firewall.enable = false; networking.networkmanager.enable = true; # Set your time zone. time.timeZone = "Europe/Berlin"; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "de_DE.UTF-8"; LC_IDENTIFICATION = "de_DE.UTF-8"; LC_MEASUREMENT = "de_DE.UTF-8"; LC_MONETARY = "de_DE.UTF-8"; LC_NAME = "de_DE.UTF-8"; LC_NUMERIC = "de_DE.UTF-8"; LC_PAPER = "de_DE.UTF-8"; LC_TELEPHONE = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8"; }; console.keyMap = "de"; programs.fish.enable = true; users.users.user = { isNormalUser = true; description = "user"; uid = 1000; extraGroups = [ "networkmanager" "wheel" "docker" "audio" ]; shell = pkgs.fish; }; nixpkgs.config.allowUnfree = true; programs.niri.enable = true; programs.hyprland = { enable = true; xwayland.enable = true; }; # environment.loginShellInit = '' # if [ "$(tty)" = "/dev/tty1" ] && [ -z "$WAYLAND_DISPLAY" ]; then # exec start-hyprland # fi # ''; # NFS / MPD fileSystems."/media/music" = { device = "192.168.132.149:/media/music"; fsType = "nfs4"; }; boot.supportedFilesystems = [ "nfs4" ]; qt = { enable = true; platformTheme = "qt5ct"; style = "breeze"; }; virtualisation.docker.enable = true; services.gvfs.enable = true; services.goxlr-utility.enable = true; services.lact.enable = true; services.rsync.enable = true; programs.kdeconnect.enable = true; programs.neovim.enable = true; programs.tmux.enable = true; programs.bat.enable = true; programs.git = { enable = true; config = { signing = { key = "51AE8C6E80E6AF3BDFBE2BF804B31D181764898D"; signByDefault = true; }; user = { name = "KeksNino"; email = "KeksNino@proton.me"; }; init = { defaultBranch = "main"; }; push = { autoSetupRemote = true; }; commit = { gpgsign = true; }; tag = { gpgsign = true; }; }; }; programs.gnupg.agent = { enable = true; pinentryPackage = pkgs.pinentry-curses; }; programs.nh = { enable = true; flake = "/home/user/nix-config"; }; programs.steam = { enable = true; package = pkgs.millennium-steam.override { extraEnv = { LD_AUDIT = "${sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.sls-steam}/library-inject.so:${ sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.sls-steam }/SLSsteam.so"; }; }; }; programs.nix-ld = { enable = true; libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [ dbus # libdbus-1.so.3 fontconfig # libfontconfig.so.1 freetype # libfreetype.so.6 glib # libglib-2.0.so.0 libGL # libGL.so.1 libxkbcommon # libxkbcommon.so.0 libx11 # libX11.so.6 wayland krb5 ]); }; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; }; services.pipewire.extraConfig.pipewire."92-clock-quantum" = { "context.properties" = { "default.clock.quantum" = 2048; "default.clock.min-quantum" = 256; "default.clock.max-quantum" = 4096; }; }; security.pam.loginLimits = [ { domain = "@users"; item = "rtprio"; type = "-"; value = "95"; } { domain = "@users"; item = "memlock"; type = "-"; value = "unlimited"; } ]; security.rtkit.enable = true; system.stateVersion = "24.11"; system.autoUpgrade.enable = false; system.autoUpgrade.allowReboot = true; }