Fix UI display issues and improve macOS Tahoe/Sequoia support#1827
Fix UI display issues and improve macOS Tahoe/Sequoia support#1827arsarsars1 wants to merge 16 commits into
Conversation
- **Menu Bar Slider**: - Redesigned layout to column style (icon above slider). - Aligned icon to left-start. - Increased vertical spacing and view height for better touch target and aesthetics. - Fixed icon vs slider overlap issues. - **Preferences UI**: - **Displays**: Fixed truncated friendly name text field, increased height, and improved vertical alignment. - **About**: Fixed truncated app name text. - **Keyboard**: Improved layout of accessibility troubleshooting buttons (Help/Reset), added container/label for better grid alignment. - **macOS Tahoe Support**: - Added accessibility permission reset functionality. - Implemented Custom HUD fallback for cases where native OSD is broken.
|
Hi @arsarsars1, thank you for the pull request, I really appreciate it. I am not sure I am entirely comfortable with the new menu layout, having the icons above the slider looks kind-of Strange (if we'd like to follow Tahoe style, maybe a min/max icon at both end of the slider might be better. Also, the super-small knob feels a bit strange: Regarding the OSD, it might need some things to iron out. There seem to be white corners (beyond the rounding) and the yellow brightness icon does not seem to fully follow the macOS vibe. Because of this, I am not yet ready to accept this PR just yet, but I leave it hanging here. But again, I appreciate your work, I just recommend iterating a bit on this. |
|
@arsarsars1 are you planning on addressing the above issues ? |
|
Hi @sidevesh, I will resolve the issues in the PR today. Thank you |
Made-with: Cursor # Conflicts: # MonitorControl/UI/cs.lproj/Localizable.strings
Made-with: Cursor # Conflicts: # MonitorControl/UI/cs.lproj/Localizable.strings
Made-with: Cursor
Made-with: Cursor
- Updated CFBundleVersion in Info.plist files for both MonitorControl and MonitorControlHelper. - Adjusted HUD dimensions and layout in CustomHUD.swift for improved aesthetics. - Enhanced SliderHandler to support accent fill for better visual distinction in menu symbols.
- Add KeyboardVolume.mediaForce and UI for always capturing volume/mute keys - Clean up CustomHUD windows when displays are cleared - Fix SliderHandler percentage label update (remove tautology check) - CustomHUD: RunLoop.common timer, drop unused SwiftUI import - Widen volume control popup for new menu item; en Main.strings Made-with: Cursor
|
Hi @waydabber, the pr is updated. Thank you |
- Draw the original soft ring + inner edge on BlockBorderOverlayView so the pre–visual-effect border look returns without relying on layer draw. - Use NSVisualEffectView material .menu and blending .withinWindow so the card matches standard NSMenu rows (replacing .popover / .behindWindow). - Light appearance uses a separator stroke instead of a white fill over the blurred material. - Bump CFBundleVersion to 7182 in app and helper Info.plist. Made-with: Cursor
|
Latest push (
|
|
@waydabber can we get this pr in now that @arsarsars1 has fixed the issues ? |
|
@sidevesh yeah, the issue was fixed. It's ready for review. Thank you |
|
Hi all, sorry for being slow will this, I'll review soon and let you know if there is anything else. |
|
(note: some of the issues - like the funny looking sliders - are because |
…andler.swift conflicts
- Make Custom HUD background transparent to avoid square opaque corners - Update custom HUD icon and slider colors for better macOS integration - Adjust Menu Slider icon padding and layout constraints
|
I’ve pushed a few UI/UX refinements to address the aesthetic issues and bring the project closer to native macOS styling:
Attached are two screenshots showing the improved look. @waydabber |
…ry validation entitlement
|
Hi @arsarsars1 我认为 @waydabber 的意思是让第三方显示器在使用Monitor Control调节亮度和音量的时候,看上去更像是在调节Apple公司出品的XDR Display 或 Studio Display一样,当按下 亮度+/- 或 音量+/-、静音 时,屏幕上可以显示(或模仿)类似macOS Tahoe原生UI的那种效果。 因为目前版本(4.3.3)的Monitor Control调节第三方显示器时,可以在Sequoia或以前版本的macOS调用原生UI,但是无法在Tahoe上正常调用系统UI,目前的思路是,既然无法调用系统UI,就制作一个复刻的Tahoe的UI。 Hi @arsarsars1, I think what @waydabber means is that when using Monitor Control to adjust brightness and volume on third-party displays, it should look more like adjusting an Apple XDR Display or Studio Display — i.e., when pressing brightness +/- or volume +/- / mute, the on-screen display should show (or mimic) an effect similar to the native macOS Tahoe UI. |
|
Note: As AI generated PRs are getting more numerous now, I made decision that I won't review AI generated PRs/forks due to lack of time and resources. Of course other maintainers can help with this. I will not close such PRs however, but add a |
Overview
This PR addresses UI display issues and improves macOS Tahoe (15.x) / Sequoia compatibility, with follow-up fixes for OSD behavior, keyboard volume capture, and HUD lifecycle.
Changes Made
UI Fixes
Menu Bar Slider
Preferences — Displays Tab
Preferences — About Tab
Preferences — Keyboard Tab
tccutilwhere applicable)macOS Tahoe / Sequoia / 26 Support
Custom HUD for broken native OSD
OSDUtilsuses a custom HUD (CustomHUD.swift) instead of privateOSDManagerwhere native OSD no longer shows reliable percentage/updates (per project README note on Tahoe)RunLoopcommon mode so the timer still fires during nested run-loop activityCustomHUD.swiftHUD lifecycle
DisplayManager.clearDisplays()callsCustomHUDManager.cleanupDisplayper display so HUD windows/timers are not left behind after display reconnect or reconfigureSlider
percentageBoxguard)Files Touched (high level)
MonitorControl/Support/CustomHUD.swift— custom OSD UIMonitorControl/Support/OSDUtils.swift— route to custom HUD on macOS 26+MonitorControl/Support/SliderHandler.swift— menu slider layout & symbol rendering; percentage label fixMonitorControl/Support/DisplayManager.swift— HUD cleanup when clearing displaysMonitorControl/Support/MediaKeyTapManager.swift—KeyboardVolume.mediaForcehandlingMonitorControl/Enums/PrefKey.swift—mediaForcecaseMonitorControl/Support/AppDelegate.swift,OnboardingViewController.swift— accessibility prompts include force-capture volume modeMonitorControl/UI/Base.lproj/Main.storyboard,MonitorControl/UI/en.lproj/Main.strings— new volume menu item + layoutMonitorControl.xcodeproj/project.pbxproj,Info.plistfiles — project / version as neededTesting
Related