feat(gui): add macOS dock icon visibility control (#1328)

This commit is contained in:
Joel Stodolski
2025-09-02 17:32:18 +08:00
committed by GitHub
parent 2145ef40b9
commit 754439f03c
5 changed files with 50 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
import { invoke } from '@tauri-apps/api/core'
export async function loadDockVisibilityAsync(visible: boolean): Promise<boolean> {
try {
await invoke('set_dock_visibility', { visible })
localStorage.setItem('dock_visibility', JSON.stringify(visible))
return visible
}
catch (e) {
console.error('Failed to set dock visibility:', e)
return getDockVisibilityStatus()
}
}
export function getDockVisibilityStatus(): boolean {
const stored = localStorage.getItem('dock_visibility')
return stored !== null ? JSON.parse(stored) : true
}

View File

@@ -13,6 +13,7 @@ import { NetworkTypes, Config, Status, Utils, I18nUtils, ConfigEditDialog } from
import { isAutostart, setLoggingLevel } from '~/composables/network'
import { useTray } from '~/composables/tray'
import { getAutoLaunchStatusAsync as getAutoLaunchStatus, loadAutoLaunchStatusAsync } from '~/modules/auto_launch'
import { getDockVisibilityStatus, loadDockVisibilityAsync } from '~/modules/dock_visibility'
const { t, locale } = useI18n()
const visible = ref(false)
@@ -177,6 +178,14 @@ const setting_menu_items = ref([
await loadAutoLaunchStatusAsync(!getAutoLaunchStatus())
},
},
{
label: () => getDockVisibilityStatus() ? t('hide_dock_icon') : t('show_dock_icon'),
icon: 'pi pi-eye-slash',
command: async () => {
await loadDockVisibilityAsync(!getDockVisibilityStatus())
},
visible: () => type() === 'macos',
},
{
label: () => t('logging'),
icon: 'pi pi-file',