2025-12-09 16:14:43 +00:00
|
|
|
# hosts/FredOS-Gaming.nix
|
2026-03-28 13:42:35 +00:00
|
|
|
{ config, pkgs, lib, inputs, ... }:
|
2025-12-09 16:14:43 +00:00
|
|
|
{
|
|
|
|
|
config = lib.mkIf (config.networking.hostName == "FredOS-Gaming") {
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
2026-01-08 12:18:35 +00:00
|
|
|
mangohud
|
2026-04-18 21:53:15 +01:00
|
|
|
gamescope
|
2026-04-09 20:13:54 +01:00
|
|
|
vesktop
|
2026-01-08 15:17:30 +00:00
|
|
|
lsfg-vk
|
2026-01-08 15:36:54 +00:00
|
|
|
lsfg-vk-ui
|
2026-01-16 23:41:18 +00:00
|
|
|
faugus-launcher
|
2026-01-20 08:22:00 +00:00
|
|
|
adwaita-icon-theme
|
|
|
|
|
mission-center
|
2026-01-21 13:48:51 +00:00
|
|
|
geary
|
2026-03-01 22:42:47 +00:00
|
|
|
wowup-cf
|
2026-03-23 09:16:05 +00:00
|
|
|
adwsteamgtk
|
2026-05-01 13:38:27 +01:00
|
|
|
protonvpn-gui
|
2026-03-28 15:57:10 +00:00
|
|
|
onlyoffice-desktopeditors
|
2026-05-02 05:53:15 -07:00
|
|
|
woeusb
|
2025-12-09 16:00:56 +00:00
|
|
|
];
|
2026-04-01 21:14:16 +01:00
|
|
|
|
2026-05-17 21:01:00 +01:00
|
|
|
# Force all builds off the gaming PC onto the media server so nix updates
|
|
|
|
|
# never compete with games for CPU/RAM. Pairs with the distributed build
|
|
|
|
|
# config in common.nix. builders-use-substitutes lets the server pull from
|
|
|
|
|
# binary caches directly rather than re-uploading through this machine.
|
|
|
|
|
nix.settings.max-jobs = 0;
|
|
|
|
|
nix.settings.builders-use-substitutes = true;
|
|
|
|
|
|
2026-04-01 15:58:10 +01:00
|
|
|
programs.nix-ld.enable = true;
|
2026-05-12 21:12:58 +01:00
|
|
|
programs.nix-ld.libraries = with pkgs; [
|
|
|
|
|
stdenv.cc.cc.lib # libstdc++.so.6 — needed by VSCodium extension native addons (e.g. sqlite3 in Continue)
|
|
|
|
|
];
|
2026-01-29 12:44:24 +00:00
|
|
|
|
2025-12-09 15:58:30 +00:00
|
|
|
programs.steam = {
|
|
|
|
|
enable = true;
|
|
|
|
|
remotePlay.openFirewall = true;
|
|
|
|
|
package = pkgs.steam.override {
|
|
|
|
|
extraPkgs = pkgs: with pkgs; [
|
2025-12-10 20:08:07 +00:00
|
|
|
adwaita-icon-theme
|
2025-12-09 15:58:30 +00:00
|
|
|
];
|
|
|
|
|
};
|
2025-12-09 16:14:43 +00:00
|
|
|
};
|
2026-04-01 21:14:16 +01:00
|
|
|
|
2026-03-28 15:28:37 +00:00
|
|
|
boot.loader.systemd-boot.configurationLimit = 5;
|
|
|
|
|
boot.initrd.systemd.enable = true;
|
2026-05-14 14:52:29 +01:00
|
|
|
boot.kernelParams = [ "video=DP-2:3440x1440@180" ];
|
2026-04-28 13:00:59 +01:00
|
|
|
|
|
|
|
|
# LAN has no IPv6 route — AAAA lookups succeed but connect fails, which
|
|
|
|
|
# made NetworkManager's connectivity probe report "limited" at boot
|
|
|
|
|
# (GNOME's "?" icon) until the next 5-min repoll.
|
2026-05-02 23:06:33 +01:00
|
|
|
#
|
|
|
|
|
# `enableIPv6 = false` only sets the system-wide sysctl; NetworkManager
|
|
|
|
|
# still flips disable_ipv6=0 on the live interface because each connection
|
|
|
|
|
# defaults to `ipv6.method = auto`. The probe then races over a SLAAC ULA
|
|
|
|
|
# that has no real upstream and we get the "?" again. Force every NM
|
|
|
|
|
# connection to skip v6 altogether and ignore router advertisements at
|
|
|
|
|
# the kernel layer for any future interface.
|
2026-04-28 13:00:59 +01:00
|
|
|
networking.enableIPv6 = false;
|
2026-05-02 23:06:33 +01:00
|
|
|
networking.networkmanager.connectionConfig."ipv6.method" = "disabled";
|
|
|
|
|
boot.kernel.sysctl = {
|
|
|
|
|
"net.ipv6.conf.all.accept_ra" = 0;
|
|
|
|
|
"net.ipv6.conf.default.accept_ra" = 0;
|
|
|
|
|
};
|
2026-05-06 15:56:09 +01:00
|
|
|
|
|
|
|
|
# NetworkManager only re-runs its connectivity probe on link-up or every
|
|
|
|
|
# 5 minutes. If the first boot probe races NM startup and reports
|
|
|
|
|
# "limited", GNOME caches that state until the next repoll — which is
|
|
|
|
|
# what surfaces as the persistent "?" icon. This oneshot kicks an
|
|
|
|
|
# explicit recheck once everything's online, which forces NM to
|
|
|
|
|
# transition to "full" and the icon clears.
|
|
|
|
|
systemd.services.nm-connectivity-kick = {
|
|
|
|
|
description = "Force NetworkManager connectivity recheck after boot";
|
|
|
|
|
after = [ "NetworkManager.service" "network-online.target" ];
|
|
|
|
|
wants = [ "network-online.target" ];
|
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
|
serviceConfig = {
|
|
|
|
|
Type = "oneshot";
|
|
|
|
|
ExecStart = "${pkgs.networkmanager}/bin/nmcli networking connectivity check";
|
|
|
|
|
};
|
|
|
|
|
};
|
2026-05-14 10:44:32 +01:00
|
|
|
|
|
|
|
|
home-manager.users.fred = { ... }: {
|
2026-05-17 20:38:30 +01:00
|
|
|
wayland.windowManager.hyprland.settings.monitor = [{
|
|
|
|
|
output = "DP-2";
|
|
|
|
|
mode = "3440x1440@180";
|
|
|
|
|
position = "0x0";
|
|
|
|
|
scale = 1;
|
|
|
|
|
}];
|
2026-05-15 20:20:35 +01:00
|
|
|
|
2026-05-15 20:29:05 +01:00
|
|
|
home.file.".local/share/Steam/compatibilitytools.d/Proton-CachyOS Latest".source =
|
2026-05-15 20:20:35 +01:00
|
|
|
inputs.proton-cachyos-nix.packages.x86_64-linux.proton-cachyos-x86_64-v3.steamcompattool;
|
2026-05-14 10:44:32 +01:00
|
|
|
};
|
2025-12-09 16:14:43 +00:00
|
|
|
};
|
|
|
|
|
}
|