FelixKratz / SketchyBar

A highly customizable macOS status bar replacement
https://felixkratz.github.io/SketchyBar/
GNU General Public License v3.0
6.55k stars 95 forks source link

Sketchybar won't display on notched displays above fullscreen windows #594

Open NeilS-95 opened 3 months ago

NeilS-95 commented 3 months ago

Is it possible to get Sketchybar to display above native fullscreen windows specifically on displays with a notch? I noticed this issue #383 where it's stated that support for drawing sketchybar over fullscreen windows would block UI elements of the app and therefore it's intended behaviour to not draw the bar over top. However on notched displays the macOS menu bar can be displayed above fullscreen apps without interfering with UI elements. Would it be possible to show sketchybar in the black bar where the notch is when in native fullscreen?

lsgalante commented 3 months ago

I also would find this to be useful. I tried to look at the code and investigate the KCGSSuperStickyTagBit but it doesn't appear to be present in the code anymore. Not sure if this has to do with changes in the API after some mac os release version. It would be really helpful to get any pointers about where to look to try to implement this, if he is not planning on adding the feature himself.

FelixKratz commented 3 months ago

If the bar is set to be sticky, it would always shows on all workspaces, even fullscreen ones if it where not for this line which decides to hide the bar on fullscreen spaces: https://github.com/FelixKratz/SketchyBar/blob/fb5923291182e5070b1aef5feaed0caaa2b36074/src/bar_manager.c#L958

The way this works without the kCGSSuperStickyTagBit is that we create a new space on an application level, which we place all our windows in: https://github.com/FelixKratz/SketchyBar/blob/fb5923291182e5070b1aef5feaed0caaa2b36074/src/window.c#L61-L69 This space is completely decoupled from the native system spaces (which is why it is stationary on system space change).

lsgalante commented 3 months ago

This is really wonderful, thank you. Your method of creating a new space is interesting. I was able to make it work with sticky=on and topmost=on after removing the line you pointed out. This gets in the way of the mac os menu bar, but I think there is an easy fix for that by setting the z index. I really appreciate your help.

lsgalante commented 3 months ago

I couldn't find a CGWindowLevelKey which causes a window to appear above full screen apps and below the menu bar. I think I have seen someone do this but I am not certain. For now I have a key binding set to toggle sketchybar visibility, which works great.