diff options
author | Nick Cao <nickcao@nichi.co> | 2023-04-15 22:00:55 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-15 22:00:55 +0800 |
commit | 7a2fcddf525081c6d3f4cfeb8c466c88409cc1dc (patch) | |
tree | b645e18f0c4d0e3d025e0d1bf2843d597fe0bed2 /nixos/modules/programs | |
parent | cb5037e55476c5fb3b9ee5f6c28da535cc390824 (diff) | |
parent | 907bd4927b7f11d715249729ea055dd64eb60f91 (diff) | |
download | nixpkgs-7a2fcddf525081c6d3f4cfeb8c466c88409cc1dc.tar nixpkgs-7a2fcddf525081c6d3f4cfeb8c466c88409cc1dc.tar.gz nixpkgs-7a2fcddf525081c6d3f4cfeb8c466c88409cc1dc.tar.bz2 nixpkgs-7a2fcddf525081c6d3f4cfeb8c466c88409cc1dc.tar.lz nixpkgs-7a2fcddf525081c6d3f4cfeb8c466c88409cc1dc.tar.xz nixpkgs-7a2fcddf525081c6d3f4cfeb8c466c88409cc1dc.tar.zst nixpkgs-7a2fcddf525081c6d3f4cfeb8c466c88409cc1dc.zip |
Merge pull request #223730 from zendo/clash-verge-module
nixos/clash-verge: init module
Diffstat (limited to 'nixos/modules/programs')
-rw-r--r-- | nixos/modules/programs/clash-verge.nix | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/nixos/modules/programs/clash-verge.nix b/nixos/modules/programs/clash-verge.nix new file mode 100644 index 00000000000..29977be3858 --- /dev/null +++ b/nixos/modules/programs/clash-verge.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: + +{ + options.programs.clash-verge = { + enable = lib.mkEnableOption (lib.mdDoc '' + Clash Verge. + ''); + + autoStart = lib.mkEnableOption (lib.mdDoc '' + Clash Verge Auto Launch. + ''); + + tunMode = lib.mkEnableOption (lib.mdDoc '' + Clash Verge Tun Mode. + ''); + }; + + config = + let + cfg = config.programs.clash-verge; + in + lib.mkIf cfg.enable { + + environment.systemPackages = [ + pkgs.clash-verge + (lib.mkIf cfg.autoStart (pkgs.makeAutostartItem { + name = "clash-verge"; + package = pkgs.clash-verge; + })) + ]; + + security.wrappers.clash-verge = lib.mkIf cfg.tunMode { + owner = "root"; + group = "root"; + capabilities = "cap_net_bind_service,cap_net_admin=+ep"; + source = "${lib.getExe pkgs.clash-verge}"; + }; + }; + + meta.maintainers = with lib.maintainers; [ zendo ]; +} |