applib: put system action bars on the button side in left-hand mode - #1856
Open
myNameArnav wants to merge 7 commits into
Open
applib: put system action bars on the button side in left-hand mode#1856myNameArnav wants to merge 7 commits into
myNameArnav wants to merge 7 commits into
Conversation
3 tasks
ActionBarLayer was always drawn on the right, so after Left-Handed Mode rotates the watch the on-screen hints no longer sit next to the physical buttons. Move the bar for system apps and kernel/modal UI only; third-party apps keep the right edge so existing layouts do not break. Firmware-only helpers inset content beside the bar. Shared dialogs and first-party screens that hardcoded a right-hand strip now use them. Fixes coredevices#1464 Co-authored-by: Cursor Grok 4.6 <noreply@cursor.com> Signed-off-by: Arnav Jain <arnjain3@gmail.com>
Orientation manager calls accel_set_rotated and mag_set_rotated, which QEMU did not implement, so the feature could not be turned on in the emulator. Add no-op stubs and enable CONFIG_ORIENTATION_MANAGER on qemu_emery so Left-Handed Mode can be exercised there. Co-authored-by: Cursor Grok 4.6 <noreply@cursor.com> Signed-off-by: Arnav Jain <arnjain3@gmail.com>
Firmware update dropped orientation, so the progress UI looked inverted in Left-Handed Mode. Timeline's pin strip also stayed on the right after rotation. Keep rotation during the FirmwareUpdate runlevel and put the timeline sidebar and action-button nub on the button side. Co-authored-by: Cursor Grok 4.6 <noreply@cursor.com> Signed-off-by: Arnav Jain <arnjain3@gmail.com>
myNameArnav
force-pushed
the
applib/left-handed-action-bar
branch
from
August 13, 2026 15:04
64548c7 to
433c18c
Compare
myNameArnav
marked this pull request as draft
August 13, 2026 15:14
Icons sat on the bezel and pin text used the 9px left margin beside the sidebar instead of the 14px gap used on the right-hand strip. Co-authored-by: Cursor Grok 4.6 <noreply@cursor.com> Signed-off-by: Arnav Jain <arnjain3@gmail.com>
Pin text (time, title, subtitle, all-day) stayed left-aligned beside the left-hand sidebar instead of mirroring to the screen's right edge like the right-hand strip. Align the text to the right when the sidebar sits on the left. Co-authored-by: opencode <noreply@opencode.ai> Signed-off-by: Arnav Jain <arnjain3@gmail.com>
… used The timeline, compositor, and action-button code call action_bar_layer_is_on_right() but only included the public header, which does not declare the firmware-only left-hand helpers. Include the private header so these compile. Co-authored-by: opencode <noreply@opencode.ai> Signed-off-by: Arnav Jain <arnjain3@gmail.com>
myNameArnav
marked this pull request as ready for review
August 14, 2026 16:30
Correct remaining left-hand layouts in shared dialogs and Timeline relationship bars. Correct phone and pairing UI; add orientation preference stubs for PRF QEMU builds. Co-authored-by: GPT-5.6 Terra <noreply@openai.com> Signed-off-by: Arnav Jain <arnjain3@gmail.com>
myNameArnav
force-pushed
the
applib/left-handed-action-bar
branch
from
August 14, 2026 16:34
6bb6d98 to
e2338ce
Compare
Author
|
@jplexer tested on obelix, can you have a look. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Justice for ~10% of the people in the world :)
Summary
ActionBarLayers move to the left so on-screen hints sit next to the physical buttons. Third-party apps stay on the right so existing layouts do not break.actionable/expandable/number_window) and first-party screens that hardcoded a right-hand strip (Music, Workout, factory reset, speaker volume, phone UI, Bluetooth pairing) inset content with firmware-only helpers.CONFIG_ORIENTATION_MANAGERplus accel/mag rotation stubs so this can be tested in the emulator. SDK export of the helpers for custom apps is intentionally out of scope (applib: export action bar left-hand helpers to the SDK #1858).Fixes #1464
Screenshots
All captured on
qemu_emery(Pebble Time 2) with Settings → Display → Orientation → Left-Handed. Action bars sit on the left.Music
Workout (Health enable dialog)
Health
Alarms (Smart Alarm first-use)
Settings → Sounds & Haptics → Volume
Settings → System → Factory Reset
Settings → System → Shut Down
Timeline pin-strip (button-side sidebar) was verified on a Pebble Time 2; QEMU emery has no pins so the list view could not be captured there. Firmware update progress is the same: it stays rotated with Left-Handed Mode instead of flipping upright mid-install.
Round 2 / 2 Duo share this firmware path but were not screenshot in QEMU (
qemu_gabbro/qemu_flintdo not enable orientation yet).Test plan
./pbl test -M '.*action_bar.*'— system/kernel move left; third-party stays rightqemu_emery: Settings → Display → Orientation → Left-Handed