Add Ctrl+1 / Ctrl+2 to Quick Keys and More Keys - #237
Conversation
Adds two new bindable shortcuts to both the Command Center Quick Keys row and the classic More Keys / Special Keys sheet, following the existing Ctrl+V pattern. On SteamOS/Big Picture hosts, Ctrl+1 opens the Big Picture menu and Ctrl+2 opens the Quick Access Menu (Decky Loader, volume, chat, etc.). Both are otherwise only reachable via the physical Xbox Button + A chord, which most controllers/remotes streaming through Nova can't send. Tested on-device (AYN Thor, nonRoot_game debug build) against a Polaris host: both shortcuts fire correctly from Quick Keys and More Keys during a live session. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Merged! And honestly, what a way to show up: two shortcuts, both surfaces, a test, and a live device check before you even opened the PR. You hit Quick Keys and the legacy More Keys sheet without anyone asking, which is the bit people always miss. Those two drift apart the second someone touches only one of them, and then six months later I'm sitting there wondering why Ctrl+something fires from one menu and not the other. You matched the Ctrl+V pattern in both, dropped Totally unplanned bonus, too: the Quick Keys grid lays out three per row, so seven keys left this sad little ragged tail sitting in the panel. Nine fills it perfectly. The thing looks better now than it did before you touched it, and I'm choosing to believe you planned that. One thing did break, and it's mine, not yours! A source guard in Sooo here's the fun part: this lands exactly where I'm going anyway. Getting Nova properly integrated with the Steam Machine and the new Steam Controllers is a real goal of mine, not a someday-maybe item, and "reach the host's own menus from the couch without ever touching the host" is step one of that whole thing. You shipped a piece of the roadmap unprompted. So pleeease keep going! If you're living in Big Picture and Decky through Nova, tell me what else you catch yourself walking over to the host to do. That's exactly the kind of gap I can't see from in here. |
…ck bucket (#238) The source guard asserted on the literal "NovaQuickMenuActionId.QUICK_CTRL_V -> onQuickKey(action.id)", which only held while Ctrl+V happened to be the last id in the fall-through group. Adding Ctrl+1 and Ctrl+2 in #237 moved the arm onto QUICK_CTRL_2, so the assertion went red on master even though Insert still routes exactly as the guard intends. The invariant the guard carries is that Insert sits inside the group whose arm calls onQuickKey, so assert that directly. Slice the bucket between the QUICK_ESC entry and the onQuickKey arm, then look for Insert inside the slice. Both substring calls pass an empty missing-delimiter value, so losing either anchor empties the slice and fails the assertion instead of silently passing on the whole file. Appending a further quick key no longer needs a guard edit.
Adds two new bindable shortcuts to both the Command Center Quick Keys row and the classic More Keys / Special Keys sheet, following the existing Ctrl+V pattern. On SteamOS/Big Picture hosts, Ctrl+1 opens the Big Picture menu and Ctrl+2 opens the Quick Access Menu (Decky Loader, volume, chat, etc.). Both are otherwise only reachable via the physical Xbox Button + A chord, which most controllers/remotes streaming through Nova can't send. Tested on-device (AYN Thor, nonRoot_game debug build) against a Polaris host: both shortcuts fire correctly from Quick Keys and More Keys during a live session. Co-authored-by: FabianZettl <hollywoodkillsvideos@gmail.com>
…ck bucket (#238) The source guard asserted on the literal "NovaQuickMenuActionId.QUICK_CTRL_V -> onQuickKey(action.id)", which only held while Ctrl+V happened to be the last id in the fall-through group. Adding Ctrl+1 and Ctrl+2 in #237 moved the arm onto QUICK_CTRL_2, so the assertion went red on master even though Insert still routes exactly as the guard intends. The invariant the guard carries is that Insert sits inside the group whose arm calls onQuickKey, so assert that directly. Slice the bucket between the QUICK_ESC entry and the onQuickKey arm, then look for Insert inside the slice. Both substring calls pass an empty missing-delimiter value, so losing either anchor empties the slice and fails the assertion instead of silently passing on the whole file. Appending a further quick key no longer needs a guard edit.
Summary
Adds Ctrl+1 and Ctrl+2 as bindable shortcuts, in both:
NovaQuickMenuUiState.kt/NovaQuickMenu.kt/NovaQuickMenuContent.kt)GameMenu.kt)Following the existing
Ctrl+Vpattern in both places.Motivation
On SteamOS / Steam Big Picture hosts:
Both are otherwise only reachable via the physical Xbox Button + A chord on the host, which most controllers/remotes streaming through Nova have no way to send. Having these as on-screen Quick Keys makes Big Picture / Decky Loader fully usable from a Nova session without needing to touch the host.
Changes
KeyboardTranslator.kt: addedVK_1/VK_2constants (0x31/0x32), matching the existingVK_0/VK_9style.NovaQuickMenuUiState.kt: addedQUICK_CTRL_1/QUICK_CTRL_2toNovaQuickMenuActionIdand toquickKeyActions().NovaQuickMenu.kt: added the two new cases tosendQuickKey()'s key mapping.NovaQuickMenuContent.kt: added the two new IDs to the exhaustivewheninNovaQuickMenuCallbacks.perform()(required for compilation).GameMenu.kt: added matchingMenuOptionentries toshowSpecialKeysMenu().strings.xml: addedgame_menu_send_keys_ctrl_1= "Ctrl + 1",game_menu_send_keys_ctrl_2= "Ctrl + 2".NovaQuickMenuUiStateTest.kt: extended the existing quick-keys preview-state assertions to cover the two new entries.Validation
nonRoot_gamedebug build compiles and installs cleanly (arm64-v8a).