nix: update home-manager input
[julm/julm-nix.git] / hosts / aubergine / networking / lte.nix
index 5c292c4502da8038f219dfe523b959432d5ae05d..550b895fbf933376c8f89fb933fdf45ea5dda491 100644 (file)
@@ -1,4 +1,4 @@
-{ pkgs, config, ... }:
+{ pkgs, lib, config, ... }:
 with (import ./names-and-numbers.nix);
 let
   inherit (config.users) users;
@@ -37,6 +37,12 @@ in
   '';
   services.mmsd.enable = true;
   services.mmsd.extraArgs = [ "--debug" ];
+  systemd.services.ModemManager.serviceConfig.ExecStart =
+    lib.mkForce [
+      ""
+      "${pkgs.modemmanager-1-18}/bin/ModemManager --debug"
+      #"${pkgs.modemmanager-1-20-4}/bin/ModemManager --debug"
+    ];
   systemd.services.NetworkManager.wants = [ "ModemManager.service" ];
   services.dbus.packages = [ pkgs.dconf ];
   programs.dconf.enable = true;
@@ -48,7 +54,7 @@ in
       uuid=b223f550-dff1-4ba3-9755-cd4557faaa5a
       type=gsm
       autoconnect=true
-      permissions=user:${users.julm.name}:;
+      autoconnect-retries=0
 
       [gsm]
       apn=sl2sfr
@@ -70,12 +76,35 @@ in
       [proxy]
     '';
   };
+  systemd.services.watch-lte = {
+    after = [ "NetworkManager-wait-online.service" ];
+    requires = [ "NetworkManager-wait-online.service" ];
+    wantedBy = [ "network-online.target" ];
+    #startAt = "*:0/5"; # every 5 min
+    path = with pkgs; [ inetutils networkmanager ];
+    unitConfig = { StartLimitIntervalSec = 0; };
+    serviceConfig = {
+      Type = "simple";
+      IPAddressAllow = [ "9.9.9.9" ];
+      RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+      ExecStart = pkgs.writeShellScript "watch-lte" ''
+        set -ux
+        while sleep 300; do
+          ping -c 1 9.9.9.9 ||
+          nmcli connection up Prixtel
+        done
+      '';
+      Restart = "on-failure";
+      RestartSec = "30s";
+    };
+  };
   environment.systemPackages = [
     pkgs.modem-manager-gui
     pkgs.libmbim
     pkgs.chatty
     pkgs.gnome.gnome-contacts
     pkgs.picocom
+    pkgs.tio
     pkgs.calls
     pkgs.dfeet
     # https://gitlab.com/mobian1/callaudiod/-/issues/26