diff --git a/web/src/components/ActionBar.vue b/web/src/components/ActionBar.vue index ae82bebf..c3869b26 100644 --- a/web/src/components/ActionBar.vue +++ b/web/src/components/ActionBar.vue @@ -59,12 +59,11 @@ const isCh9329Backend = computed(() => hidBackend.value.includes('ch9329')) const showMsd = computed(() => { return !!systemStore.msd?.available && !isCh9329Backend.value }) -const showAtx = computed(() => systemStore.atx?.available === true) - const props = defineProps<{ mouseMode?: 'absolute' | 'relative' videoMode?: VideoMode ttydRunning?: boolean + showPower?: boolean showTerminal?: boolean showComputerUse?: boolean showPasteText?: boolean @@ -72,6 +71,7 @@ const props = defineProps<{ scaleMode?: VideoScaleMode sourceSizeAvailable?: boolean }>() +const showAtx = computed(() => props.showPower !== false) const showStats = computed(() => (props.videoMode ?? 'mjpeg') !== 'mjpeg') const showPasteText = computed(() => props.showPasteText !== false) const showMic = computed(() => props.showMic === true) diff --git a/web/src/composables/useFeatureVisibility.ts b/web/src/composables/useFeatureVisibility.ts index ea968912..46ea379d 100644 --- a/web/src/composables/useFeatureVisibility.ts +++ b/web/src/composables/useFeatureVisibility.ts @@ -1,10 +1,11 @@ import { useLocalStorage } from '@vueuse/core' import type { RemovableRef } from '@vueuse/core' -export type FeatureVisibilityKey = 'webTerminal' | 'computerUse' | 'pasteText' +export type FeatureVisibilityKey = 'power' | 'webTerminal' | 'computerUse' | 'pasteText' export type FeatureVisibility = Record const DEFAULT_FEATURE_VISIBILITY: FeatureVisibility = { + power: true, webTerminal: true, computerUse: true, pasteText: true, diff --git a/web/src/views/ConsoleView.vue b/web/src/views/ConsoleView.vue index 3eaebd75..1714f7f9 100644 --- a/web/src/views/ConsoleView.vue +++ b/web/src/views/ConsoleView.vue @@ -237,6 +237,7 @@ const showTerminalDialog = ref(false) const featureVisibility = useFeatureVisibility() const { isDark, toggleTheme } = useTheme() const terminalAvailable = computed(() => ttydStatus.value?.available !== false) +const showPower = computed(() => featureVisibility.value.power) const showTerminal = computed(() => terminalAvailable.value && featureVisibility.value.webTerminal) const showComputerUse = computed(() => featureVisibility.value.computerUse) const showPasteText = computed(() => featureVisibility.value.pasteText) @@ -3273,6 +3274,7 @@ onUnmounted(() => { :mouse-mode="mouseMode" :video-mode="videoMode" :ttyd-running="ttydStatus?.running" + :show-power="showPower" :show-terminal="showTerminal" :show-computer-use="showComputerUse" :show-paste-text="showPasteText" diff --git a/web/src/views/SettingsView.vue b/web/src/views/SettingsView.vue index 5bd5644d..5b252db9 100644 --- a/web/src/views/SettingsView.vue +++ b/web/src/views/SettingsView.vue @@ -2798,6 +2798,20 @@ watch(isWindows, () => { {{ t('settings.featureVisibilityDesc') }} +
+ + +
+
+ + +
-
- - -