mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 03:13:44 +08:00
feat: sync auto-start status
This commit is contained in:
parent
697d200ffe
commit
6239f81f36
@ -70,6 +70,13 @@ pub fn get_app_dir() -> CmdResult<String> {
|
|||||||
Ok(app_home_dir)
|
Ok(app_home_dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 获取当前自启动状态
|
||||||
|
#[tauri::command]
|
||||||
|
pub fn get_auto_launch_status() -> CmdResult<bool> {
|
||||||
|
use crate::core::sysopt::Sysopt;
|
||||||
|
wrap_err!(Sysopt::global().get_launch_status())
|
||||||
|
}
|
||||||
|
|
||||||
/// 下载图标缓存
|
/// 下载图标缓存
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn download_icon_cache(url: String, name: String) -> CmdResult<String> {
|
pub async fn download_icon_cache(url: String, name: String) -> CmdResult<String> {
|
||||||
|
@ -229,6 +229,13 @@ impl Sysopt {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 获取当前自启动的实际状态
|
||||||
|
pub fn get_launch_status(&self) -> Result<bool> {
|
||||||
|
let app_handle = Handle::global().app_handle().unwrap();
|
||||||
|
let autostart_manager = app_handle.autolaunch();
|
||||||
|
Ok(autostart_manager.is_enabled()?)
|
||||||
|
}
|
||||||
|
|
||||||
fn guard_proxy(&self) {
|
fn guard_proxy(&self) {
|
||||||
let _lock = self.guard_state.lock();
|
let _lock = self.guard_state.lock();
|
||||||
|
|
||||||
|
@ -154,6 +154,7 @@ pub fn run() {
|
|||||||
cmd::get_running_mode,
|
cmd::get_running_mode,
|
||||||
cmd::install_service,
|
cmd::install_service,
|
||||||
cmd::get_app_uptime,
|
cmd::get_app_uptime,
|
||||||
|
cmd::get_auto_launch_status,
|
||||||
// clash
|
// clash
|
||||||
cmd::get_clash_info,
|
cmd::get_clash_info,
|
||||||
cmd::patch_clash_config,
|
cmd::patch_clash_config,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import useSWR, { mutate } from "swr";
|
import useSWR, { mutate } from "swr";
|
||||||
import { useRef } from "react";
|
import { useRef, useEffect } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import {
|
import {
|
||||||
SettingsRounded,
|
SettingsRounded,
|
||||||
@ -20,6 +20,7 @@ import {
|
|||||||
getAutotemProxy,
|
getAutotemProxy,
|
||||||
getRunningMode,
|
getRunningMode,
|
||||||
installService,
|
installService,
|
||||||
|
getAutoLaunchStatus,
|
||||||
} from "@/services/cmds";
|
} from "@/services/cmds";
|
||||||
import { useLockFn } from "ahooks";
|
import { useLockFn } from "ahooks";
|
||||||
import { Box, Button, Tooltip } from "@mui/material";
|
import { Box, Button, Tooltip } from "@mui/material";
|
||||||
@ -39,6 +40,14 @@ const SettingSystem = ({ onError }: Props) => {
|
|||||||
"getRunningMode",
|
"getRunningMode",
|
||||||
getRunningMode,
|
getRunningMode,
|
||||||
);
|
);
|
||||||
|
const { data: autoLaunchEnabled } = useSWR("getAutoLaunchStatus", getAutoLaunchStatus);
|
||||||
|
|
||||||
|
// 当实际自启动状态与配置不同步时更新配置
|
||||||
|
useEffect(() => {
|
||||||
|
if (autoLaunchEnabled !== undefined && verge && verge.enable_auto_launch !== autoLaunchEnabled) {
|
||||||
|
patchVerge({ enable_auto_launch: autoLaunchEnabled });
|
||||||
|
}
|
||||||
|
}, [autoLaunchEnabled, verge]);
|
||||||
|
|
||||||
// 是否以sidecar模式运行
|
// 是否以sidecar模式运行
|
||||||
const isSidecarMode = runningMode === "sidecar";
|
const isSidecarMode = runningMode === "sidecar";
|
||||||
|
@ -479,7 +479,7 @@
|
|||||||
"Service Administrator Prompt": "Clash Verge 需要使用管理员权限来重新安装系统服务",
|
"Service Administrator Prompt": "Clash Verge 需要使用管理员权限来重新安装系统服务",
|
||||||
"DNS Settings": "DNS 设置",
|
"DNS Settings": "DNS 设置",
|
||||||
"DNS Overwrite": "DNS 覆写",
|
"DNS Overwrite": "DNS 覆写",
|
||||||
"DNS Settings Warning": "如果你不清楚这里的设置请不要修改,并保持 DNS 设置开启",
|
"DNS Settings Warning": "如果你不清楚这里的设置请不要修改,并保持 DNS 覆写开启",
|
||||||
"Enable DNS": "启用 DNS",
|
"Enable DNS": "启用 DNS",
|
||||||
"DNS Listen": "DNS 监听地址",
|
"DNS Listen": "DNS 监听地址",
|
||||||
"Enhanced Mode": "增强模式",
|
"Enhanced Mode": "增强模式",
|
||||||
|
@ -118,6 +118,10 @@ export async function getAutotemProxy() {
|
|||||||
}>("get_auto_proxy");
|
}>("get_auto_proxy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getAutoLaunchStatus() {
|
||||||
|
return invoke<boolean>("get_auto_launch_status");
|
||||||
|
}
|
||||||
|
|
||||||
export async function changeClashCore(clashCore: string) {
|
export async function changeClashCore(clashCore: string) {
|
||||||
return invoke<string | null>("change_clash_core", { clashCore });
|
return invoke<string | null>("change_clash_core", { clashCore });
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user