Skip to content
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

Switcher width on 42" monitor #3866

Closed
alt-tab-macos-bot opened this issue Nov 19, 2024 · 12 comments
Closed

Switcher width on 42" monitor #3866

alt-tab-macos-bot opened this issue Nov 19, 2024 · 12 comments

Comments

@alt-tab-macos-bot
Copy link

This issue was opened by a bot after a user submitted feedback through the in-app form.

From: [email protected]

Message:

Please allow users to adjust the width of the app switcher. I have an external monitor connected via HDMI and after upgrading to the latest version I noticed that the switcher is quite narrow with everything squeezed together in the center.

I would like to be able to display all apps across the entire width of my screen instead of just a narrow window in the middle. Other than that I love the app!

Debug profile

  • App version: 7.4.0
  • App preferences:
    • MSAppCenter310AppCenterUserDefaultsMigratedKey: 1
    • MSAppCenter310CrashesUserDefaultsMigratedKey: 1
    • MSAppCenterAppDidReceiveMemoryWarning: 1
    • MSAppCenterInstallId: 613DD32C-E96A-48D7-9B27-779ED931B7BE
    • MSAppCenterNetworkRequestsAllowed: 0
    • MSAppCenterPastDevices: {length = 1148, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 00000388 }
    • MSAppCenterSessionIdHistory: {length = 460, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 00000156 }
    • MSAppCenterUserIdHistory: {length = 455, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 00000151 }
    • NSStatusItem Preferred Position Item-0: 388
    • NSWindow Frame SUStatusFrame: 1304 1167 400 135 0 0 3008 1692
    • NSWindow Frame SUUpdateAlert: 1194 970 620 398 0 0 3008 1692
    • SUAutomaticallyUpdate: 1
    • SUEnableAutomaticChecks: 1
    • SUHasLaunchedBefore: 1
    • SULastCheckTime: 2024-11-19 02:44:49 +0000
    • SUUpdateGroupIdentifier: 1905276622
    • SUUpdateRelaunchingMarker: 0
    • alignThumbnails: 1
    • appearanceSize: 1
    • appearanceStyle: 0
    • appearanceVisibility: 0
    • hideSpaceNumberLabels: true
    • hideStatusIcons: true
    • holdShortcut: ⌘
    • preferencesVersion: 7.4.0
    • previewFocusedWindow: false
    • showTitles: 0
    • theme: 0
    • titleTruncation: 2
    • updatePolicy: 2
    • windowMaxWidthInRow: 30
  • Applications: 53
  • Windows: 13
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 3, spaceIndex: 2}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
    • {isFullscreen: false, isWindowlessApp: true, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: false, spaceId: 18446744073709551615, spaceIndex: 9223372036854775807}
    • {isFullscreen: false, isWindowlessApp: false, isMinimized: false, isHidden: false, isTabbed: false, isOnAllSpaces: false, shouldShowTheUser: true, spaceId: 1, spaceIndex: 1}
  • OS version: Version 15.1 (Build 24B83)
  • OS architecture: arm64
  • Locale: en_US (fixed en_US)
  • Spaces: 2
  • Dark mode: Dark
  • "Displays have separate Spaces": checked
  • Hardware model: Mac15,6
  • Screens: 1
    • {x: 0.0, y: 0.0, width: 3008.0, height: 1692.0}
  • CPU model: Apple M3 Pro
  • Memory size: 19.33 GB
  • Active CPU count: 11
  • Current CPU frequency: nil
  • Resource utilization:
    • CPU: 0.0%
    • Memory: 214M
    • Threads count: 16

@lwouis
Copy link
Owner

lwouis commented Nov 19, 2024

Hi,

We've added logic in v7.4.0 to avoid AltTab going too wide on widescreen monitors, or TV screens used as monitors. This is in response to users asking about it. They said AltTab being too wide was hurting their necks.

Could you please share a photo how AltTab looks when it's open with your setup? Perhaps click on the menubar icon and select Show. Then you can step back and snap a picture of the whole setup from your smartphone?

I'm curious how big your external monitor is, how far you sit from it, how AltTab takes your field of view, etc.

Thank you 🙇

@TeamworkBeaver
Copy link

TeamworkBeaver commented Nov 19, 2024

Hello,

Thanks for the explanation. It is strange to learn users asked for this. Anyway, here is a photo of my monitor with the switcher on. As you can see, there is a lot of space left and right. The switcher should expand horizontally first before creating a new row. The reason is that because of the way we read ... having content spread out horizontally rather than vertically is more natural—after all, that's why we have ultra-wide monitors.

My monitor is a 42" 4k 16:9 LG OLED TV and I sit about an arm's length away from it. Not sure if it's technically possible, but maybe program in a few different switcher window sizes and let users pick in the settings?? Like 21:9, 16:9, 16:10, etc. Hope that helps.

IMG_2443

@lwouis lwouis changed the title [In-app feedback] Switcher width on 42" monitor Nov 21, 2024
@lwouis
Copy link
Owner

lwouis commented Nov 29, 2024

Hi,

I could work on this tonight. Here are my investigations.

Screen Model Resolution Physical dimensions Switcher Width %
Monitor in #3870 ? 3840x2160 ? 31,9%
Your monitor LG OLED42C3? 3008x1692 930.2x523.3? 31,9%

Am I correctly guessing your monitor infos? I guessed it using ChatGPT. Resolution seems to be downscaled; did you do it?. Physical dimensions are in mm.

It's very weird that for both of you, when I measure the switcher width percentage, I get 31,9%. I don't understand how AltTab can render on 31,9% of your screens width, when in my unit tests, the min is 45% for a 60" TV.

To get 31,0% max width, the screen physical width would need to be 1881.19mm. I don't understand.

I wonder if the issue is that the OS/Screen is reporting the wrong physical size. That would explain the issue!

@lwouis
Copy link
Owner

lwouis commented Nov 29, 2024

Someone else reporting wrong data from CGDisplayScreenSize: INRIA/libpointing#22

I think we need to add mitigations for cases where the screen hardware reports incorrect values

@lwouis
Copy link
Owner

lwouis commented Nov 30, 2024

@TeamworkBeaver could you please run this local build by running this command in Terminal.app, after installing it?

/Applications/AltTab.app/Contents/MacOS/AltTab --logs=error

And share here the output?

Thank you 🙇

@lwouis lwouis closed this as completed in cf0b39d Dec 1, 2024
github-actions bot pushed a commit that referenced this issue Dec 1, 2024
# [7.6.0](v7.5.0...v7.6.0) (2024-12-01)

### Features

* better display on some external monitors (closes [#3866](#3866)) ([165a669](165a669))
* improve keyboard handling when macos is overwhelmed ([4a9b543](4a9b543))
* improve korean localization ([22aafce](22aafce))
@TeamworkBeaver
Copy link

TeamworkBeaver commented Jan 4, 2025

@lwouis Sorry for the late response - life got busy. Your monitor/screen data is off. I have an LG 42in C2 TV which has a 4k resolution (physical dimensions can be found on LG's website). Do you still need me to run the utility in the terminal?

In any case, the switcher continues to display vertically for me (three rows). I would like an option to make it one row and go across the screen, with icons/previews getting smaller the more programs are running - essentially what the default MacOS does.

@lwouis
Copy link
Owner

lwouis commented Jan 4, 2025

Thank you @TeamworkBeaver
Yes, please share the logs 🙇

@TeamworkBeaver
Copy link

Alright, that took a lot of permission bypassing (hope there was no trojan horse in this one haha)

Anyway, ran this: /Applications/AltTab.app/Contents/MacOS/AltTab --logs=error in Terminal and got this back

13:22:31 ERRO App.swift:83 applicationDidFinishLaunching() LG TV SSCR2 (0.0, 0.0, 3008.0, 1692.0) (1591.733309427897, 895.3499865531921)

@lwouis
Copy link
Owner

lwouis commented Jan 5, 2025

Thank you!

I have an LG 42in C2 TV which has a 4k resolution

In the logs, we see a resolution of 3008x1692

image

I don't know what to think of this

(physical dimensions can be found on LG's website)

I found this on LG website: 932x540 (mm). ChatGPT found very similar numbers.

We see in the logs that the call to CGDisplayScreenSize returns 1591x895.
This doesn't match reality at all. It explains why AltTab ends up with the wrong width.

Could you please open BetterDisplay, and open this view?

image

Then inside Display Information... you can find the dimensions:

image

What does it show?

Thank you

@lwouis
Copy link
Owner

lwouis commented Jan 5, 2025

I wonder if we could add a safe-guard for when physical dimensions from the manufacturer's EDID are wrong. Maybe after we calculate the switcher width, we could look again at the resolution and see if it seems too off? I'm not sure

@lwouis lwouis reopened this Jan 5, 2025
@TeamworkBeaver
Copy link

TeamworkBeaver commented Jan 5, 2025

Hmm .. interesting. Could you just put in a resolution selector for the user? For example, have an option that says something like "click here to override default switcher settings" and then show menu with resolutions.

Anyway, here's what I see in Better Display.
image

EDIT: Now my AltTab doesn't work anymore 🤦‍♂️
EDIT 2: Complete wipe/uninstall and reinstall fixed it 👍

@lwouis
Copy link
Owner

lwouis commented Jan 5, 2025

I'm considering adding back the width selector preference. #3882 second bullet-point 👍

@lwouis lwouis closed this as completed Jan 5, 2025
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

No branches or pull requests

3 participants