Skip to content

Conversation

@MrXANA91
Copy link

@MrXANA91 MrXANA91 commented Dec 23, 2025

Original PR --> coredevices/PebbleOS#637

This PR adds a scroll wrap around capability to the MenuLayer ui object, alongside some vibe functionalities.

23.12.2025_11.27.16_REC.mp4

New behaviors

Scroll wrap-around

Pressing the 'up' button when the first element of the MenuLayer is selected will wrap around and bring the cursor to the last element.
Pressing the 'down' button when the last element of the MenuLayer is selected will wrap around and bring the cursor to the first element.
However, wrap around will not be applied when holding down the 'up' or 'down' button, and cursor will still lock on the first or last element.

This wrap-around functionality is disabled by default but can be enabled with the menu_layer_set_scroll_wrap_around function.

Vibe on cursor blocked / vibe on wrap-around

A small 50ms vibe can be activated on wrap-around, or when blocked. Those two behaviors are mutually exclusive (setting one to true will set the other to false).

Those are also disabled by default, but can be enabled using the menu_layer_set_vibe_on_wrap and menu_layer_set_vibe_on_blocked functions.

Compile options

This PR also implements some new compile options to enable those new capabilties on every MenuLayer used accross the firmware system apps.

  • --enable-menu-wrap: Enable the scroll wrap around behavior on firmware apps menus
  • --enable-menu-vibe-on-blocked: Enable the vibe behavior when blocked at the top or bottom menu item on firmware apps menus. If enabled, this setting will override the --enable-menu-vibe-on-wrap and set it to false.
  • --enable-menu-vibe-on-wrap: Enable the vibe behavior when wrapping around on firmware apps menus
Here is a list of the apps affected by those compile options
  • notifications_app
  • watchfaces
  • alarm_editor
  • alarms
  • health_detail_card
  • launcher_menu_layer
  • send_text
  • settings_system
  • settings_window
  • settings
  • workout_selection

Known bug(s)

  • Scroll wrap-around: if holding down the 'up' button when cursor is at the 2nd element, wrap around will still be applied. Same when holding down the 'down' button when cursor is at the penultimate element.

Related issue(s)

Fix #284

@MrXANA91 MrXANA91 changed the title MenuLayer: scroll wrap around capability MenuLayer: scroll wrap around Dec 23, 2025
@MrXANA91 MrXANA91 force-pushed the menuLayerWrapAround branch from 93be638 to 55ea708 Compare December 23, 2025 15:00
…abilities

Signed-off-by: Paul Chanvin <paul.chanvin@open-groupe.com>
…ross system apps

Signed-off-by: Paul Chanvin <paul.chanvin@open-groupe.com>
…bilities

Signed-off-by: Paul Chanvin <paul.chanvin@open-groupe.com>
@MrXANA91 MrXANA91 force-pushed the menuLayerWrapAround branch from 55ea708 to 8fdb673 Compare January 13, 2026 09:44
@MrXANA91 MrXANA91 changed the title MenuLayer: scroll wrap around MenuLayer: scroll wrap around and vibes Jan 13, 2026
@MrXANA91
Copy link
Author

MrXANA91 commented Jan 13, 2026

Here is a link to some feedbacks I had after using the new wrap around functionality for two weeks : coredevices/PebbleOS#637 (comment)

I've added some vibe feedback capabilities to this PR, can be also be enabled using some compile options.
If wanted by the community, I could also implement the same system prefs than the ones I've implemented for the CoreDevices repo.

This specific build has been tested and it WorksOnMyMachine.
Requesting review.

@machinaeZER0
Copy link

Always wanted this on my Pebble - and I like that it still automatically stops at the top/bottom if you're scrolling, requiring an intentional press to actually wrap. Hope this will be merged, fingers crossed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve main menu scrolling

2 participants