typioca: 2.7.0 -> 2.8.0
[NixPkgs.git] / nixos / modules / programs / kdeconnect.nix
blob4ba156f2db8d36903e191c99bab5bb7a2e0a398a
1 { config, pkgs, lib, ... }:
2 with lib;
4   options.programs.kdeconnect = {
5     enable = mkEnableOption (lib.mdDoc ''
6       kdeconnect.
8       Note that it will open the TCP and UDP port from
9       1714 to 1764 as they are needed for it to function properly.
10       You can use the {option}`package` to use
11       `gnomeExtensions.gsconnect` as an alternative
12       implementation if you use Gnome
13     '');
14     package = mkOption {
15       default = pkgs.plasma5Packages.kdeconnect-kde;
16       defaultText = literalExpression "pkgs.plasma5Packages.kdeconnect-kde";
17       type = types.package;
18       example = literalExpression "pkgs.gnomeExtensions.gsconnect";
19       description = lib.mdDoc ''
20         The package providing the implementation for kdeconnect.
21       '';
22     };
23   };
24   config =
25     let
26       cfg = config.programs.kdeconnect;
27     in
28       mkIf cfg.enable {
29         environment.systemPackages = [ cfg.package ];
30         networking.firewall = rec {
31           allowedTCPPortRanges = [ { from = 1714; to = 1764; } ];
32           allowedUDPPortRanges = allowedTCPPortRanges;
33         };
34       };