234 lines
5.0 KiB
Nix
234 lines
5.0 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
|
|
./drives.nix
|
|
../../modules/scripts.nix
|
|
../../modules/programs/neovim/neovim.nix
|
|
];
|
|
|
|
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;
|
|
};
|
|
|
|
# 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;
|
|
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
|
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;
|
|
}
|