170 lines
3.9 KiB
Nix
170 lines
3.9 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
myConfig,
|
|
inputs,
|
|
...
|
|
}: {
|
|
imports = [
|
|
# Include the results of the hardware scan.
|
|
inputs.chaotic.nixosModules.default
|
|
./hardware-configuration.nix
|
|
];
|
|
|
|
nix.settings.experimental-features = ["nix-command" "flakes"];
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
####################
|
|
# Boot & Kernel #
|
|
####################
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
boot.loader.timeout = 0;
|
|
boot.loader.limine.maxGenerations = 5;
|
|
hardware.amdgpu.initrd.enable = true;
|
|
|
|
boot.kernelParams = ["quiet"];
|
|
boot.kernelPackages = pkgs.linuxPackages_cachyos;
|
|
boot.kernel.sysctl = {
|
|
"kernel.split_lock_mitigate" = 0;
|
|
"kernel.nmi_watchdog" = 0;
|
|
"kernel.sched_bore" = "1";
|
|
};
|
|
|
|
boot.initrd = {
|
|
systemd.enable = true;
|
|
kernelModules = [];
|
|
verbose = false;
|
|
};
|
|
boot.plymouth.enable = true;
|
|
boot.consoleLogLevel = 0;
|
|
systemd.extraConfig = "DefaultTimeoutStopSec=5s";
|
|
|
|
################
|
|
# FileSystems #
|
|
################
|
|
# fileSystems."/" = {
|
|
# options = ["compress=zstd"];
|
|
# };
|
|
|
|
############
|
|
# Network #
|
|
############
|
|
networking = {
|
|
networkmanager.enable = true;
|
|
firewall.enable = false;
|
|
hostName = "nixos";
|
|
};
|
|
|
|
#################
|
|
# Bluetooth #
|
|
#################
|
|
hardware.bluetooth.enable = true;
|
|
hardware.bluetooth.settings = {
|
|
General = {
|
|
MultiProfile = "multiple";
|
|
FastConnectable = true;
|
|
};
|
|
};
|
|
|
|
#################
|
|
# Sound & RTKit #
|
|
#################
|
|
security.rtkit.enable = true;
|
|
services.pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
};
|
|
|
|
########################
|
|
# Graphical & Greetd #
|
|
########################
|
|
|
|
services.xserver.enable = false;
|
|
services.getty.autologinUser = "steamos";
|
|
services.greetd = {
|
|
enable = true;
|
|
settings.default_session = {
|
|
user = "${myConfig.essentials.Username}";
|
|
command = "steam-gamescope > /dev/null 2>&1";
|
|
};
|
|
};
|
|
|
|
########################
|
|
# Programs & Gaming #
|
|
########################
|
|
services.automatic-timezoned.enable = true;
|
|
services.flatpak.enable = true;
|
|
xdg.portal.enable = true;
|
|
xdg.portal.config.common.default = "*";
|
|
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
|
|
|
# programs.steam.gamescopeSession.args = ["-w 1920" "-h 1080" "-r 120" "--xwayland-count 2" "-e" "--hdr-enabled" "--mangoapp"];
|
|
|
|
programs = {
|
|
appimage = {
|
|
enable = true;
|
|
binfmt = true;
|
|
};
|
|
fish = {enable = true;};
|
|
mosh = {enable = true;};
|
|
tmux = {enable = true;};
|
|
gamescope.capSysNice = true;
|
|
steam = {
|
|
enable = true;
|
|
gamescopeSession.enable = true;
|
|
extraCompatPackages = with pkgs; [proton-ge-bin];
|
|
extraPackages = with pkgs; [
|
|
mangohud
|
|
gamescope-wsi
|
|
];
|
|
};
|
|
};
|
|
|
|
environment.sessionVariables = {
|
|
PROTON_USE_NTSYNC = "1";
|
|
ENABLE_HDR_WSI = "1";
|
|
DXVK_HDR = "1";
|
|
PROTON_ENABLE_AMD_AGS = "1";
|
|
PROTON_ENABLE_NVAPI = "1";
|
|
ENABLE_GAMESCOPE_WSI = "1";
|
|
STEAM_MULTIPLE_XWAYLANDS = "1";
|
|
};
|
|
|
|
###################
|
|
# Virtualization #
|
|
###################
|
|
virtualisation.docker.enable = true;
|
|
virtualisation.docker.enableOnBoot = false;
|
|
virtualisation.libvirtd.enable = true;
|
|
|
|
###############
|
|
# Users #
|
|
###############
|
|
users.users.${myConfig.essentials.Username} = {
|
|
isNormalUser = true;
|
|
description = "SteamOS user";
|
|
extraGroups = ["networkmanager" "wheel" "docker" "video" "seat" "audio" "libvirtd"];
|
|
# password = "steamos";
|
|
};
|
|
|
|
#################
|
|
# Security #
|
|
#################
|
|
security.sudo.wheelNeedsPassword = false;
|
|
security.polkit.enable = true;
|
|
services.seatd.enable = true;
|
|
services.openssh.enable = true;
|
|
|
|
######################
|
|
######################
|
|
|
|
########################
|
|
# System State Version #
|
|
########################
|
|
system.stateVersion = "25.05";
|
|
}
|