diff --git a/src-tauri/src/cmds.rs b/src-tauri/src/cmds.rs index 9e9749f92fd03889518dd4ec0f482c2e9173d750..33de5e67a1b54947daa884494b272765a0cca39e 100644 --- a/src-tauri/src/cmds.rs +++ b/src-tauri/src/cmds.rs @@ -202,6 +202,13 @@ pub fn open_app_dir() -> CmdResult<()> { wrap_err!(open::that(app_dir)) } +#[tauri::command] +pub fn open_core_dir() -> CmdResult<()> { + let core_dir = wrap_err!(tauri::utils::platform::current_exe())?; + let core_dir = core_dir.parent().ok_or(format!("failed to get core dir"))?; + wrap_err!(open::that(core_dir)) +} + #[tauri::command] pub fn open_logs_dir() -> CmdResult<()> { let log_dir = wrap_err!(dirs::app_logs_dir())?; diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index abe0e7d77f504481d5fc3819547f21815f800483..a3ff8665d55f2fca3642359303d4ca10b7f0d5f0 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -33,6 +33,7 @@ fn main() -> std::io::Result<()> { cmds::open_app_dir, cmds::open_logs_dir, cmds::open_web_url, + cmds::open_core_dir, // cmds::kill_sidecar, cmds::restart_sidecar, // clash diff --git a/src/components/setting/setting-verge.tsx b/src/components/setting/setting-verge.tsx index 7cf83131776acfe90cfdef52e4286563545ad097..ed43fa5c2aaa8761b59eb9664f5d0500cf0c167c 100644 --- a/src/components/setting/setting-verge.tsx +++ b/src/components/setting/setting-verge.tsx @@ -7,7 +7,7 @@ import { Switch, Typography, } from "@mui/material"; -import { openAppDir, openLogsDir, patchVergeConfig } from "@/services/cmds"; +import { openAppDir, openCoreDir, openLogsDir } from "@/services/cmds"; import { ArrowForward } from "@mui/icons-material"; import { useVerge } from "@/hooks/use-verge"; import { version } from "@root/package.json"; @@ -94,7 +94,7 @@ const SettingVerge = ({ onError }: Props) => { onCatch={onError} onFormat={onSwitchFormat} onChange={(e) => onChangeData({ traffic_graph: e })} - onGuard={(e) => patchVergeConfig({ traffic_graph: e })} + onGuard={(e) => patchVerge({ traffic_graph: e })} > <Switch edge="end" /> </GuardState> @@ -155,6 +155,17 @@ const SettingVerge = ({ onError }: Props) => { </IconButton> </SettingItem> + <SettingItem label={t("Open Core Dir")}> + <IconButton + color="inherit" + size="small" + sx={{ my: "2px" }} + onClick={openCoreDir} + > + <ArrowForward /> + </IconButton> + </SettingItem> + <SettingItem label={t("Open Logs Dir")}> <IconButton color="inherit" diff --git a/src/locales/en.json b/src/locales/en.json index 9c139c9ebb2ad5c48b38dcf2564f2549068525ea..93111e2fc1b3d359f66348b0f43e36297650b817 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -78,6 +78,7 @@ "Traffic Graph": "Traffic Graph", "Language": "Language", "Open App Dir": "Open App Dir", + "Open Core Dir": "Open Core Dir", "Open Logs Dir": "Open Logs Dir", "Verge Version": "Verge Version", "theme.light": "Light", diff --git a/src/locales/zh.json b/src/locales/zh.json index d836e5c01bba936e702e74cb3f75086e88cce3e7..25a621228027b683131538a5f2eeb88b83bb274b 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -82,6 +82,7 @@ "Traffic Graph": "æµé‡å›¾æ˜¾", "Language": "è¯è¨€è®¾ç½®", "Open App Dir": "应用目录", + "Open Core Dir": "å†…æ ¸ç›®å½•", "Open Logs Dir": "日志目录", "Verge Version": "应用版本", "theme.light": "浅色", diff --git a/src/services/cmds.ts b/src/services/cmds.ts index 9bed83e9607719316419b0683d1616a704826f7a..d6bbca530b1681c583b1a02b4700cd62feaa836b 100644 --- a/src/services/cmds.ts +++ b/src/services/cmds.ts @@ -133,6 +133,12 @@ export async function openAppDir() { ); } +export async function openCoreDir() { + return invoke<void>("open_core_dir").catch((err) => + Notice.error(err?.message || err.toString(), 1500) + ); +} + export async function openLogsDir() { return invoke<void>("open_logs_dir").catch((err) => Notice.error(err?.message || err.toString(), 1500)