refactor: modularize nixos system configuration

This commit is contained in:
Youwen Wu 2024-08-03 18:51:57 -07:00
parent 4bb597c38a
commit a66ecb45f2
Signed by: youwen
GPG key ID: 865658ED1FE61EC3
7 changed files with 92 additions and 85 deletions

19
modules/common/fonts.nix Normal file
View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
{
fonts = {
enableDefaultPackages = true;
fontconfig = {
defaultFonts = {
serif = [ "Noto Serif" ];
sansSerif = [ "Noto Sans" ];
};
};
packages = with pkgs; [
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
(nerdfonts.override { fonts = [ "CascadiaCode" ]; })
(google-fonts.override { fonts = [ "Lora" ]; })
];
};
}

17
modules/nixos/audio.nix Normal file
View file

@ -0,0 +1,17 @@
{
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
}

29
modules/nixos/gaming.nix Normal file
View file

@ -0,0 +1,29 @@
{
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
};
programs.gamescope.enable = true;
nixpkgs.config.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
];
};
};
}

View file

@ -0,0 +1,5 @@
{
services.openssh.enable = true;
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
}

16
modules/nixos/nvidia.nix Normal file
View file

@ -0,0 +1,16 @@
{ config, ... }:
{
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
};
hardware.graphics.enable = true;
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
services.xserver.videoDrivers = [ "nvidia" ];
}