nix-configs/systems/smolboi/configuration.nix
2024-05-04 13:41:47 -04:00

179 lines
4.3 KiB
Nix

{ config, lib, pkgs, sops, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/common.nix
../../modules/aarch64-emu.nix
../../modules/smartd.nix
];
boot = {
blacklistedKernelModules = [ "k10temp" ];
extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
kernelParams = [ "amd_pstate=passive" ];
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
binfmt.registrations.appimage = {
wrapInterpreterInShell = false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
magicOrExtension = ''\x7fELF....AI\x02'';
};
};
powerManagement.cpuFreqGovernor = "schedutil";
sops.secrets."cdombroski/password" = {
neededForUsers = true;
sopsFile = ../../secrets/smolboi/users.yaml;
};
networking = {
hostName = "smolboi"; # Define your hostname.
networkmanager.enable = true; # Easiest to use and most distros use this by default.
firewall.allowedTCPPorts = [ 22000 ];
};
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = [
"electron-25.9.0"
"nix-2.16.2"
];
packageOverrides = pkgs: {
steam = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
winetricks
];
};
};
};
services = {
xserver = {
enable = true;
displayManager.sddm = {
enable = true;
autoNumlock = true;
};
desktopManager.plasma5.enable = true;
};
printing = {
enable = true;
drivers = [ pkgs.gutenprint ];
};
avahi = {
enable = true;
nssmdns = true;
openFirewall = true;
};
printing.cups-pdf.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
hardware.openrgb.enable = true;
resolved.enable = true;
btrfs.autoScrub = {
enable = true;
fileSystems = [ "/" "/home" ];
};
};
hardware = {
sane = {
enable = true;
extraBackends = [ pkgs.sane-airscan ];
};
bluetooth.enable = true;
};
security = {
rtkit.enable = true;
};
users = {
mutableUsers = false;
users = {
cdombroski = {
isNormalUser = true;
extraGroups = [ "wheel" ];
uid = 1000;
hashedPasswordFile = config.sops.secrets."cdombroski/password".path;
};
};
};
environment = {
systemPackages = with pkgs; [
vim-full # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
libreoffice-qt
firefox
syncthing
chromium
skanlite
htop
kate
cifs-utils
tio
];
pathsToLink = [ "/share/bash-completion" ];
};
programs = {
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
steam = {
enable = true;
remotePlay.openFirewall = true;
gamescopeSession.enable = true;
};
firefox.nativeMessagingHosts.packages = with pkgs; [keepassxc libsForQt5.plasma-browser-integration ];
gamemode = {
enable = true;
settings = {
general = {
reaper_freq = 5;
desiredgov = "performance";
softrealtime = "auto";
};
gpu = {
apply_gpu_optimisations = "accept-responsibility";
gpu_device = 0;
amd_performance_level = "high";
};
};
};
gamescope.enable = true;
};
zramSwap = {
enable = true;
writebackDevice = "/dev/disk/by-partuuid/e8f5eaf8-46ca-40de-854a-f6dfe964b92d";
};
fileSystems = {
"/".options = [ "compress=lzo" "autodefrag" "discard=async" "defaults" ];
"/nix".options = [ "compress=lzo" "autodefrag" "discard=async" "noatime" "defaults" ];
"/steam-library".options = [ "compress=lzo" "autodefrag" "discard=async" "defaults" ];
"/home".options = [ "compress=lzo" "autodefrag" "discard=async" "defaults" ];
};
system.stateVersion = "23.11"; # Did you read the comment?
}