at 23.11-pre 925 B view raw
1{ config, lib, pkgs, ... }: 2 3{ 4 options.programs.clash-verge = { 5 enable = lib.mkEnableOption (lib.mdDoc '' 6 Clash Verge. 7 ''); 8 9 autoStart = lib.mkEnableOption (lib.mdDoc '' 10 Clash Verge Auto Launch. 11 ''); 12 13 tunMode = lib.mkEnableOption (lib.mdDoc '' 14 Clash Verge Tun Mode. 15 ''); 16 }; 17 18 config = 19 let 20 cfg = config.programs.clash-verge; 21 in 22 lib.mkIf cfg.enable { 23 24 environment.systemPackages = [ 25 pkgs.clash-verge 26 (lib.mkIf cfg.autoStart (pkgs.makeAutostartItem { 27 name = "clash-verge"; 28 package = pkgs.clash-verge; 29 })) 30 ]; 31 32 security.wrappers.clash-verge = lib.mkIf cfg.tunMode { 33 owner = "root"; 34 group = "root"; 35 capabilities = "cap_net_bind_service,cap_net_admin=+ep"; 36 source = "${lib.getExe pkgs.clash-verge}"; 37 }; 38 }; 39 40 meta.maintainers = with lib.maintainers; [ zendo ]; 41}