feat: supports silent start

This commit is contained in:
GyDi 2022-03-26 18:56:16 +08:00
parent a12f58c1c7
commit 9d44668d5f
No known key found for this signature in database
GPG Key ID: 1C95E0D3467B3084
4 changed files with 32 additions and 3 deletions

View File

@ -31,6 +31,9 @@ pub struct VergeConfig {
/// can the app auto startup
pub enable_auto_launch: Option<bool>,
/// not show the window on launch
pub enable_silent_start: Option<bool>,
/// set system proxy
pub enable_system_proxy: Option<bool>,
@ -197,6 +200,9 @@ impl Verge {
if patch.traffic_graph.is_some() {
self.config.traffic_graph = patch.traffic_graph;
}
if patch.enable_silent_start.is_some() {
self.config.enable_silent_start = patch.enable_silent_start;
}
// should update system startup
if patch.enable_auto_launch.is_some() {

View File

@ -4,8 +4,6 @@ use tauri::{App, AppHandle, Manager};
/// handle something when start app
pub fn resolve_setup(app: &App) {
resolve_window(app);
// setup a simple http server for singleton
server::embed_server(&app.handle());
@ -46,6 +44,8 @@ pub fn resolve_setup(app: &App) {
.get_item("system_proxy")
.set_selected(enable));
});
resolve_window(app, verge.config.enable_silent_start.clone());
}
/// reset system proxy
@ -57,9 +57,16 @@ pub fn resolve_reset(app_handle: &AppHandle) {
}
/// customize the window theme
fn resolve_window(app: &App) {
fn resolve_window(app: &App, hide: Option<bool>) {
let window = app.get_window("main").unwrap();
// silent start
hide.map(|hide| {
if hide {
window.hide().unwrap();
}
});
#[cfg(target_os = "windows")]
{
use window_shadows::set_shadow;

View File

@ -19,6 +19,7 @@ const SettingSystem = ({ onError }: Props) => {
const {
enable_tun_mode,
enable_auto_launch,
enable_silent_start,
enable_system_proxy,
system_proxy_bypass,
enable_proxy_guard,
@ -59,6 +60,20 @@ const SettingSystem = ({ onError }: Props) => {
</GuardState>
</SettingItem>
<SettingItem>
<ListItemText primary={t("Silent Start")} />
<GuardState
value={enable_silent_start ?? false}
valueProps="checked"
onCatch={onError}
onFormat={onSwitchFormat}
onChange={(e) => onChangeData({ enable_silent_start: e })}
onGuard={(e) => patchVergeConfig({ enable_silent_start: e })}
>
<Switch edge="end" />
</GuardState>
</SettingItem>
<SettingItem>
<ListItemText
primary={

View File

@ -126,6 +126,7 @@ export namespace CmdType {
traffic_graph?: boolean;
enable_tun_mode?: boolean;
enable_auto_launch?: boolean;
enable_silent_start?: boolean;
enable_system_proxy?: boolean;
enable_proxy_guard?: boolean;
system_proxy_bypass?: string;