From 6817299f3834d825d99277c0536613a9a8107e3b Mon Sep 17 00:00:00 2001 From: wxt <3264117476@qq.com> Date: Mon, 25 Nov 2024 18:01:42 +0800 Subject: [PATCH] nixos/clash-verge: enable serviceModule by default --- .../manual/release-notes/rl-2505.section.md | 2 ++ nixos/modules/programs/clash-verge.nix | 27 +++++++++++++------ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2505.section.md b/nixos/doc/manual/release-notes/rl-2505.section.md index 5c5b2470e2d3..04fe2032da46 100644 --- a/nixos/doc/manual/release-notes/rl-2505.section.md +++ b/nixos/doc/manual/release-notes/rl-2505.section.md @@ -135,6 +135,8 @@ - `zf` was updated to 0.10.2, which includes breaking changes from the [0.10.0 release](https://github.com/natecraddock/zf/releases/tag/0.10.0). `zf` no longer does Unicode normalization of the input and no longer supports terminal escape sequences in the `ZF_PROMPT` environment variable. +- `programs.clash-verge.tunMode` was deprecated and removed because now service mode is neccessary to start program. Without `programs.clash-verge.enable`, clash-verge-rev will refuse to start. + ## Other Notable Changes {#sec-release-25.05-notable-changes} diff --git a/nixos/modules/programs/clash-verge.nix b/nixos/modules/programs/clash-verge.nix index a2912cb1d8e0..7210fe7ec464 100644 --- a/nixos/modules/programs/clash-verge.nix +++ b/nixos/modules/programs/clash-verge.nix @@ -6,6 +6,11 @@ }: { + imports = [ + (lib.mkRemovedOptionModule [ "programs" "clash-verge" "tunMode" ] '' + The tunMode will work with service mode which is enabled by default. + '') + ]; options.programs.clash-verge = { enable = lib.mkEnableOption "Clash Verge"; package = lib.mkOption { @@ -15,10 +20,10 @@ clash-verge-rev and clash-nyanpasu, both are forks of the original clash-verge project. ''; - example = "pkgs.clash-verge-rev"; + default = pkgs.clash-verge-rev; + defaultText = lib.literalExpression "pkgs.clash-verge-rev"; }; autoStart = lib.mkEnableOption "Clash Verge auto launch"; - tunMode = lib.mkEnableOption "Clash Verge TUN mode"; }; config = @@ -37,13 +42,19 @@ )) ]; - security.wrappers.clash-verge = lib.mkIf cfg.tunMode { - owner = "root"; - group = "root"; - capabilities = "cap_net_bind_service,cap_net_admin=+ep"; - source = "${lib.getExe cfg.package}"; + systemd.services.clash-verge = { + enable = true; + description = "Clash Verge Service Mode"; + serviceConfig = { + ExecStart = "${cfg.package}/bin/clash-verge-service"; + Restart = "on-failure"; + }; + wantedBy = [ "multi-user.target" ]; }; }; - meta.maintainers = with lib.maintainers; [ zendo ]; + meta.maintainers = with lib.maintainers; [ + bot-wxt1221 + Guanran928 + ]; }