mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 04:43:44 +08:00
feat: support copy CMD & PowerShell proxy env
This commit is contained in:
parent
bef553c9ae
commit
6e9798d596
@ -52,8 +52,16 @@ impl Tray {
|
|||||||
))
|
))
|
||||||
.add_item(CustomMenuItem::new("tun_mode", t!("TUN Mode", "Tun 模式")))
|
.add_item(CustomMenuItem::new("tun_mode", t!("TUN Mode", "Tun 模式")))
|
||||||
.add_item(CustomMenuItem::new(
|
.add_item(CustomMenuItem::new(
|
||||||
"copy_env",
|
"copy_env_sh",
|
||||||
t!("Copy Env", "复制环境变量"),
|
t!("Copy Env (sh)", "复制环境变量(sh)"),
|
||||||
|
))
|
||||||
|
.add_item(CustomMenuItem::new(
|
||||||
|
"copy_env_cmd",
|
||||||
|
t!("Copy Env (CMD)", "复制环境变量(CMD)"),
|
||||||
|
))
|
||||||
|
.add_item(CustomMenuItem::new(
|
||||||
|
"copy_env_ps",
|
||||||
|
t!("Copy Env (PS)", "复制环境变量(PS)"),
|
||||||
))
|
))
|
||||||
.add_submenu(SystemTraySubmenu::new(
|
.add_submenu(SystemTraySubmenu::new(
|
||||||
t!("Open Dir", "打开目录"),
|
t!("Open Dir", "打开目录"),
|
||||||
@ -149,7 +157,11 @@ impl Tray {
|
|||||||
"open_window" => resolve::create_window(app_handle),
|
"open_window" => resolve::create_window(app_handle),
|
||||||
"system_proxy" => feat::toggle_system_proxy(),
|
"system_proxy" => feat::toggle_system_proxy(),
|
||||||
"tun_mode" => feat::toggle_tun_mode(),
|
"tun_mode" => feat::toggle_tun_mode(),
|
||||||
"copy_env" => feat::copy_clash_env(),
|
"copy_env_sh" => feat::copy_clash_env("sh"),
|
||||||
|
#[cfg(target_os = "windows")]
|
||||||
|
"copy_env_cmd" => feat::copy_clash_env("cmd"),
|
||||||
|
#[cfg(target_os = "windows")]
|
||||||
|
"copy_env_ps" => feat::copy_clash_env("ps"),
|
||||||
"open_app_dir" => crate::log_err!(cmds::open_app_dir()),
|
"open_app_dir" => crate::log_err!(cmds::open_app_dir()),
|
||||||
"open_core_dir" => crate::log_err!(cmds::open_core_dir()),
|
"open_core_dir" => crate::log_err!(cmds::open_core_dir()),
|
||||||
"open_logs_dir" => crate::log_err!(cmds::open_logs_dir()),
|
"open_logs_dir" => crate::log_err!(cmds::open_logs_dir()),
|
||||||
|
@ -332,10 +332,19 @@ async fn update_core_config() -> Result<()> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// copy env variable
|
/// copy env variable
|
||||||
pub fn copy_clash_env() {
|
pub fn copy_clash_env(option: &str) {
|
||||||
let port = { Config::clash().data().get_client_info().port };
|
let port = { Config::clash().data().get_client_info().port };
|
||||||
let text = format!("export https_proxy=http://127.0.0.1:{port} http_proxy=http://127.0.0.1:{port} all_proxy=socks5://127.0.0.1:{port}");
|
|
||||||
|
let sh = format!("export https_proxy=http://127.0.0.1:{port} http_proxy=http://127.0.0.1:{port} all_proxy=socks5://127.0.0.1:{port}");
|
||||||
|
let cmd: String = format!("set http_proxy=http://127.0.0.1:{port} \n set https_proxy=http://127.0.0.1:{port}");
|
||||||
|
let ps: String = format!("$env:HTTP_PROXY=\"http://127.0.0.1:{port}\"; $env:HTTPS_PROXY=\"http://127.0.0.1:{port}\"");
|
||||||
|
|
||||||
let mut cliboard = Clipboard::new();
|
let mut cliboard = Clipboard::new();
|
||||||
cliboard.write_text(text);
|
|
||||||
|
match option {
|
||||||
|
"sh" => cliboard.write_text(sh),
|
||||||
|
"cmd" => cliboard.write_text(cmd),
|
||||||
|
"ps" => cliboard.write_text(ps),
|
||||||
|
_ => log::error!(target: "app", "copy_clash_env: Invalid option! {option}"),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user