Integrate nix-gaming optimizations and Home Manager foundation #3
19
flake.nix
19
flake.nix
@@ -22,9 +22,19 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.quickshell.follows = "quickshell";
|
||||
};
|
||||
|
||||
nix-gaming = {
|
||||
url = "github:fufexan/nix-gaming";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, mango, quickshell, noctalia, ... }@inputs:
|
||||
outputs = { self, nixpkgs, mango, quickshell, noctalia, nix-gaming, home-manager, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
lib = nixpkgs.lib;
|
||||
@@ -38,6 +48,13 @@
|
||||
./hosts/atlas/hardware-configuration.nix
|
||||
./modules/common.nix
|
||||
mangoModule
|
||||
# Home Manager module - Foundation for user-level package management
|
||||
# User-specific configurations can be added via home-manager.users.<username>
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
}
|
||||
];
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
|
||||
@@ -23,6 +23,19 @@
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Memory compression (reduces swap usage)
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
memoryPercent = 50;
|
||||
};
|
||||
|
||||
# Firmware updates
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Power profiles daemon (for laptop/power management)
|
||||
services.power-profiles-daemon.enable = true;
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# AMD GPU - RDNA 4 (RX 9060 XT) + Zen 3 CPU (5700G)
|
||||
# --------------------------------------------------------------------------
|
||||
@@ -162,6 +175,13 @@
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
|
||||
# Low-latency configuration for gaming
|
||||
lowLatency = {
|
||||
enable = true;
|
||||
quantum = 64; # Buffer size (lower = less latency)
|
||||
rate = 48000; # Sample rate
|
||||
};
|
||||
};
|
||||
|
||||
# Disable PulseAudio (conflicts with PipeWire)
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
# -- Git --
|
||||
lazygit
|
||||
gh # GitHub CLI
|
||||
delta # Git diff viewer
|
||||
meld # Visual diff tool
|
||||
|
||||
# -- Node.js --
|
||||
nodejs_22
|
||||
@@ -54,10 +56,11 @@
|
||||
bat # cat alternative
|
||||
fzf # Fuzzy finder
|
||||
zoxide # cd alternative
|
||||
delta # Git diff viewer
|
||||
|
||||
# -- Database Clients --
|
||||
# -- Database & API Tools --
|
||||
postgresql # psql client
|
||||
dbeaver-bin # Database GUI
|
||||
insomnia # API testing
|
||||
# redis # Uncomment if needed
|
||||
|
||||
# -- Misc --
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
# Identification tags (shows in boot menu)
|
||||
system.nixos.tags = [ "gaming" "zen" ];
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# NIX-GAMING PLATFORM OPTIMIZATIONS
|
||||
# --------------------------------------------------------------------------
|
||||
imports = [
|
||||
inputs.nix-gaming.nixosModules.platformOptimisations
|
||||
];
|
||||
|
||||
nix-gaming.platformOptimisations.enable = true;
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# KERNEL - Zen for gaming performance
|
||||
# --------------------------------------------------------------------------
|
||||
@@ -62,6 +71,7 @@
|
||||
# -- Performance Overlays --
|
||||
mangohud # FPS counter, GPU stats
|
||||
goverlay # MangoHud GUI config
|
||||
vkbasalt # Vulkan post-processing (sharpening, CAS)
|
||||
|
||||
# -- Game Launchers --
|
||||
lutris # Multi-platform launcher
|
||||
@@ -76,6 +86,10 @@
|
||||
# -- Utilities --
|
||||
gamescope # Micro-compositor for gaming
|
||||
corectrl # AMD GPU control GUI
|
||||
lact # Linux AMDGPU Control Tool (alternative to CoreCtrl)
|
||||
|
||||
# -- Communication --
|
||||
discord # Voice chat and gaming communities
|
||||
|
||||
# -- Optional Game Clients --
|
||||
# prismlauncher # Minecraft
|
||||
|
||||
Reference in New Issue
Block a user
The new flake inputs
nix-gamingandhome-managerare referenced via mutable GitHub URLs without a committedflake.lock, so each build can pull arbitrary code from the upstream default branches. If either upstream repository or the GitHub supply chain is compromised, a malicious update could be fetched and evaluated as part of the NixOS build, leading to remote code execution or full system compromise. Pin these inputs via a committedflake.lockor explicit immutable revisions and update them only through a controlled process.