Integrate nix-gaming optimizations and Home Manager foundation #3
19
flake.nix
19
flake.nix
@@ -22,9 +22,19 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.quickshell.follows = "quickshell";
|
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
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
@@ -38,6 +48,13 @@
|
|||||||
./hosts/atlas/hardware-configuration.nix
|
./hosts/atlas/hardware-configuration.nix
|
||||||
./modules/common.nix
|
./modules/common.nix
|
||||||
mangoModule
|
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 {
|
in {
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
|
|||||||
@@ -23,6 +23,19 @@
|
|||||||
|
|
||||||
networking.networkmanager.enable = true;
|
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)
|
# AMD GPU - RDNA 4 (RX 9060 XT) + Zen 3 CPU (5700G)
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
@@ -162,6 +175,13 @@
|
|||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
alsa.support32Bit = true;
|
alsa.support32Bit = true;
|
||||||
pulse.enable = 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)
|
# Disable PulseAudio (conflicts with PipeWire)
|
||||||
|
|||||||
@@ -38,6 +38,8 @@
|
|||||||
# -- Git --
|
# -- Git --
|
||||||
lazygit
|
lazygit
|
||||||
gh # GitHub CLI
|
gh # GitHub CLI
|
||||||
|
delta # Git diff viewer
|
||||||
|
meld # Visual diff tool
|
||||||
|
|
||||||
# -- Node.js --
|
# -- Node.js --
|
||||||
nodejs_22
|
nodejs_22
|
||||||
@@ -54,10 +56,11 @@
|
|||||||
bat # cat alternative
|
bat # cat alternative
|
||||||
fzf # Fuzzy finder
|
fzf # Fuzzy finder
|
||||||
zoxide # cd alternative
|
zoxide # cd alternative
|
||||||
delta # Git diff viewer
|
|
||||||
|
|
||||||
# -- Database Clients --
|
# -- Database & API Tools --
|
||||||
postgresql # psql client
|
postgresql # psql client
|
||||||
|
dbeaver-bin # Database GUI
|
||||||
|
insomnia # API testing
|
||||||
# redis # Uncomment if needed
|
# redis # Uncomment if needed
|
||||||
|
|
||||||
# -- Misc --
|
# -- Misc --
|
||||||
|
|||||||
@@ -1,9 +1,18 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Identification tags (shows in boot menu)
|
# Identification tags (shows in boot menu)
|
||||||
system.nixos.tags = [ "gaming" "zen" ];
|
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
|
# KERNEL - Zen for gaming performance
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
@@ -62,6 +71,7 @@
|
|||||||
# -- Performance Overlays --
|
# -- Performance Overlays --
|
||||||
mangohud # FPS counter, GPU stats
|
mangohud # FPS counter, GPU stats
|
||||||
goverlay # MangoHud GUI config
|
goverlay # MangoHud GUI config
|
||||||
|
vkbasalt # Vulkan post-processing (sharpening, CAS)
|
||||||
|
|
||||||
# -- Game Launchers --
|
# -- Game Launchers --
|
||||||
lutris # Multi-platform launcher
|
lutris # Multi-platform launcher
|
||||||
@@ -76,6 +86,10 @@
|
|||||||
# -- Utilities --
|
# -- Utilities --
|
||||||
gamescope # Micro-compositor for gaming
|
gamescope # Micro-compositor for gaming
|
||||||
corectrl # AMD GPU control GUI
|
corectrl # AMD GPU control GUI
|
||||||
|
lact # Linux AMDGPU Control Tool (alternative to CoreCtrl)
|
||||||
|
|
||||||
|
# -- Communication --
|
||||||
|
discord # Voice chat and gaming communities
|
||||||
|
|
||||||
# -- Optional Game Clients --
|
# -- Optional Game Clients --
|
||||||
# prismlauncher # Minecraft
|
# 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.