diff options
| -rw-r--r-- | sys/preset/user.nix | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sys/preset/user.nix b/sys/preset/user.nix index e707481..ff939f8 100644 --- a/sys/preset/user.nix +++ b/sys/preset/user.nix @@ -9,6 +9,17 @@ in { options.local.preset.user = { enable = lib.mkEnableOption "user-like preset"; + + kdeconnect = { + self6 = lib.mkOption { + type = lib.types.str; + }; + + peers6 = lib.mkOption { + type = with lib.types; listOf str; + default = []; + }; + }; }; config = lib.mkIf cfg.enable { @@ -73,6 +84,18 @@ in { }; }; + networking = { + firewall.extraCommands = let + inherit (cfg.kdeconnect) self6; + + peerRules = peer6: '' + ip6tables -A local-input -s ${peer6} -d ${self6} -p tcp -m multiport --dports 1714:1764 -j ACCEPT + ip6tables -A local-input -s ${peer6} -d ${self6} -p udp -m multiport --dports 1714:1764 -j ACCEPT + ''; + in + lib.concatStrings (map peerRules cfg.kdeconnect.peers6); + }; + services.nullmailer = { enable = mkDefault true; |
