macos_fixes_2025 #65

Open
goodboy wants to merge 3 commits from macos_fixes_2025 into main

Not sure which of this or #64 is the right one.

I need @dnks to test!

Not sure which of this or #64 is the right one. I need @dnks to test!
goodboy added 3 commits 2026-01-12 02:20:38 +00:00
75d8582b20 🟢 config/conf.toml for updated UI font size and graphics throttle
🛠️ piker/cli/__init__.py -> Changed transport from UDP to TCP in service manager
🛠️ piker/data/_symcache.py -> Added recursive dict cleaning for TOML serialization
🛠️ piker/fsp/_api.py -> Hash-based key for shared memory buffers (macOS compatibility)
🛠️ piker/tsp/__init__.py -> Hash-based key for history buffers for macOS compatibility
🛠️ piker/ui/_display.py -> Modified SHM name assertion for macOS compatibility
d8b9af46df 🔴 No files deleted.
🟢 a/piker/ui/_exec.py for adding global keyboard shortcuts for UI zoom.

🛠️ a/piker/ui/_forms.py -> Added methods to update fonts and sizes dynamically.

🛠️ a/piker/ui/_label.py -> Added method to update font and color after zoom.

🛠️ a/piker/ui/_position.py -> Included update_fonts method for labels and bars.

🛠️ a/piker/ui/_search.py -> Added update_fonts method for search view components.

🛠️ a/piker/ui/_style.py -> Enhanced configure_to_dpi() to support zoom level multipliers.

🛠️ a/piker/ui/_window.py -> Implemented application-wide zoom with event filter and zoom methods, including signals to update UI elements' font sizes and styles.

🔴 No files deleted.
fbcf7960fd 🟢 .gitignore
🛠️ piker/ui/_axes.py -> Enhance axis font and size handling
🛠️ piker/ui/_window.py -> Improve zoom key detection and event handling
🛠️ piker/ui/_window.py -> Update axes fonts and layout after zoom events
goodboy reviewed 2026-01-22 15:41:26 +00:00
@ -156,6 +159,41 @@ class Axis(pg.AxisItem):
def size_to_values(self) -> None:
pass
def update_fonts(self, font: DpiAwareFont) -> None:
Poster
Owner

I believe this is the primary impl-point for using a “zoom-style” control over font-size driven UI scalings right?

I believe this is the primary impl-point for using a "zoom-style" control over font-size driven UI scalings right?
goodboy reviewed 2026-03-03 19:34:42 +00:00
@ -46,6 +49,68 @@ from ._chart import GodWidget
log = get_logger(__name__)
class GlobalZoomEventFilter(QObject):
Poster
Owner

Ahh so this is likely the meat of what we need to get git cherr-pick-ed out and tested more generally @momo if you’re interested in extending what was started in #48

🙏

Ahh so this is likely *the meat* of what we need to get `git cherr-pick`-ed out and tested more generally @momo if you're interested in extending what was started in https://pikers.dev/pikers/piker/pulls/48 🙏
Collaborator

@goodboy zoom functionality is working, some issues and improvements :

  • Starts at 400% zoom by default:
    • _zoom_level: float = 4.0 in piker/ui/_window.py:251
    • Should probably be 1.0 (100%) for normal startup
  • Zoom steps too aggressive
    • _zoom_step: float = 1.0 means each keypress adds/removes 100%
    • Feels too jumpy, maybe should be 0.1-0.2 (10-20% per press)?
  • Text cropping at high zoom
    • UI containers don’t resize properly when fonts get big
    • Labels get cut off, elements overlap
    • Need better layout updates or scroll areas
  • Ctrl+Shift+0 reset might not work reliably
    • Needs more testing to confirm
@goodboy zoom functionality is working, some issues and improvements : - Starts at 400% zoom by default: - _zoom_level: float = 4.0 in piker/ui/_window.py:251 - Should probably be 1.0 (100%) for normal startup - Zoom steps too aggressive - _zoom_step: float = 1.0 means each keypress adds/removes 100% - Feels too jumpy, maybe should be 0.1-0.2 (10-20% per press)? - Text cropping at high zoom - UI containers don't resize properly when fonts get big - Labels get cut off, elements overlap - Need better layout updates or scroll areas - Ctrl+Shift+0 reset might not work reliably - Needs more testing to confirm
This pull request has changes conflicting with the target branch.
  • piker/tsp/__init__.py
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: pikers/piker#65
There is no content yet.