nixos/hosts/FredOS-Gaming.nix
ediblerope 1aa6f26cab gaming: actually disable IPv6 on NetworkManager connections
networking.enableIPv6 = false only sets the system sysctl; NetworkManager
keeps re-enabling disable_ipv6=0 per-interface because connection
defaults to ipv6.method = auto. The "?" icon comes back because NM's
v6 connectivity probe races over a SLAAC ULA with no real upstream.

Forces ipv6.method = disabled in NetworkManager's connection defaults
and stops the kernel from accepting router advertisements, so v6 never
gets brought up on any new or existing connection.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 23:06:36 +01:00

61 lines
1.8 KiB
Nix

# hosts/FredOS-Gaming.nix
{ config, pkgs, lib, inputs, ... }:
{
config = lib.mkIf (config.networking.hostName == "FredOS-Gaming") {
environment.systemPackages = with pkgs; [
lutris
#(heroic.override {
# extraPkgs = pkgs: with pkgs; [
# adwaita-icon-theme
# ];
#})
mangohud
gamescope
vesktop
lsfg-vk
lsfg-vk-ui
faugus-launcher
adwaita-icon-theme
mission-center
geary
wowup-cf
adwsteamgtk
protonvpn-gui
onlyoffice-desktopeditors
vscodium
woeusb
];
programs.nix-ld.enable = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
package = pkgs.steam.override {
extraPkgs = pkgs: with pkgs; [
adwaita-icon-theme
];
};
};
boot.loader.systemd-boot.configurationLimit = 5;
boot.initrd.systemd.enable = true;
# 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.
#
# `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.
networking.enableIPv6 = false;
networking.networkmanager.connectionConfig."ipv6.method" = "disabled";
boot.kernel.sysctl = {
"net.ipv6.conf.all.accept_ra" = 0;
"net.ipv6.conf.default.accept_ra" = 0;
};
};
}