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>
61 lines
1.8 KiB
Nix
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;
|
|
};
|
|
};
|
|
}
|