-
-
Notifications
You must be signed in to change notification settings - Fork 419
feat: add configurable panel width for Titles style #4908
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Hi, Thank you for sharing this PR! I haven't had time to review it yet. I finally got things running again on my machine, and could work on the backlog. Reviewing this PR is next on my list 👍 Thank you |
|
I have played with the PR. I have a few questions and remarks 👍
What do you think? Thank you |
Reuses existing comfortableWidth() system instead of hardcoded values. Applies Titles-specific adjustment for ultrawide screens to improve text readability while respecting physical viewing distance. - Super ultrawide (≥3.0 aspect ratio): 65% of comfortableWidth, min 30% - Regular ultrawide (2.3-3.0 ratio): 85% of comfortableWidth, min 45% - Standard displays: unchanged (uses comfortableWidth as-is) The comfortableWidth formula works well for thumbnails (visual scanning) but titles (text reading) benefit from narrower widths on ultrawides. Prevents extreme edge cases with minimum clamping. No changes to Thumbnails or App Icons styles.
ab67ae4 to
26c5a24
Compare
Adds else clause to maintain the original 60%/80% width behavior for normal horizontal and vertical screens. Only ultrawide screens (aspect ratio >= 2.3) now use the comfortableWidth-based calculation. This ensures we don't accidentally change behavior for standard monitors and vertical/portrait displays.
|
Good point. Simplified the PR:
Works well on my 32:9 screen now. I don't think it's necessary to change width for Thumbnails or App Icons. Titles are specific because reading text spread across 3000+ pixels feels awkward on super ultrawides. The PR only adjusts Titles for (super)wide screens and doesn't change anything else. Quick comparison
The multipliers respect physical screen size (via comfortableWidth) while keeping text readable on ultrawides. Is this acceptable? |
|
Thank you @topik Reading your rationale, and looking at the code, the following thought comes to my mind. Your goal is readability of the Titles Appearance on wide screens. The PR proposes to add a second layer of width calculation. It comes after the comfortable width is set. It reduces it in special cases. Comfortable width should be comfortable. So why is it not currently? I think it's because it focuses on field-of-view. The AltTab window is scaled for a comfortable viewing experience. However, with Titles Appearance, there is an added topic for comfort: line length. This is not included today. I think line-length should be addressed specifically. A common rule-of-thumb, used for latin-language books for example, is ~65 characters. Thus here is my proposal: instead of adding arbitrary ratios to reduce the width, we instead look at font-size, calculate the width of 65 characters, then use the What do you think? Interestingly, many people have asked if we could have the Titles Apperance be more compact. That is: if its width could be the width of the longuest title. To avoid having lots of empty space. This is discussed in #3882. Depending on how we measure line-length here, we could do 2 birds with 1 stone, and set the width to |
|
The character-width approach is outside the scope of what I'm trying to fix. The multiplier solution reuses comfortableWidth() like you suggested in your first review. If that's not good enough, feel free to close this. I'm not taking it further 🙂 |
Summary
Adds configurable panel width for the Titles appearance style to address the issue mentioned in #3882 where the UI becomes too wide on ultrawide monitors.
Changes
isUltrawide()andisSuperUltrawide()helper functions to NSScreenTesting
Tested on 5120×1440 (32:9) display where automatic mode correctly applies 30% width. Also verified on standard 16:9 display to ensure backwards compatibility. Custom slider works as expected and preferences persist correctly.
Implementation Notes
The two-tier approach keeps absolute panel widths similar across screen types (~1500-1600px) while preventing the UI from being overwhelming on super ultrawide displays. Existing users on standard displays won't see any changes.
Preview
Edit: Forgot to include settings UI