diff --git a/lua/main.lua b/lua/main.lua index d9e1808f..46201fd4 100644 --- a/lua/main.lua +++ b/lua/main.lua @@ -70,6 +70,18 @@ local function init_ui() end end end), + controls.scheme:bind(function() + -- Set up a shortcut for jumping straight to the 'now playing' screen. + -- Implemented as a binding so that the shortcut is still applied even if + -- the control scheme is changed at runtime. + local hooks = controls.hooks() + local input_method = hooks.wheel or hooks.dpad + if input_method and input_method.right then + input_method.right.long_press = function() + require("playing"):push_if_not_shown() + end + end + end), sd_card.mounted:bind(function(mounted) backstack.reset(main_menu:new()) end), diff --git a/luals-stubs/controls.lua b/luals-stubs/controls.lua index 7034dc55..db5ea9f2 100644 --- a/luals-stubs/controls.lua +++ b/luals-stubs/controls.lua @@ -7,6 +7,7 @@ --- @field scheme Property The currently configured control scheme --- @field scroll_sensitivity Property How much rotational motion is required on the touchwheel per scroll tick. --- @field lock_switch Property The current state of the device's lock switch. +--- @field hooks funtion Returns a table containing the inputs and actions associated with the current control scheme. local controls = {} return controls