focus mode: add keyboard toggle, num keys

This commit is contained in:
galister 2026-08-02 00:01:17 +09:00
parent 05708813be
commit 3cfbafa577
3 changed files with 39 additions and 6 deletions

View File

@ -60,6 +60,14 @@
<label translation="ALTTAB.EDIT" color="on_background" wrap="1" size="20" padding_left="8" padding_right="16" />
</div>
</div>
<div flex_direction="row" width="100%">
<div width="90">
<label text="T" color="secondary" size="20" padding_left="16" padding_right="8" />
</div>
<div>
<label translation="ALTTAB.KEYBOARD" color="on_background" wrap="1" size="20" padding_left="8" padding_right="16" />
</div>
</div>
<div flex_direction="row" width="100%">
<div width="90">
<label text="R" color="secondary" size="20" padding_left="16" padding_right="8" />

View File

@ -87,6 +87,7 @@
"GRAB": "Move individual overlay",
"DASH": "Toggle dashboard",
"EDIT": "Toggle edit mode",
"KEYBOARD": "Toggle keyboard",
"SET": "Switch set",
"RECENTER": "Show/hide/recenter",
"GENERAL_BINDS": "General bindings",

View File

@ -77,6 +77,7 @@ use crate::{
ipc::{event_queue::SyncEventQueue, ipc_server},
overlays::{
anchor::ALTTAB_HELP_NAME,
keyboard::KEYBOARD_NAME,
wayvr::{WvrCommand, create_wl_window_overlay},
},
state::AppState,
@ -820,19 +821,42 @@ impl WvrServerState {
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleEditMode));
} else if (hid::VirtualKey::D as u32) == vk && pressed {
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleDashboard));
} else if (hid::VirtualKey::T as u32) == vk && pressed {
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleOverlay(
OverlaySelector::Name(KEYBOARD_NAME.into()),
ToggleMode::Toggle,
)));
} else if (hid::VirtualKey::R as u32) == vk && pressed {
tasks.enqueue(TaskType::Overlay(OverlayTask::ShowHide));
} else if (hid::VirtualKey::N1 as u32) == vk && pressed {
} else if ((hid::VirtualKey::N1 as u32) == vk
|| (hid::VirtualKey::KP_1 as u32) == vk)
&& pressed
{
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(0)))
} else if (hid::VirtualKey::N2 as u32) == vk && pressed {
} else if ((hid::VirtualKey::N2 as u32) == vk
|| (hid::VirtualKey::KP_2 as u32) == vk)
&& pressed
{
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(1)))
} else if (hid::VirtualKey::N3 as u32) == vk && pressed {
} else if ((hid::VirtualKey::N3 as u32) == vk
|| (hid::VirtualKey::KP_3 as u32) == vk)
&& pressed
{
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(2)))
} else if (hid::VirtualKey::N4 as u32) == vk && pressed {
} else if ((hid::VirtualKey::N4 as u32) == vk
|| (hid::VirtualKey::KP_4 as u32) == vk)
&& pressed
{
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(3)))
} else if (hid::VirtualKey::N5 as u32) == vk && pressed {
} else if ((hid::VirtualKey::N5 as u32) == vk
|| (hid::VirtualKey::KP_5 as u32) == vk)
&& pressed
{
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(4)))
} else if (hid::VirtualKey::N6 as u32) == vk && pressed {
} else if ((hid::VirtualKey::N6 as u32) == vk
|| (hid::VirtualKey::KP_6 as u32) == vk)
&& pressed
{
tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(5)))
}
} else if self.has_input_focus {