Files
nixos-conf/hosts/desktop/configuration.nix
T
2026-07-30 01:02:17 +02:00

267 lines
5.5 KiB
Nix

{
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
];
# 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;
# 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"
];
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.nh.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.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
]);
};
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
};
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;
}