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

macOS 13 Ventura #1297

Closed
koekeishiya opened this issue Jun 7, 2022 · 152 comments
Closed

macOS 13 Ventura #1297

koekeishiya opened this issue Jun 7, 2022 · 152 comments

Comments

@koekeishiya
Copy link
Owner

This is the collective yearly thread for macOS betas. Please use this to discuss instead of opening new issues.

@koekeishiya koekeishiya pinned this issue Jun 7, 2022
@dominiklohmann
Copy link
Collaborator

dominiklohmann commented Jun 7, 2022

I have the first beta up and running in a separate APFS volume.

❯ sw_vers
ProductName:	macOS
ProductVersion:	13.0
BuildVersion:	22A5266r

Relevant system files:

Initial observations:

  • Scripting addition doesn't work yet, which is expected.
  • With yabai running the NotificationCenter process sometimes crashes.
  • Stage Manager sucks, but if it's running yabai should switch to floating mode for everything, instead of attempting to tile windows that are in the Stage Manager sidebar, producing effects similar to Handle native tabs properly #68.
  • Yabai is running surprisingly stable given the subset I played around with so far.

For reference, here's the yabai window status for a window currently hidden in Stage Manger. Yabai think's it's visible, when in reality it is not, thus causing all other windows on the space to be wrongly tiled.

❯ yabai -m query --windows --space | jq '.[] | select(.app == "Safari")'
{
  "id": 8204,
  "pid": 581,
  "app": "Safari",
  "title": "macOS 13 Ventura · Issue #1297 · koekeishiya/yabai",
  "frame": {
    "x": -120,
    "y": -1055,
    "w": 948,
    "h": 1055
  },
  "role": "AXWindow",
  "subrole": "AXStandardWindow",
  "display": 2,
  "space": 6,
  "level": 0,
  "opacity": 1,
  "split-type": "vertical",
  "stack-index": 0,
  "can-move": true,
  "can-resize": true,
  "has-focus": false,
  "has-shadow": true,
  "has-border": false,
  "has-parent-zoom": false,
  "has-fullscreen-zoom": false,
  "is-native-fullscreen": false,
  "is-visible": true,
  "is-minimized": false,
  "is-hidden": false,
  "is-floating": false,
  "is-sticky": false,
  "is-topmost": false,
  "is-grabbed": false
}

@koekeishiya
Copy link
Owner Author

Is Stage Manager like entering a different mode for that specific desktop? Can an application that is a part of Stage Manager have a window on a different display that is visible and managed by yabai? I guess I probably have to set up a separate volume running Ventura as well to experiment.

I also took a quick look at the Dock.app you uploaded and it should be no problem to update the scripting-addition for this version as well.

@dominiklohmann
Copy link
Collaborator

Stage Manager is a single toggle for all non-fullscreen spaces across multiple displays. It operates per non-fullscreen space.

Essentially it's like a fancy single-window mode that allows for grouping windows together by dragging them onto a stage on the left side of your screen. Used that way it could be an alternative to spaces as well.

@Lalit64
Copy link

Lalit64 commented Jun 8, 2022

I can't seem to get yabai scripting addition loaded. I get this error. yabai: scripting-addition either failed to load or could not inject payload into Dock.app! Error: -1708

Output of csrutil status

System Integrity Protection status: unknown (Custom Configuration).

Configuration:
	Apple Internal: disabled
	Kext Signing: enabled
	Filesystem Protections: disabled
	Debugging Restrictions: disabled
	DTrace Restrictions: enabled
	NVRAM Protections: disabled
	BaseSystem Verification: enabled
	Boot-arg Restrictions: disabled
	Kernel Integrity Protections: disabled
	Authenticated Root Requirement: enabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.

When I run yabai --check-sa it returns a 0 exit code

@ghost
Copy link

ghost commented Jun 10, 2022

Also get this.

@Uzaaft
Copy link

Uzaaft commented Jun 29, 2022

Managed to get the yabai scripting addition loaded by following the wiki. @Lalit64

@Lalit64
Copy link

Lalit64 commented Jun 29, 2022

Managed to get the yabai scripting addition loaded by following the wiki. @Lalit64

Ok. I will try. 😁

@koekeishiya
Copy link
Owner Author

The scripting-addition won't inject on macOS Ventura because the code requires a versioning change to use the Mach API:
https://github.com/koekeishiya/yabai/blob/master/src/sa.m#L443. The code that is injected also needs to be updated.

I am not particularly interested in programming in my spare time these days, so I have not set up a Ventura partition and I haven't yet looked in details at the changes. My first quick impression has been that everything that currently works on Monterey will continue to work in the foreseeable future. I will pick development back up at some point in the future when I feel motivated/interested enough to do so.

@jorpilo
Copy link

jorpilo commented Jul 14, 2022

Any update?

How did you manage to get the script addition loaded?

@jorpilo
Copy link

jorpilo commented Jul 25, 2022

Hey, I ended up changing the code myself. #1337 has the changes to include checking with macos(13)

As said in the pull request, os version checking can be really improved and this is just a quick fix to at least get something working again...

@jorpilo
Copy link

jorpilo commented Jul 30, 2022

I am trying to get the offsets and signatures for Dock.app, I saw some comments in monterrey about how to get offsets but I am really lost about this.

If anyone is able to help I would appreciate it.

I can provide dock.app from ventura 13 beta 2 if needed

@AdamMomen
Copy link

@jorpilo I ended up downgrading my OS to Monterey 12.5.

@rsnullptr
Copy link

i really like to help. if someone can point out the right direction, would be very appreciated. sadly mac os sucks on wm, it’s pretty unusable for me without this awesome app :/

@Jac-Zac
Copy link

Jac-Zac commented Sep 13, 2022

I have done this, I hope it can somehow help and I wonder if someone can guide me and tell me if this is correct #1337 (comment)

@theTechGoose
Copy link

How usable is this on the latest upgrade? Am I good to move over or should I wait?

@Jac-Zac
Copy link

Jac-Zac commented Oct 18, 2022

I wouldn't update unless you really are interested in testing something new on Ventura. If you are yabai is definitely quite good on the beta too, but there are obviously some missing features mainly in the scripting additions. Therefore, I repeat unless you are really interested in using Ventura and willing too not have all the features you may need do not update. On the other hand if you are interested in tinkering and trying to make it work go ahead and update it, but just do not complain if something is not working as you expected.

@dominiklohmann
Copy link
Collaborator

dominiklohmann commented Oct 18, 2022

@koekeishiya not sure if you've seen it, but Ventura is supposed to go live on Oct 24th, i.e., next Monday. Do you intend to update the scripting addition based on the RC? I can upload the required files as usual if that's the case.

@koekeishiya
Copy link
Owner Author

I can upload the required files as usual if that's the case.

I'll probably look at it during the weekend if you do

@dominiklohmann
Copy link
Collaborator

Took me a while to get to this, but here's everything that should be needed. I can give it a spin post updated signatures, got the Ventura rc2 running now.

Dock.zip

SkyLight.framework.zip

❯ sw_vers
ProductName:		macOS
ProductVersion:		13.0
BuildVersion:		22A380

@doadam
Copy link

doadam commented Oct 25, 2022

I looked up the symbols on 12.x based on the signatures (because there's no documentation whatsoever of what they are actually pointing at), then found the differences for the newly released Dock version of Ventura. Hacky workaround, not extensively tested (and will definitely break in the future), here are my "signatures" (merely offsets tbh).

The version I've tried this on:

❯ sw_vers
ProductName: macOS
ProductVersion: 13.0
BuildVersion: 22A380

Dock sha256 (if this is not your hash, this will not work for you):

❯ openssl dgst -sha256 /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock
SHA256(/System/Library/CoreServices/Dock.app/Contents/MacOS/Dock)= 42e5df10be236aea57e24ee9b527b6bad7ceb86d5b189c4078fa672b22a38a4e

And finally, the patch file is attached.
ventura_22A380_hack.txt

I'd recommend creating a patchfinder that works out of yabai, puts the required offsets into a json or something similar, then the payload will read from it and use it accordingly. This way it would be easier to maintain, and also if the patchfinder runs externally, it is possible (and easy) to make strong signatures that will not break every major.

@koekeishiya
Copy link
Owner Author

I'd recommend creating a patchfinder that works out of yabai, puts the required offsets into a json or something similar, then the payload will read from it and use it accordingly. This way it would be easier to maintain, and also if the patchfinder runs externally, it is possible (and easy) to make strong signatures that will not break every major.

See my comment: #1091 (comment)

@haarmannthiemann
Copy link

haarmannthiemann commented Oct 25, 2022

Awesome, compiled the latest master and everything works again.
For other people upgrading, here is what I did:

git clone https://github.com/koekeishiya/yabai.git
cd yabai
make
make sign
sudo ./bin/yabai --uninstall-sa
sleep 3
sudo ./bin/yabai --load-sa
sleep 3
./bin/yabai

I think it's important to uninstall the old scripting additions, it might not be necessary though, and I had to run ./bin/yabai --load-sa twice for it to work again, anyhow, back to tiling / instant space switching with yabai! bye bye Stage Manager =)

Thanks so much koekeishiya!!

@phyllisstein
Copy link

Thank you for giving your time to this, @koekeishiya . yabai is a terrific tool, and I'm grateful for the work you put in so we can continue using it.

@rsnullptr
Copy link

rsnullptr commented Oct 25, 2022

Hey guys, awesome news. thanks a lot @koekeishiya 🙏🏼

I am running this, but i can't make it work as brew service.

brew install koekeishiya/formulae/yabai --HEAD
brew services start koekeishiya/formulae/yabai

the accessibility menu is prompt, permission is given, but the permission keeps prompting.

Also did the "trick" of stop start again, but the same behaviour.
Running it as an executable on terminal works.

Any suggestions? Thanks again!

EDIT:

╭─rs at mbp64 in ~
╰─○ tail -f /opt/homebrew/var/log/yabai/yabai.err.log
yabai: could not access accessibility features! abort..
yabai: could not access accessibility features! abort..
yabai: could not access accessibility features! abort..


EDIT2:
running on terminal work, but I have a error injecting SA

 ╭─rs at mbp64 in ~
╰─○ /opt/homebrew/bin/yabai
+ declare -A color
+ color["focused"]=0xE02d74da
+ color["normal"]=
+ color["preselect"]=0xE02d74da
+ yabai -m signal --add event=dock_did_restart 'action=sudo yabai --load-sa'
+ sudo yabai --load-sa
yabai: scripting-addition failed to inject payload into Dock.app!
....

if run once on the terminal works, run twice I have that error.

╭─rs at mbp64 in ~
╰─○ sudo /opt/homebrew/bin/yabai --uninstall-sa
╭─rs at mbp64 in ~
╰─○ sudo /opt/homebrew/bin/yabai --load-sa     
╭─rs at mbp64 in ~
╰─○ sudo /opt/homebrew/bin/yabai --load-sa
yabai: scripting-addition failed to inject payload into Dock.app!

if uninstalled on the terminal, and run the app, also receive that error.

╭─rs at mbp64 in ~
╰─○ sudo /opt/homebrew/bin/yabai --uninstall-sa
╭─rs at mbp64 in ~
╰─○ sudo /opt/homebrew/bin/yabai --uninstall-sa
╭─rs at mbp64 in ~
╰─○ /opt/homebrew/bin/yabai                    
+ yabai -m signal --add event=dock_did_restart 'action=sudo yabai --load-sa'
+ sudo yabai --load-sa
+ color["focused"]=0xE02d74da
+ color["normal"]=
+ color["preselect"]=0xE02d74da
+ yabai -m config layout bsp
+ yabai -m config top_padding 10
yabai: scripting-addition failed to inject payload into Dock.app!

@0xwal
Copy link

0xwal commented Oct 26, 2022

You need to follow this detailed instructions.
https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(from-HEAD)

@FelixKratz
Copy link

Something seems to have changed regarding to how window ordering works in the SLSOrderWindow* function family, which makes the animations a bit rough:

animation.mp4

Additionally I have noticed that there is a WindowManager process now, which is probably Apples Stage Manager. The binary for this process resides in /System/Library/CoreServices/WindowManager.app/Contents/MacOS/WindowManager.
Maybe there is some benefit looking into this application in more detail to get an idea how apple handles animations etc.

@rsnullptr
Copy link

You need to follow this detailed instructions. https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(from-HEAD)

Thanks you. missed the code sign and the manual add of it. 🙏🏼

@koekeishiya
Copy link
Owner Author

@peppy
Copy link

peppy commented May 7, 2023

Weirdly, I'm getting issues on 13.3.1 (a) (22E772610a), M2 hardware. Of note, it wasn't working before the (a) security hotfix, so I don't think that specifically broke things. As usual, it's space switching which is not working, but I'm unfamiliar with the failure messages I'm seeing:

On --load-sa:

2023-05-07 12 05 22@2x

default	12:05:44.872859+0900	Dock	[yabai-sa] loaded payload..
default	12:05:44.873253+0900	Dock	[yabai-sa] checking for macOS 13.3.1 compatibility!
default	12:05:44.873584+0900	Dock	[yabai-sa] could not locate pointer to dock.spaces! spaces functionality will not work!
default	12:05:44.874016+0900	Dock	[yabai-sa] could not locate pointer to dppm! moving spaces will not work!
default	12:05:44.874126+0900	Dock	[yabai-sa] (0x10012c000) addSpace found at address 0x100319EB0 (0x1edeb0)
default	12:05:44.874403+0900	Dock	[yabai-sa] failed to get pointer to removeSpace function..
default	12:05:44.874680+0900	Dock	[yabai-sa] failed to get pointer to moveSpace function..
default	12:05:44.875009+0900	Dock	[yabai-sa] failed to get pointer to setFrontWindow function..
default	12:05:44.875216+0900	Dock	[yabai-sa] (0x10012c000) animation_time_addr found at address 0x10031BA6C (0x1efa6c)
default	12:05:44.875283+0900	Dock	[yabai-sa] now listening..

I've tried a manual uninstall of scripting additions to ensure I'm not accidentally running an old version.

This is testing from HEAD (a8d62d6) and am signing the binaries.

@koekeishiya
Copy link
Owner Author

Looks like this for me on 13.3.1.

[yabai-sa] loaded payload..
[yabai-sa] checking for macOS 13.3.1 compatibility!
[yabai-sa] (0x1040fc000) dock.spaces found at address 0x40BA80 (0xfffffffefc30fa80)
[yabai-sa] (0x1040fc000) dppm found at address 0x40BB00 (0xfffffffefc30fb00)
[yabai-sa] (0x1040fc000) addSpace found at address 0x1042E9EB0 (0x1edeb0)
[yabai-sa] (0x1040fc000) removeSpace found at address 0x10439CE04 (0x2a0e04)
[yabai-sa] (0x1040fc000) moveSpace found at address 0x10438FAB0 (0x293ab0)
[yabai-sa] (0x1040fc000) setFrontWindow found at address 0x104143EA0 (0x47ea0)
[yabai-sa] (0x1040fc000) animation_time_addr found at address 0x1042EBA6C (0x1efa6c)
[yabai-sa] now listening..

I would guess something is wonky about your installation somehow, since it triggers the "out of date" message.
If you are on the latest version provided by yabai and the scripting addition that is bundled with it, and it is not updated for your version of macOS you are supposed to get this message: https://github.com/koekeishiya/yabai/blob/master/src/sa.m#L290

Try to stop yabai (also if it is running as a service), remove the scripting-addition manually rm -rf /Library/ScriptingAdditions/yabai.osax, reboot, and install it again.

If you are still having issues after that, upload the Dock.app binary and I can verify that the offsets and patterns match as expected. M2 hardware should not make a difference from M1 hardware for what we are doing.

@kkharji
Copy link

kkharji commented May 7, 2023

Getting "OS Environment does not allow changing security configuration options. Ensure that system was booted into Recovery OS via standard use action"

Ventura 13.3.1 (a)

Everything else seems to be working fine

@peppy
Copy link

peppy commented May 7, 2023

I would guess something is wonky about your installation somehow, since it triggers the "out of date" message. If you are on the latest version provided by yabai and the scripting addition that is bundled with it, and it is not updated for your version of macOS you are supposed to get this message: https://github.com/koekeishiya/yabai/blob/master/src/sa.m#L290

Try to stop yabai (also if it is running as a service), remove the scripting-addition manually rm -rf /Library/ScriptingAdditions/yabai.osax, reboot, and install it again.

If you are still having issues after that, upload the Dock.app binary and I can verify that the offsets and patterns match as expected. M2 hardware should not make a difference from M1 hardware for what we are doing.

I tested a full uninstall, and also tried using the brew installation method rather than a direct git clone / build. I also tested the new service method and it works well for non-SA required actions, but still fails for focusing windows.

Dock.app.zip

@iraizo
Copy link

iraizo commented May 15, 2023

the yabai binary has been added to the access setting but if i start the service it keeps asking for permission, it does work fine just running it inside a terminal tho, this happened after updating but im pretty sure i followed the instructions for updating correctly, im currently on Ventura 13.0

@koekeishiya
Copy link
Owner Author

koekeishiya commented May 15, 2023

@peppy

I've verified that all offsets & pattern are correct for the version of the Dock binary that you uploaded, so I don't really know why it won't work for you. As mentioned in my comment above, everything is working fine on my M1 running 13.3.1 (a).

@peppy
Copy link

peppy commented May 16, 2023

Thanks for the confirmation. I'll do some more testing from my end and loop back if I figure things out.

@TheNoim
Copy link

TheNoim commented May 19, 2023

Just a quick note, it looks like yabai works fine on the new 13.4 version.

@koekeishiya
Copy link
Owner Author

koekeishiya commented May 23, 2023

Just to summarize the current state:

The latest version of yabai works fine on all versions of Ventura up to (and including) version 13.4.
The following are known issues that affect all Ventura versions:

  1. Window borders do not order/sort correctly on the screen, and may/will incorrectly overlap other windows.
  2. If you enable window animations in yabai, there might be some short visiblity flickering (at the start/end of the animation).
  3. If you have both window borders and window animations enabled at the same time; borders do not animate properly and it will look weird/janky.

These issues are caused by internal changes in Ventura. These kinds of issues are the most time consuming to solve and I do not have the patience/interest to spend the amount of hours required to see if there even exist workarounds.
I did experiment with some hacky workaround previously (linking here for future reference: 9dc41a7)

Assuming that this problem persists in macOS 14 when the time comes, I am leaning more towards simply removing the border system completely. I have been down this path before (v3, v4).. The other option would be to disable borders for macOS Ventura and above, and remove it when Big Sur and Monterey go out of support.

@FelixKratz
Copy link

A small comment:
When disabling the system window management process via launchctl unload -F /System/Library/LaunchAgents/com.apple.WindowManager.plist
points 1,2 and 3 can be solved entirely with minor changes. This will of course disable some of the native window management shortcuts like cmd-m. I have not noticed any other ramifications.

@koekeishiya
Copy link
Owner Author

koekeishiya commented May 23, 2023

@FelixKratz That is a fair point, but I do believe that requires SIP to be disabled to be possible. The current border system does not require SIP to be disabled.

I am generally not a fan of forcing users to disable Apple functionality to make base features work properly.
For me, this is slightly different from allowing people to access an extended feature set by disabling SIP.
I guess it could be argued what is considered base and extended; window borders have crossed this line before.

I do agree with your point though, that is an option for people who really want window borders (for now anyway).

@ys64
Copy link

ys64 commented May 29, 2023

It seems that I have to run sudo yabai --load-sa to enable normal_window_opacity. It used to enable it automatically whenever I start the macOS computer. However, even though I have sudo yabai --load-sa in my yabairc config, I still have to manually run the command in my shell.

Does anyone else notice the change?

shinyquagsire23 pushed a commit to shinyquagsire23/yabai that referenced this issue Jun 7, 2023
@jeremyd85
Copy link

I have been having some issues with displaying some floating windows after updating to Ventura. They will all appear this way after starting.
image

My attempt to fix:

  1. Uninstall yabai / sudo rm /private/etc/sudoers.d/yabai
  2. Enable System Integrity Protection
  3. Redo all setup instructions again including disabling relevant System Integrity Protections for M1 Mac.

I do have signals setup to focus windows in the current space using a custom script, but even when following the debug output of those scripts, there don't seem to be any obvious errors. This is not an issue if scripting additions are not loaded.

yabai config
#!/usr/bin/env sh

DOTFILES_DIR="/Users/jeremy/code/dotfiles"

yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
sudo yabai --load-sa

yabai -m config external_bar off:45:0
yabai -m config mouse_follows_focus off
yabai -m config focus_follows_mouse off

New window spawns to the right if vertical split, or bottom if horizontal split (opposite first_child)

yabai -m config window_placement second_child
yabai -m config window_origin_display focused

yabai -m config window_topmost on

#yabai -m config window_shadow float
#yabai -m config window_opacity on
#yabai -m config window_opacity_duration 0.0
#yabai -m config active_window_opacity 1.0
yabai -m config normal_window_opacity 0.9
yabai -m config window_border on
yabai -m config window_border_width 2
yabai -m config active_window_border_color 0xf58181ff
yabai -m config normal_window_border_color 0x00555555
yabai -m config insert_feedback_color 0xaad75f5f
yabai -m config split_ratio 0.50

yabai -m config auto_balance on

yabai -m config mouse_modifier fn
yabai -m config mouse_action1 move
yabai -m config mouse_action2 resize

general space settings

yabai -m config layout bsp # or float

yabai -m config top_padding 0
yabai -m config bottom_padding 0
yabai -m config left_padding 0
yabai -m config right_padding 0
yabai -m config window_gap 5

yabai -m config debug_output on

yabai -m signal --add event=window_deminimized action="$DOTFILES_DIR/mac/bin/statefulwm --focus-window-here" active=yes
yabai -m signal --add event=window_created action="$DOTFILES_DIR/mac/bin/statefulwm --focus-window-here" active=yes
yabai -m signal --add event=application_launched action="$DOTFILES_DIR/mac/bin/statefulwm --focus-window-here" active=yes
yabai -m signal --add event=application_activated action="$DOTFILES_DIR/mac/bin/statefulwm --focus-window-here" active=yes

yabai -m rule --add app="^(IntelliJ IDEA)$" title="^Commit" manage=off
yabai -m rule --add app="^(IntelliJ IDEA)$" title="Settings" manage=off
yabai -m rule --add app="^(IntelliJ IDEA)$" title="Configuration" manage=off
yabai -m rule --add app="^Finder$" manage=off
yabai -m rule --add app="^Raycast$" manage=off
yabai -m rule --add app="^Raycast Preferences$" manage=off

START MANAGED

yabai -m rule --add app="^(IntelliJ IDEA)$" title="^(Preferences)$" manage=off
yabai -m rule --add app="^(IntelliJ IDEA)$" title="^(Edit Configuration Settings)$" manage=off
yabai -m rule --add app="^(System Preferences)$" title="^(System Preferences)$" manage=off
yabai -m rule --add app="^(System Settings)$" title="^(System Settings)$" manage=off
yabai -m rule --add app="^(TextBar)$" title="^(Log in to your PayPal account)$" manage=off
yabai -m rule --add app="^(League of Legends)$" title="^()$" manage=off
yabai -m rule --add app="^(IntelliJ IDEA)$" title="^(dotfiles – skhd.json)$" manage=off

END MANAGED

skhd config
:: default : yabai -m config active_window_border_color 0xf58181ff
:: adjustment @ : yabai -m config active_window_border_color 0xf5f10000 ; osascript /Users/jeremy/code/dotfiles/mac/applescripts/save_layout.scpt &
alt - return ; adjustment
adjustment < escape ; default
adjustment < return ; default
adjustment < up : yabai -m window --swap north
adjustment < k : yabai -m window --swap north
adjustment < down : yabai -m window --swap south
adjustment < j : yabai -m window --swap south
adjustment < left : yabai -m window --swap west
adjustment < h : yabai -m window --swap west
adjustment < right : yabai -m window --swap east
adjustment < l : yabai -m window --swap east
adjustment < shift - up : yabai -m window --resize top:0:-20 || yabai -m window --resize bottom:0:-20
adjustment < shift - k : yabai -m window --resize top:0:-20 || yabai -m window --resize bottom:0:-20
adjustment < shift - down : yabai -m window --resize top:0:20 || yabai -m window --resize bottom:0:20
adjustment < shift - j : yabai -m window --resize top:0:20 || yabai -m window --resize bottom:0:20
adjustment < shift - left : yabai -m window --resize left:-20:0 || yabai -m window --resize right:-20:0
adjustment < shift - h : yabai -m window --resize left:-20:0 || yabai -m window --resize right:-20:0
adjustment < shift - right : yabai -m window --resize right:20:0 || yabai -m window --resize left:20:0
adjustment < shift - l : yabai -m window --resize right:20:0 || yabai -m window --resize left:20:0
alt - o : yabai -m space --rotate 90
alt - g : yabai -m window --toggle float; yabai -m window --grid 4:4:1:1:2:2
alt + ctrl - g : /Users/jeremy/code/dotfiles/mac/bin/statefulwm --toggle-perm-float >> /Users/jeremy/code/dotfiles/py_out.log ; yabai -m window --toggle float
alt - y : /Users/jeremy/code/dotfiles/mac/bin/statefulwm --toggle-layout
alt - b : app="/Applications/Arc.app"; open -a $app --args --new-window
alt - t : app="Terminal"; open -n -a $app
alt - e : app="Code";yabai -m window $(yabai -m query --windows | jq -c 'map(select(.app=="$app").id) | .[0]') --space $(yabai -m query --windows --window | jq -r '.space') || open -a $app
alt - q : yabai -m window --minimize && yabai -m window --focus first
alt - m : yabai -m window --toggle zoom-fullscreen
cmd + ctrl - r : /Users/jeremy/code/dotfiles/mac/bin/compile_skhd DOTFILES_DIR=/Users/jeremy/code/dotfiles HOME=/Users/jeremy UID=502 --skhd-json /Users/jeremy/code/dotfiles/mac/skhd.json > /Users/jeremy/.skhdrc ; skhd --reload; launchctl kickstart -k "gui/502/homebrew.mxcl.yabai"
alt + shift - 0 : yabai -m window --space 10 && yabai -m space --focus 10
alt + shift - 1 : yabai -m window --space 1 && yabai -m space --focus 1
alt + shift - 2 : yabai -m window --space 2 && yabai -m space --focus 2
alt + shift - 3 : yabai -m window --space 3 && yabai -m space --focus 3
alt + shift - 4 : yabai -m window --space 4 && yabai -m space --focus 4
alt + shift - 5 : yabai -m window --space 5 && yabai -m space --focus 5
alt + shift - 6 : yabai -m window --space 6 && yabai -m space --focus 6
alt + shift - 7 : yabai -m window --space 7 && yabai -m space --focus 7
alt + shift - 8 : yabai -m window --space 8 && yabai -m space --focus 8
alt + shift - 9 : yabai -m window --space 9 && yabai -m space --focus 9
alt + ctrl - 0 : yabai -m space 10 && yabai -m space --focus 10
alt + ctrl - 1 : yabai -m space 1 && yabai -m space --focus 1
alt + ctrl - 2 : yabai -m space 2 && yabai -m space --focus 2
alt + ctrl - 3 : yabai -m space 3 && yabai -m space --focus 3
alt + ctrl - 4 : yabai -m space 4 && yabai -m space --focus 4
alt + ctrl - 5 : yabai -m space 5 && yabai -m space --focus 5
alt + ctrl - 6 : yabai -m space 6 && yabai -m space --focus 6
alt + ctrl - 7 : yabai -m space 7 && yabai -m space --focus 7
alt + ctrl - 8 : yabai -m space 8 && yabai -m space --focus 8
alt + ctrl - 9 : yabai -m space 9 && yabai -m space --focus 9
alt + ctrl + shift - 0 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 10)
alt + ctrl + shift - 1 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 1)
alt + ctrl + shift - 2 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 2)
alt + ctrl + shift - 3 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 3)
alt + ctrl + shift - 4 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 4)
alt + ctrl + shift - 5 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 5)
alt + ctrl + shift - 6 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 6)
alt + ctrl + shift - 7 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 7)
alt + ctrl + shift - 8 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 8)
alt + ctrl + shift - 9 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 9)

Any recommendations? I am now a few hours into debugging.

@azinsharaf
Copy link

I have been having some issues with displaying some floating windows after updating to Ventura. They will all appear this way after starting.

image

My attempt to fix:

  1. Uninstall yabai / sudo rm /private/etc/sudoers.d/yabai

  2. Enable System Integrity Protection

  3. Redo all setup instructions again including disabling relevant System Integrity Protections for M1 Mac.

I do have signals setup to focus windows in the current space using a custom script, but even when following the debug output of those scripts, there don't seem to be any obvious errors. This is not an issue if scripting additions are not loaded.

yabai config
#!/usr/bin/env sh



DOTFILES_DIR="/Users/jeremy/code/dotfiles"



yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"

sudo yabai --load-sa



yabai -m config external_bar                 off:45:0

yabai -m config mouse_follows_focus          off

yabai -m config focus_follows_mouse          off



# New window spawns to the right if vertical split, or bottom if horizontal split (opposite first_child)

yabai -m config window_placement             second_child

yabai -m config window_origin_display        focused



yabai -m config window_topmost               on



#yabai -m config window_shadow                float

#yabai -m config window_opacity               on

#yabai -m config window_opacity_duration      0.0

#yabai -m config active_window_opacity        1.0

yabai -m config normal_window_opacity        0.9

yabai -m config window_border                on

yabai -m config window_border_width          2

yabai -m config active_window_border_color   0xf58181ff

yabai -m config normal_window_border_color   0x00555555

yabai -m config insert_feedback_color        0xaad75f5f

yabai -m config split_ratio                  0.50



yabai -m config auto_balance                 on



yabai -m config mouse_modifier               fn

yabai -m config mouse_action1                move

yabai -m config mouse_action2                resize



# general space settings

yabai -m config layout                       bsp  # or float



yabai -m config top_padding                  0

yabai -m config bottom_padding               0

yabai -m config left_padding                 0

yabai -m config right_padding                0

yabai -m config window_gap                   5



yabai -m config debug_output on



yabai -m signal --add event=window_deminimized action="$DOTFILES_DIR/mac/bin/statefulwm --focus-window-here" active=yes

yabai -m signal --add event=window_created action="$DOTFILES_DIR/mac/bin/statefulwm --focus-window-here" active=yes

yabai -m signal --add event=application_launched action="$DOTFILES_DIR/mac/bin/statefulwm --focus-window-here" active=yes

yabai -m signal --add event=application_activated action="$DOTFILES_DIR/mac/bin/statefulwm --focus-window-here" active=yes



yabai -m rule --add app="^(IntelliJ IDEA)$" title="^Commit" manage=off

yabai -m rule --add app="^(IntelliJ IDEA)$" title="Settings" manage=off

yabai -m rule --add app="^(IntelliJ IDEA)$" title="Configuration" manage=off

yabai -m rule --add app="^Finder$" manage=off

yabai -m rule --add app="^Raycast$" manage=off

yabai -m rule --add app="^Raycast Preferences$" manage=off

# START MANAGED

yabai -m rule --add app="^(IntelliJ IDEA)$" title="^(Preferences)$" manage=off

yabai -m rule --add app="^(IntelliJ IDEA)$" title="^(Edit Configuration Settings)$" manage=off

yabai -m rule --add app="^(System Preferences)$" title="^(System Preferences)$" manage=off

yabai -m rule --add app="^(System Settings)$" title="^(System Settings)$" manage=off

yabai -m rule --add app="^(TextBar)$" title="^(Log in to your PayPal account)$" manage=off

yabai -m rule --add app="^(League of Legends)$" title="^()$" manage=off

yabai -m rule --add app="^(IntelliJ IDEA)$" title="^(dotfiles – skhd.json)$" manage=off

# END MANAGED

skhd config
:: default : yabai -m config active_window_border_color 0xf58181ff

:: adjustment @ : yabai -m config active_window_border_color 0xf5f10000 ; osascript /Users/jeremy/code/dotfiles/mac/applescripts/save_layout.scpt &

alt - return ; adjustment

adjustment < escape ; default

adjustment < return ; default

adjustment < up : yabai -m window --swap north

adjustment < k : yabai -m window --swap north

adjustment < down : yabai -m window --swap south

adjustment < j : yabai -m window --swap south

adjustment < left : yabai -m window --swap west

adjustment < h : yabai -m window --swap west

adjustment < right : yabai -m window --swap east

adjustment < l : yabai -m window --swap east

adjustment < shift - up : yabai -m window --resize top:0:-20 || yabai -m window --resize bottom:0:-20

adjustment < shift - k : yabai -m window --resize top:0:-20 || yabai -m window --resize bottom:0:-20

adjustment < shift - down : yabai -m window --resize top:0:20 || yabai -m window --resize bottom:0:20

adjustment < shift - j : yabai -m window --resize top:0:20 || yabai -m window --resize bottom:0:20

adjustment < shift - left : yabai -m window --resize left:-20:0 || yabai -m window --resize right:-20:0

adjustment < shift - h : yabai -m window --resize left:-20:0 || yabai -m window --resize right:-20:0

adjustment < shift - right : yabai -m window --resize right:20:0 || yabai -m window --resize left:20:0

adjustment < shift - l : yabai -m window --resize right:20:0 || yabai -m window --resize left:20:0

alt - o : yabai -m space --rotate 90

alt - g : yabai -m window --toggle float; yabai -m window --grid 4:4:1:1:2:2

alt + ctrl - g : /Users/jeremy/code/dotfiles/mac/bin/statefulwm --toggle-perm-float >> /Users/jeremy/code/dotfiles/py_out.log ; yabai -m window --toggle float

alt - y : /Users/jeremy/code/dotfiles/mac/bin/statefulwm --toggle-layout

alt - b : app="/Applications/Arc.app"; open -a $app --args --new-window

alt - t : app="Terminal"; open -n -a $app

alt - e : app="Code";yabai -m window $(yabai -m query --windows | jq -c 'map(select(.app=="$app").id) | .[0]') --space $(yabai -m query --windows --window | jq -r '.space') || open -a $app

alt - q : yabai -m window --minimize && yabai -m window --focus first

alt - m : yabai -m window --toggle zoom-fullscreen

cmd + ctrl - r : /Users/jeremy/code/dotfiles/mac/bin/compile_skhd DOTFILES_DIR=/Users/jeremy/code/dotfiles HOME=/Users/jeremy UID=502 --skhd-json /Users/jeremy/code/dotfiles/mac/skhd.json > /Users/jeremy/.skhdrc ; skhd --reload; launchctl kickstart -k "gui/502/homebrew.mxcl.yabai"

alt + shift - 0 : yabai -m window --space 10 && yabai -m space --focus 10

alt + shift - 1 : yabai -m window --space 1 && yabai -m space --focus 1

alt + shift - 2 : yabai -m window --space 2 && yabai -m space --focus 2

alt + shift - 3 : yabai -m window --space 3 && yabai -m space --focus 3

alt + shift - 4 : yabai -m window --space 4 && yabai -m space --focus 4

alt + shift - 5 : yabai -m window --space 5 && yabai -m space --focus 5

alt + shift - 6 : yabai -m window --space 6 && yabai -m space --focus 6

alt + shift - 7 : yabai -m window --space 7 && yabai -m space --focus 7

alt + shift - 8 : yabai -m window --space 8 && yabai -m space --focus 8

alt + shift - 9 : yabai -m window --space 9 && yabai -m space --focus 9

alt + ctrl - 0 : yabai -m space 10 && yabai -m space --focus 10

alt + ctrl - 1 : yabai -m space 1 && yabai -m space --focus 1

alt + ctrl - 2 : yabai -m space 2 && yabai -m space --focus 2

alt + ctrl - 3 : yabai -m space 3 && yabai -m space --focus 3

alt + ctrl - 4 : yabai -m space 4 && yabai -m space --focus 4

alt + ctrl - 5 : yabai -m space 5 && yabai -m space --focus 5

alt + ctrl - 6 : yabai -m space 6 && yabai -m space --focus 6

alt + ctrl - 7 : yabai -m space 7 && yabai -m space --focus 7

alt + ctrl - 8 : yabai -m space 8 && yabai -m space --focus 8

alt + ctrl - 9 : yabai -m space 9 && yabai -m space --focus 9

alt + ctrl + shift - 0 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 10)

alt + ctrl + shift - 1 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 1)

alt + ctrl + shift - 2 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 2)

alt + ctrl + shift - 3 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 3)

alt + ctrl + shift - 4 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 4)

alt + ctrl + shift - 5 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 5)

alt + ctrl + shift - 6 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 6)

alt + ctrl + shift - 7 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 7)

alt + ctrl + shift - 8 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 8)

alt + ctrl + shift - 9 : watson stop; watson start $(/Users/jeremy/code/dotfiles/mac/bin/watsonwatson --project-with-num 9)



Any recommendations? I am now a few hours into debugging.

check #1471

@jeremyd85
Copy link

@azinsharaf You are a saint. Issue fixed by adding yabai -m config window_border_blur off to my config. Nothing noticeable changes as a result.

@jcguu95
Copy link

jcguu95 commented Jul 2, 2023

@kkharji

Getting "OS Environment does not allow changing security configuration options. Ensure that system was > booted into Recovery OS via standard use action"

Ventura 13.3.1 (a)

Everything else seems to be working fine

This happened to me and confused me two times. My solution: After getting such complaints, shutdown the computer and do the whole thing again. The second time the computer let me pass :)

@orphaner
Copy link

orphaner commented Aug 3, 2023

hy, I was wondering if v5.0.6 works fine on Ventura 13.5 for Apple Silicon? I would like to update but before make sure yabai will be OK. Thx

@azinsharaf
Copy link

azinsharaf commented Aug 3, 2023

hy, I was wondering if v5.0.6 works fine on Ventura 13.5 for Apple Silicon? I would like to update but before make sure yabai will be OK. Thx

i am using it on 13.5 on M1 Max for couple of days and haven't seen any issues yet.
fyi: it was a fresh install on my machine so i can't comment on the upgrade,

@ysomad
Copy link

ysomad commented Sep 1, 2023

hy, I was wondering if v5.0.6 works fine on Ventura 13.5 for Apple Silicon? I would like to update but before make sure yabai will be OK. Thx

i am using it on 13.5 on M1 Max for couple of days and haven't seen any issues yet. fyi: it was a fresh install on my machine so i can't comment on the upgrade,

is space switching working fine? considering update

@koekeishiya
Copy link
Owner Author

Works fine on Ventura 13.5.1.

@ysomad
Copy link

ysomad commented Sep 1, 2023

Just updated, everything is working as it was in monterey

@conjurernix
Copy link

conjurernix commented Sep 14, 2023

Can't get it to work on Ventura 13.5.2

⚡➜ ~ brew services run skhd
Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /opt/homebrew/opt/skhd/homebrew.mxcl.skhd.plist` exited with 5.
⚡➜ ~ brew services run yabai
Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /opt/homebrew/opt/yabai/homebrew.mxcl.yabai.plist` exited with 5.

Macbook Pro
Apple M2 Max
32GB

@VFXDEN
Copy link

VFXDEN commented Sep 15, 2023

Can't get it to work on Ventura 13.5.2

⚡➜ ~ brew services run skhd
Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /opt/homebrew/opt/skhd/homebrew.mxcl.skhd.plist` exited with 5.
⚡➜ ~ brew services run yabai
Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /opt/homebrew/opt/yabai/homebrew.mxcl.yabai.plist` exited with 5.

Macbook Pro Apple M2 Max 32GB

Use
$ yabai --start-service

@rmGFW
Copy link

rmGFW commented Jan 30, 2024

Something seems to have changed regarding to how window ordering works in the SLSOrderWindow* function family, which makes the animations a bit rough:

animation.mp4
Additionally I have noticed that there is a WindowManager process now, which is probably Apples Stage Manager. The binary for this process resides in /System/Library/CoreServices/WindowManager.app/Contents/MacOS/WindowManager. Maybe there is some benefit looking into this application in more detail to get an idea how apple handles animations etc.

what is your wm , looks so cool

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