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