dot.nix/hosts/nixos/rune/default.nix

134 lines
2.7 KiB
Nix

###############################################################
#
# Rune - Main Desktop
# NixOS running on Ryzen 9 7900X3D , Radeon RX 6950 XT, 32GB RAM
#
###############################################################
{
inputs,
lib,
config,
pkgs,
...
}:
let
username = "toph";
runtimeLibs = with pkgs.stable; [
## native versions
glfw3-minecraft
openal
## openal
alsa-lib
libjack2
libpulseaudio
pipewire
## glfw
libGL
xorg.libX11
xorg.libXcursor
xorg.libXext
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libXxf86vm
udev # oshi
vulkan-loader # VulkanMod's lwjgl
freetype
fontconfig
flite
];
in
{
imports = lib.flatten [
## Hardware ##
./hardware.nix
inputs.hardware.nixosModules.common-cpu-amd
inputs.hardware.nixosModules.common-gpu-amd
inputs.hardware.nixosModules.common-pc-ssd
(map lib.custom.relativeToRoot [
## Required Configs ##
"hosts/common/core"
## Optional Configs ##
"hosts/common/optional/audio.nix" # pipewire and cli controls
"hosts/common/optional/gaming.nix" # steam, gamescope, gamemode, and related hardware
"hosts/common/optional/gnome.nix" # desktop
"hosts/common/optional/libvirt.nix" # vm tools
"hosts/common/optional/nvtop.nix" # GPU monitor (not available in home-manager)
"hosts/common/optional/plymouth.nix" # fancy boot screen
## Misc Inputs ##
## Rune Specific ##
"hosts/users/${username}" # # Not the best solution but I always have one user so ¯\_(ツ)_/¯
])
];
## Host Specifications ##
hostSpec = {
hostName = "rune";
username = username;
handle = "tophC7";
password = "[REDACTED]";
[REDACTED];
email = "[REDACTED]";
userFullName = "[REDACTED]";
isARM = false;
};
networking = {
enableIPv6 = false;
};
## Boot ##
boot = {
loader = {
systemd-boot = {
enable = true;
# When using plymouth, initrd can expand by a lot each time, so limit how many we keep around
configurationLimit = lib.mkDefault 10;
};
efi.canTouchEfiVariables = true;
timeout = 3;
};
initrd = {
systemd.enable = true;
verbose = false;
};
};
## System-wide packages ##
environment.systemPackages = with pkgs; [
asdf-vm
openssh
ranger
sshfs
wget
# REMOVE: Same as below
glfw3-minecraft
libglvnd
];
programs.nix-ld.libraries = runtimeLibs;
# FIXME: Remove this in favor of dirEnv
## Libs for Minecraft ##
environment.variables = {
LD_LIBRARY_PATH = lib.makeLibraryPath runtimeLibs;
};
# https://wiki.nixos.org/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.11";
}