From 38fb614309e79b1f754f9e0400d84b0e86227c9e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 18 Jan 2022 15:09:23 +0100 Subject: [PATCH] base: disable wifi when on ethernet --- base/gui-programs.nix | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/base/gui-programs.nix b/base/gui-programs.nix index 51c23d4..5be13c1 100644 --- a/base/gui-programs.nix +++ b/base/gui-programs.nix @@ -55,7 +55,40 @@ in inherit (pkgs.unstable) discord; }; - networking.networkmanager.enable = true; + networking.networkmanager = { + enable = true; + + dispatcherScripts = [ + { + source = + let + grep = "${pkgs.gnugrep}/bin/grep"; + nmcli = "${pkgs.networkmanager}/bin/nmcli"; + in pkgs.writeShellScript "disable_wifi_on_ethernet" '' + export LC_ALL=C + + enable_disable_wifi () + { + result=$(${nmcli} dev | ${grep} "ethernet" | ${grep} -w "connected") + if [ -n "$result" ]; then + ${nmcli} radio wifi off + else + ${nmcli} radio wifi on + fi + } + + if [ "$2" = "up" ]; then + enable_disable_wifi + fi + + if [ "$2" = "down" ]; then + enable_disable_wifi + fi + ''; + type = "basic"; + } + ]; + }; programs.nm-applet.enable = true; programs.steam.enable = true;