Skip to content

Commit 1e844d0

Browse files
authored
feat: 新增「通用设置 > 应用设置 > 显示任务栏图标」配置项 (#564)
1 parent c50b197 commit 1e844d0

File tree

12 files changed

+50
-16
lines changed

12 files changed

+50
-16
lines changed

src-tauri/src/plugins/window/build.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
const COMMANDS: &[&str] = &["show_window", "hide_window", "set_always_on_top"];
1+
const COMMANDS: &[&str] = &[
2+
"show_window",
3+
"hide_window",
4+
"set_always_on_top",
5+
"set_taskbar_visibility",
6+
];
27

38
fn main() {
49
tauri_plugin::Builder::new(COMMANDS).build();

src-tauri/src/plugins/window/permissions/default.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
[default]
44
description = "Default permissions for the plugin"
5-
permissions = ["allow-show-window", "allow-hide-window", "allow-set-always-on-top"]
5+
permissions = ["allow-show-window", "allow-hide-window", "allow-set-always-on-top", "allow-set-taskbar-visibility"]

src-tauri/src/plugins/window/src/commands/common.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ pub async fn set_always_on_top<R: Runtime>(
1919
) {
2020
shared_set_always_on_top(&app_handle, &window, always_on_top);
2121
}
22+
23+
#[command]
24+
pub async fn set_taskbar_visibility<R: Runtime>(window: WebviewWindow<R>, visible: bool) {
25+
let _ = window.set_skip_taskbar(!visible);
26+
}

src-tauri/src/plugins/window/src/commands/macos.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,8 @@ pub fn set_macos_panel<R: Runtime>(
7474
});
7575
}
7676
}
77+
78+
#[command]
79+
pub async fn set_taskbar_visibility<R: Runtime>(app_handle: AppHandle<R>, visible: bool) {
80+
let _ = app_handle.set_dock_visibility(visible);
81+
}

src-tauri/src/plugins/window/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub fn init<R: Runtime>() -> TauriPlugin<R> {
1212
.invoke_handler(generate_handler![
1313
commands::show_window,
1414
commands::hide_window,
15-
commands::set_always_on_top
15+
commands::set_always_on_top,
16+
commands::set_taskbar_visibility,
1617
])
1718
.build()
1819
}

src/pages/main/index.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ import { useDevice } from '@/composables/useDevice'
1313
import { useModel } from '@/composables/useModel'
1414
import { useSharedMenu } from '@/composables/useSharedMenu'
1515
import { INVOKE_KEY } from '@/constants'
16-
import { hideWindow, setAlwaysOnTop, showWindow } from '@/plugins/window'
16+
import { hideWindow, setAlwaysOnTop, setTaskbarVisibility, showWindow } from '@/plugins/window'
1717
import { useCatStore } from '@/stores/cat'
18+
import { useGeneralStore } from '@/stores/general.ts'
1819
import { useModelStore } from '@/stores/model'
1920
import { join } from '@/utils/path'
2021
@@ -24,6 +25,7 @@ const { handleDestroy, handleResize, handleMouseDown, handleMouseMove, handleKey
2425
const catStore = useCatStore()
2526
const { getSharedMenu } = useSharedMenu()
2627
const modelStore = useModelStore()
28+
const generalStore = useGeneralStore()
2729
const resizing = ref(false)
2830
const backgroundImagePath = ref<string>()
2931
@@ -84,6 +86,8 @@ watch(() => modelStore.currentModel, async (model) => {
8486
backgroundImagePath.value = existed ? convertFileSrc(path) : void 0
8587
}, { deep: true, immediate: true })
8688
89+
watch(() => generalStore.taskbarVisibility, setTaskbarVisibility, { immediate: true })
90+
8791
function handleWindowDrag() {
8892
appWindow.startDragging()
8993
}

src/pages/preference/components/about/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ function feedbackIssue() {
6868
</ProListItem>
6969

7070
<ProListItem
71-
description="复制软件信息并提供给 Bug Issue"
71+
description="复制软件信息并提供给 Bug Issue"
7272
title="软件信息"
7373
>
7474
<Button @click="copyInfo">

src/pages/preference/components/cat/index.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,21 @@ function opacityFormatter(value?: number) {
1515
<template>
1616
<ProList title="模型设置">
1717
<ProListItem
18-
description="启用后,模型将水平镜像翻转"
18+
description="启用后,模型将水平镜像翻转"
1919
title="镜像模式"
2020
>
2121
<Switch v-model:checked="catStore.mirrorMode" />
2222
</ProListItem>
2323

2424
<ProListItem
25-
description="启用后,每只手只显示最后按下的一个按键"
25+
description="启用后,每只手只显示最后按下的一个按键"
2626
title="单键模式"
2727
>
2828
<Switch v-model:checked="catStore.singleMode" />
2929
</ProListItem>
3030

3131
<ProListItem
32-
description="启用后,鼠标将镜像跟随手部移动"
32+
description="启用后,鼠标将镜像跟随手部移动"
3333
title="鼠标镜像"
3434
>
3535
<Switch v-model:checked="catStore.mouseMirror" />
@@ -38,21 +38,21 @@ function opacityFormatter(value?: number) {
3838

3939
<ProList title="窗口设置">
4040
<ProListItem
41-
description="启用后,窗口不影响对其他应用程序的操作"
41+
description="启用后,窗口不影响对其他应用程序的操作"
4242
title="窗口穿透"
4343
>
4444
<Switch v-model:checked="catStore.penetrable" />
4545
</ProListItem>
4646

4747
<ProListItem
48-
description="启用后,窗口始终显示在其他应用程序上方"
48+
description="启用后,窗口始终显示在其他应用程序上方"
4949
title="窗口置顶"
5050
>
5151
<Switch v-model:checked="catStore.alwaysOnTop" />
5252
</ProListItem>
5353

5454
<ProListItem
55-
description="将鼠标移动到窗口边缘后,也可以拖动调整窗口尺寸"
55+
description="将鼠标移动到窗口边缘后,也可以拖动调整窗口尺寸"
5656
title="窗口尺寸"
5757
>
5858
<InputNumber

src/pages/preference/components/general/index.vue

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ watch(() => generalStore.autostart, async (value) => {
3131
<ProListItem title="开机自启动">
3232
<Switch v-model:checked="generalStore.autostart" />
3333
</ProListItem>
34+
35+
<ProListItem
36+
description="启用后,即可通过 OBS Studio 捕获窗口。"
37+
title="显示任务栏图标"
38+
>
39+
<Switch v-model:checked="generalStore.taskbarVisibility" />
40+
</ProListItem>
3441
</ProList>
3542

3643
<ProList title="更新设置">

src/pages/preference/components/shortcut/index.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,31 +37,31 @@ useTauriKeyPress(alwaysOnTop, () => {
3737
<ProList title="快捷键">
3838
<ProShortcut
3939
v-model="shortcutStore.visibleCat"
40-
description="切换猫咪窗口的显示与隐藏"
40+
description="切换猫咪窗口的显示与隐藏"
4141
title="打开猫咪"
4242
/>
4343

4444
<ProShortcut
4545
v-model="shortcutStore.visiblePreference"
46-
description="切换偏好设置窗口的显示与隐藏"
46+
description="切换偏好设置窗口的显示与隐藏"
4747
title="打开偏好设置"
4848
/>
4949

5050
<ProShortcut
5151
v-model="shortcutStore.mirrorMode"
52-
description="切换猫咪的镜像模式"
52+
description="切换猫咪的镜像模式"
5353
title="镜像模式"
5454
/>
5555

5656
<ProShortcut
5757
v-model="shortcutStore.penetrable"
58-
description="切换猫咪窗口是否可穿透"
58+
description="切换猫咪窗口是否可穿透"
5959
title="窗口穿透"
6060
/>
6161

6262
<ProShortcut
6363
v-model="shortcutStore.alwaysOnTop"
64-
description="切换猫咪窗口是否置顶"
64+
description="切换猫咪窗口是否置顶"
6565
title="窗口置顶"
6666
/>
6767
</ProList>

0 commit comments

Comments
 (0)