diff --git a/v2rayN/ServiceLib/Handler/SysProxy/ProxySettingLinux.cs b/v2rayN/ServiceLib/Handler/SysProxy/ProxySettingLinux.cs index 27bc2403..ff50ef64 100644 --- a/v2rayN/ServiceLib/Handler/SysProxy/ProxySettingLinux.cs +++ b/v2rayN/ServiceLib/Handler/SysProxy/ProxySettingLinux.cs @@ -69,7 +69,7 @@ { lstCmd.Add(new CmdItem() { - Cmd = "kwriteconfig5", + Cmd = GetKdeVersion(), Arguments = ["--file", $"{configDir}/kioslaverc", "--group", "Proxy Settings", "--key", "ProxyType", "0"] }); } @@ -88,12 +88,13 @@ private static List GetSetCmd4Kde(string type, string host, int port, string configDir) { List lstCmd = []; + var cmd = GetKdeVersion(); if (type.IsNullOrEmpty()) { lstCmd.Add(new() { - Cmd = "kwriteconfig5", + Cmd = cmd, Arguments = ["--file", $"{configDir}/kioslaverc", "--group", "Proxy Settings", "--key", "ProxyType", "1"] }); } @@ -101,7 +102,7 @@ { lstCmd.Add(new() { - Cmd = "kwriteconfig5", + Cmd = cmd, Arguments = ["--file", $"{configDir}/kioslaverc", "--group", "Proxy Settings", "--key", "NoProxyFor", host] }); } @@ -110,7 +111,7 @@ var type2 = type.Equals("https") ? "http" : type; lstCmd.Add(new CmdItem() { - Cmd = "kwriteconfig5", + Cmd = cmd, Arguments = ["--file", $"{configDir}/kioslaverc", "--group", "Proxy Settings", "--key", $"{type}Proxy", $"{type2}://{host}:{port}"] }); } @@ -172,5 +173,14 @@ return isKde; } + private static string GetKdeVersion() + { + var ver = Environment.GetEnvironmentVariable("KDE_SESSION_VERSION") ?? "0"; + return ver switch + { + "6" => "kwriteconfig6", + _ => "kwriteconfig5" + }; + } } } \ No newline at end of file