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