summary refs log tree commit diff
path: root/nixos/modules/programs/kdeconnect.nix
blob: 4ba156f2db8d36903e191c99bab5bb7a2e0a398a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{ config, pkgs, lib, ... }:
with lib;
{
  options.programs.kdeconnect = {
    enable = mkEnableOption (lib.mdDoc ''
      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` to use
      `gnomeExtensions.gsconnect` as an alternative
      implementation if you use Gnome
    '');
    package = mkOption {
      default = pkgs.plasma5Packages.kdeconnect-kde;
      defaultText = literalExpression "pkgs.plasma5Packages.kdeconnect-kde";
      type = types.package;
      example = literalExpression "pkgs.gnomeExtensions.gsconnect";
      description = lib.mdDoc ''
        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;
        };
      };
}