Configure for atlas/pinj and add Wayland session variables #2

Merged
ragusa-it merged 6 commits from claude/analyze-setup-z9dDE into main 2026-02-01 20:25:09 +00:00
5 changed files with 82 additions and 22 deletions

View File

@@ -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;
@@ -34,11 +44,17 @@
mangoModule = assert lib.hasAttrByPath [ "nixosModules" "mango" ] mango;
mango.nixosModules.mango;
# IMPORTANT: Replace <hostname> with actual hostname
commonModules = [
./hosts/<hostname>/hardware-configuration.nix
./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 = {

View File

@@ -10,13 +10,32 @@
# --------------------------------------------------------------------------
# SYSTEM
# --------------------------------------------------------------------------
# IMPORTANT: Replace with actual values
networking.hostName = "<hostname>";
time.timeZone = "<timezone>";
i18n.defaultLocale = "<locale>";
networking.hostName = "atlas";
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
# German keyboard layout (nodeadkeys variant)
console.keyMap = "de-latin1-nodeadkeys";
services.xserver.xkb = {
layout = "de";
copilot-pull-request-reviewer[bot] commented 2026-02-01 20:07:56 +00:00 (Migrated from github.com)
Review

PR description says the system timezone should be set to Europe/Rome (with a TODO note), but the config hard-codes Europe/Berlin and there’s no TODO. Please align the value (and TODO/comment) with the intended target, or update the PR description if Berlin is correct.

PR description says the system timezone should be set to Europe/Rome (with a TODO note), but the config hard-codes Europe/Berlin and there’s no TODO. Please align the value (and TODO/comment) with the intended target, or update the PR description if Berlin is correct.
variant = "nodeadkeys";
};
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)
# --------------------------------------------------------------------------
@@ -42,6 +61,13 @@
# This variable is optional but makes it explicit
environment.variables.AMD_VULKAN_ICD = "RADV";
# Wayland session variables for proper app integration
environment.sessionVariables = {
QT_QPA_PLATFORM = "wayland";
MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1"; # Electron apps (VS Code, Discord, etc.)
};
# --------------------------------------------------------------------------
# CPU - Zen 3 Optimizations (Ryzen 7 5700G)
# --------------------------------------------------------------------------
@@ -75,16 +101,14 @@
enable = true;
settings.default_session = {
command = "mango";
# IMPORTANT: Replace <username> with actual username
user = "<username>";
user = "pinj";
};
};
# --------------------------------------------------------------------------
# USER ACCOUNT
# --------------------------------------------------------------------------
# IMPORTANT: Replace <username> with actual username
users.users.<username> = {
users.users.pinj = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" "video" "seat" ];
# IMPORTANT: Generate a password hash with: mkpasswd -m sha-512
@@ -151,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)

View File

@@ -22,10 +22,9 @@
};
};
# IMPORTANT: Replace <username> with actual username
# NOTE: After first enabling/applying this dev profile, you must log out and
# log back in (or reboot) for the docker group membership to take effect.
users.users.<username>.extraGroups = [ "docker" ];
users.users.pinj.extraGroups = [ "docker" ];
# --------------------------------------------------------------------------
# DEVELOPMENT TOOLS
@@ -35,11 +34,12 @@
nix-direnv.enable = true; # Caches nix shells
};
# IMPORTANT: Replace <username> with actual username
users.users.<username>.packages = with pkgs; [
users.users.pinj.packages = with pkgs; [
# -- Git --
lazygit
gh # GitHub CLI
delta # Git diff viewer
meld # Visual diff tool
# -- Node.js --
nodejs_22
@@ -56,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 --

View File

@@ -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
# --------------------------------------------------------------------------
@@ -53,17 +62,16 @@
# programs to function correctly. These groups are only added when using
# the gaming profile. If you need consistent group membership across
# both profiles, add these groups to common.nix instead.
# IMPORTANT: Replace <username> with actual username
users.users.<username>.extraGroups = [ "corectrl" "gamemode" ];
users.users.pinj.extraGroups = [ "corectrl" "gamemode" ];
# --------------------------------------------------------------------------
# GAMING PACKAGES
# --------------------------------------------------------------------------
# IMPORTANT: Replace <username> with actual username
users.users.<username>.packages = with pkgs; [
users.users.pinj.packages = with pkgs; [
# -- Performance Overlays --
mangohud # FPS counter, GPU stats
goverlay # MangoHud GUI config
vkbasalt # Vulkan post-processing (sharpening, CAS)
# -- Game Launchers --
lutris # Multi-platform launcher
@@ -78,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