summary refs log tree commit diff
diff options
context:
space:
mode:
authorPasquale <p3dimaria@hotmail.it>2019-06-28 17:28:37 +0200
committerPasquale <p3dimaria@hotmail.it>2021-05-16 01:43:42 +0200
commit42af3b3ab73379e8ce9ec604e0c4e3fd2afc0194 (patch)
treeb8665ada4bdb6efa4e97deae35d34ffabad3310a
parentd24aefd52f75f0854a417c3adf02c9d310c23157 (diff)
downloadnixpkgs-42af3b3ab73379e8ce9ec604e0c4e3fd2afc0194.tar
nixpkgs-42af3b3ab73379e8ce9ec604e0c4e3fd2afc0194.tar.gz
nixpkgs-42af3b3ab73379e8ce9ec604e0c4e3fd2afc0194.tar.bz2
nixpkgs-42af3b3ab73379e8ce9ec604e0c4e3fd2afc0194.tar.lz
nixpkgs-42af3b3ab73379e8ce9ec604e0c4e3fd2afc0194.tar.xz
nixpkgs-42af3b3ab73379e8ce9ec604e0c4e3fd2afc0194.tar.zst
nixpkgs-42af3b3ab73379e8ce9ec604e0c4e3fd2afc0194.zip
nixos: add programs.kdeconnect option
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/programs/kdeconnect.nix35
2 files changed, 36 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 6b8c8255c4d..1dd1054cdac 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -112,6 +112,7 @@
   ./programs/iftop.nix
   ./programs/iotop.nix
   ./programs/java.nix
+  ./programs/kdeconnect.nix
   ./programs/kbdlight.nix
   ./programs/less.nix
   ./programs/light.nix
diff --git a/nixos/modules/programs/kdeconnect.nix b/nixos/modules/programs/kdeconnect.nix
new file mode 100644
index 00000000000..673449b9f63
--- /dev/null
+++ b/nixos/modules/programs/kdeconnect.nix
@@ -0,0 +1,35 @@
+{ config, pkgs, lib, ... }:
+with lib;
+{
+  options.programs.kdeconnect = {
+    enable = mkEnableOption ''
+      kdeconnect.
+
+      Note that it will open the TCP and UDP port from
+      1714 to 1764 as they are needed for it to function properly.
+      You can use the <option>package</option> to use
+      <code>gnomeExtensions.gsconnect</code> as an alternative
+      implementation if you use Gnome.
+    '';
+    package = mkOption {
+      default = pkgs.kdeconnect;
+      defaultText = "pkgs.kdeconnect";
+      type = types.package;
+      example = literalExample "pkgs.gnomeExtensions.gsconnect";
+      description = ''
+        The package providing the implementation for kdeconnect.
+      '';
+    };
+  };
+  config =
+    let
+      cfg = config.programs.kdeconnect;
+    in
+      mkIf cfg.enable {
+        environment.systemPackages = [ cfg.package ];
+        networking.firewall = rec {
+          allowedTCPPortRanges = [ { from = 1714; to = 1764; } ];
+          allowedUDPPortRanges = allowedTCPPortRanges;
+        };
+      };
+}