{ ... }: { flake.nixosModules.systemLocalsend = { config, lib, ... }: let cfg = config.chiasson.system.localsend; in { options.chiasson.system.localsend.openFirewall = lib.mkOption { type = lib.types.bool; default = true; description = '' Open TCP/UDP **53317** for LocalSend. Use with `wisdomAppsLocalsend` on the user side. ''; }; config = lib.mkIf cfg.openFirewall { networking.firewall.allowedTCPPorts = [ 53317 ]; networking.firewall.allowedUDPPorts = [ 53317 ]; }; }; flake.homeManagerModules.wisdomAppsLocalsend = { config, lib, pkgs, ... }: let root = config.chiasson.home; cfg = config.chiasson.home.apps.localsend; in { options.chiasson.home.apps.localsend = { enable = lib.mkEnableOption '' LocalSend client; open the firewall on NixOS with `system.localsend` if you want inbound. ''; package = lib.mkPackageOption pkgs "localsend" { }; }; config = lib.mkIf (root.enable && cfg.enable) { home.packages = [ cfg.package ]; }; }; }