251 lines
5.2 KiB
Nix
251 lines
5.2 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
|
|
];
|
|
|
|
# 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"; # Define your hostname.
|
|
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.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 = {
|
|
user = {
|
|
name = "KeksNino";
|
|
email = "KeksNino@proton.me";
|
|
};
|
|
init = {
|
|
defaultBranch = "main";
|
|
};
|
|
push = {
|
|
autoSetupRemote = true;
|
|
};
|
|
};
|
|
};
|
|
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;
|
|
}
|