python312Packages.mypy-boto3-customer-profiles: 1.35.29 -> 1.35.64
[NixPkgs.git] / nixos / modules / programs / clash-verge.nix
bloba2912cb1d8e0f545ea12aea69728efef08f9eb20
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
9   options.programs.clash-verge = {
10     enable = lib.mkEnableOption "Clash Verge";
11     package = lib.mkOption {
12       type = lib.types.package;
13       description = ''
14         The clash-verge package to use. Available options are
15         clash-verge-rev and clash-nyanpasu, both are forks of
16         the original clash-verge project.
17       '';
18       example = "pkgs.clash-verge-rev";
19     };
20     autoStart = lib.mkEnableOption "Clash Verge auto launch";
21     tunMode = lib.mkEnableOption "Clash Verge TUN mode";
22   };
24   config =
25     let
26       cfg = config.programs.clash-verge;
27     in
28     lib.mkIf cfg.enable {
30       environment.systemPackages = [
31         cfg.package
32         (lib.mkIf cfg.autoStart (
33           pkgs.makeAutostartItem {
34             name = "clash-verge";
35             package = cfg.package;
36           }
37         ))
38       ];
40       security.wrappers.clash-verge = lib.mkIf cfg.tunMode {
41         owner = "root";
42         group = "root";
43         capabilities = "cap_net_bind_service,cap_net_admin=+ep";
44         source = "${lib.getExe cfg.package}";
45       };
46     };
48   meta.maintainers = with lib.maintainers; [ zendo ];