koekeishiya / yabai

A tiling window manager for macOS based on binary space partitioning
MIT License
22.48k stars 630 forks source link

Window that is not managed gets partitioned on yabai restart #2307

Open szfkamil opened 1 month ago

szfkamil commented 1 month ago

Windows that are not managed get full-screen'd partitioned when yabai restarts.

The windows are not actually managed (as per rule) after the resize operation that is due to them being treated as tilled windows for a moment.

sudo yabai --load-sa
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa && defaults write com.apple.dock autohide -bool true && defaults write com.apple.dock autohide-delay -float 1000 && defaults write com.apple.dock no-bouncing -bool TRUE && killall Dock"

# Space labels

yabai -m space 1 --label main
yabai -m space 2 --label sm
yabai -m space 3 --label code
yabai -m space 4 --label comms
yabai -m space 5 --label media
yabai -m space 6 --label reading 
yabai -m space 7 --label misc

# Window rules

yabai -m rule --add app="^Todoist$" manage=off space=sm grid=6:6:2:0:2:5
yabai -m rule --add app="^Reminders$" sub-layer=above manage=off space=sm grid=6:6:2:0:2:2
yabai -m rule --add app="^Spotify$" manage=off space=media
yabai -m rule --add app="^Music$" manage=off space=^5 grid=10:10:7:0:3:5
yabai -m rule --add app="^calibre$" manage=off space=reading grid=10:10:4:1:5:8
yabai -m rule --add app="^Reader$" manage=off space=reading grid=10:10:4:1:5:8
opacity=1.0
yabai -m rule --add app="^iTerm2$" manage=off space=code
yabai -m rule --add app="^Notes$" manage=off grid=19:19:0:0:4:11
yabai -m rule --add app="^Visual Studio Code$" space=code
yabai -m rule --add app="^Karabiner-Elements$" manage=off space=code 
yabai -m rule --add app="^Karabiner-EventViewer$" manage=off space=code
yabai -m rule --add app="^Bitwarden$" manage=off space=sm
yabai -m rule --add app="^KiCad$" space=code
yabai -m rule --add app="^Google Chrome$" space=code
yabai -m rule --add app="^Preview$" manage=off
yabai -m rule --add app="^Calendar$" space=comms manage=off
yabai -m rule --add app="^Github Desktop$" space=code
yabai -m rule --add app="^Session$" manage=off space=sm grid=20:20:14:0:4:13
yabai -m rule --add app="^Discord$" manage=off space=comms grid=10:9:5:0:2:8
yabai -m rule --add app="^Tuta Mail$" manage=off space=comms grid=19:19:0:0:7:18
yabai -m rule --add app="^Keyboard Maestro$" space=code
yabai -m rule --add app="^Obsidian$" manage=on opacity=1
yabai -m rule --add app="^Noi$" manage=off sub-layer=above
yabai -m rule --add app="^Clock$" manage=off
yabai -m rule --add app="^Alfred Preferences$" manage=off
yabai -m rule --add app="^Finder$" manage=off #grid=6:6:2:3:2:2 
yabai -m rule --add app="^Photos$" manage=off space=media grid=20:20:4:4:7:10
yabai -m rule --add app="^QuickTime Player$" manage=off 
yabai -m rule --add app="^Weather$" manage=off 
yabai -m rule --add app="^mpv$" manage=off 
yabai -m rule --add app="^Firefox$" manage=off 
yabai -m rule --add app="^Obsidian$" manage=off 
yabai -m rule --add app="^VIA$" manage=off space=code grid=20:20:0:0:5:20 sub-layer=below
yabai -m rule --add app="^(Calculator|Software Update|Dictionary|System Preferences|System Settings|zoom\.us|Photo Booth|Archive Utility|Python|LibreOffice|App Store|Steam|Activity Monitor|System Information|Print Centre|TextEdit|Disk Utility|Finder|System Settings|Numbers)$" manage=off

yabai_config=(

     external_bar                 all:0:0
     focus_follows_mouse          autoraise 
     mouse_follows_focus      on
     window_origin_display        default  
     window_placement             second_child 
     window_zoom_persist          on
     window_shadow                off
     window_animation_duration    0.15            
     window_animation_easing      ease_in_out_quad 
     window_opacity_duration      0.15
     active_window_opacity        1.0 
     normal_window_opacity        0.96
     window_opacity               off
     insert_feedback_color        0xffd75f5f 
     split_ratio                  0.61
     split_type                   auto 
     auto_balance                 off 
     top_padding                  12 
     bottom_padding               12 
     left_padding                 18 
     right_padding                18 
     window_gap                   17
     layout                       bsp
     mouse_modifier               ctrl 
     mouse_action1                resize 
     mouse_action2                move 
     mouse_drop_action            stack 
     menubar_opacity          1.0 
     debug_output                 on 
 )

yabai -m config $(echo ${yabai_config[*]} | tr '=' ' ')

# flash the focused window when focus changes
#yabai -m signal --add label="flash_focus" event="window_focused" action="yabai -m window \$YABAI_WINDOW_ID --opacity 0.1 && sleep $(yabai -m config window_opacity_duration) && yabai -m window \$YABAI_WINDOW_ID --opacity 0.0"

yabai -m rule --apply
echo "yabai configuration loaded..."
evanaze commented 1 month ago

Nice config! Definitely got some ideas from it. What version are you using? I had a similar issue in 7.1.0, but it was fixed when I updated to 7.1.1.

szfkamil commented 1 month ago

When I remove yabai -m rule --apply from end of config, then the windows that have manage=off applied are managed. Only when the rule is present is the rule applied, but only after they resize. Still present on v7.1.1.

szfkamil commented 1 month ago
1:

{
    "index":21,
    "label":"",
    "app":"^Obsidian$",
    "title":"",
    "role":"",
    "subrole":"",
    "display":0,
    "space":0,
    "follow_space":false,
    "opacity":1.0000,
    "manage":true,
    "sticky":null,
    "mouse_follows_focus":null,
    "sub-layer":"",
    "native-fullscreen":null,
    "grid":"0:0:0:0:0:0",
    "scratchpad":"",
    "one-shot":false,
    "flags":"0x00020001"
}

2:

{
    "index":31,
    "label":"",
    "app":"^Obsidian$",
    "title":"",
    "role":"",
    "subrole":"",
    "display":0,
    "space":0,
    "follow_space":false,
    "opacity":0.0000,
    "manage":false,
    "sticky":null,
    "mouse_follows_focus":null,
    "sub-layer":"",
    "native-fullscreen":null,
    "grid":"0:0:0:0:0:0",
    "scratchpad":"",
    "one-shot":false,
    "flags":"0x00000001"
}

These two are the two first instances of mention of Obsidian after —rule —list. The following two are after Obsidian resized.

3:

{
    "index":21,
    "label":"",
    "app":"^Obsidian$",
    "title":"",
    "role":"",
    "subrole":"",
    "display":0,
    "space":0,
    "follow_space":false,
    "opacity":1.0000,
    "manage":true,
    "sticky":null,
    "mouse_follows_focus":null,
    "sub-layer":"",
    "native-fullscreen":null,
    "grid":"0:0:0:0:0:0",
    "scratchpad":"",
    "one-shot":false,
    "flags":"0x00020001"

}

4:

{
    "index":31,
    "label":"",
    "app":"^Obsidian$",
    "title":"",
    "role":"",
    "subrole":"",
    "display":0,
    "space":0,
    "follow_space":false,
    "opacity":0.0000,
    "manage":false,
    "sticky":null,
    "mouse_follows_focus":null,
    "sub-layer":"",
    "native-fullscreen":null,
    "grid":"0:0:0:0:0:0",
    "scratchpad":"",
    "one-shot":false,
    "flags":"0x00000001"
}

Output of debug log:

EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_WINDOW_MOVED:DEBOUNCED Obsidian 72
EVENT_HANDLER_DAEMON_MESSAGE: rule --apply
yabai configuration loaded...
EVENT_HANDLER_APPLICATION_FRONT_SWITCHED: iTerm2 (3796)
EVENT_HANDLER_APPLICATION_FRONT_SWITCHED: iTerm2 has windows that are not yet resolved
EVENT_HANDLER_SPACE_CHANGED: 6
space_manager_refresh_application_windows: Firefox has windows that are not yet resolved
space_manager_refresh_application_windows: Todoist has windows that are not yet resolved
space_manager_refresh_application_windows: TextEdit has windows that are not yet resolved
space_manager_refresh_application_windows: iTerm2 has windows that are not yet resolved
window_manager_create_and_add_window:415 iTerm2 - kamil@Mac-mini:~ (AXWindow:AXStandardWindow:1)
window_manager_create_and_add_window:853 iTerm2 - kamil@Mac-mini:~ (AXWindow:AXStandardWindow:1)
window_manager_create_and_add_window:601 iTerm2 - man yabai (AXWindow:AXStandardWindow:1)
window_manager_create_and_add_window:215 iTerm2 - tail -f /tmp/yabai_$USER.err.log (AXWindow:AXStandardWindow:1)
window_manager_add_existing_application_windows: all windows for iTerm2 are now resolved
EVENT_HANDLER_WINDOW_FOCUSED: iTerm2 415
EVENT_HANDLER_WINDOW_TITLE_CHANGED: iTerm2 415
EVENT_HANDLER_DAEMON_MESSAGE: space --focus 1
EVENT_HANDLER_APPLICATION_FRONT_SWITCHED: Obsidian (1649)
EVENT_HANDLER_SPACE_CHANGED: 4
space_manager_refresh_application_windows: Firefox has windows that are not yet resolved
space_manager_refresh_application_windows: Todoist has windows that are not yet resolved
space_manager_refresh_application_windows: TextEdit has windows that are not yet resolved
EVENT_HANDLER_MOUSE_DOWN: 3422.17, 26.18
EVENT_HANDLER_MOUSE_DRAGGED: 3421.45, 26.53
EVENT_HANDLER_MOUSE_DRAGGED: 3418.13, 27.36
EVENT_HANDLER_MOUSE_DRAGGED: 3402.54, 28.77
EVENT_HANDLER_MOUSE_DRAGGED: 3379.94, 31.79
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3353.84, 33.32
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3329.49, 34.84
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3299.89, 36.39
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3272.04, 36.39
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3240.68, 36.39
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3202.31, 37.99
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3159.73, 37.99
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3124.86, 37.99
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3088.25, 39.58
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3051.64, 39.58
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3013.27, 39.58
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2990.67, 39.58
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2961.07, 41.14
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2934.96, 41.14
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2922.88, 42.48
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2903.79, 42.48
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2895.20, 42.48
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2890.13, 43.49
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2886.80, 43.49
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2886.45, 43.84
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_UP: 2886.45, 43.84
EVENT_HANDLER_MOUSE_DOWN: 2886.45, 43.84
EVENT_HANDLER_MOUSE_DRAGGED: 2886.09, 44.20
EVENT_HANDLER_MOUSE_DRAGGED: 2884.52, 44.72
EVENT_HANDLER_MOUSE_DRAGGED: 2874.18, 49.88
EVENT_HANDLER_MOUSE_DRAGGED: 2863.85, 53.75
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2850.02, 59.29
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2832.39, 66.62
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2814.77, 73.96
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2797.43, 79.74
EVENT_HANDLER_MOUSE_DRAGGED: 2779.80, 87.08
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2758.96, 94.52
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2745.12, 100.05
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2720.55, 109.27
EVENT_HANDLER_WINDOW_RESIZED:DEBOUNCED Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2701.46, 115.14
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2678.86, 122.67
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2649.07, 135.21
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2626.25, 145.86
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2586.94, 162.23
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2539.43, 182.32
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2509.64, 193.30
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2481.79, 202.58
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2443.28, 215.41
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DREVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_DAEMON_MESSAGE: rule --apply
yabai configuration loaded...
EVENT_HANDLER_MOUSE_DOWN: 3422.93, 182.89
EVENT_HANDLER_MOUSE_DRAGGED: 3419.61, 184.55
EVENT_HANDLER_MOUSE_DRAGGED: 3412.78, 187.96
EVENT_HANDLER_MOUSE_DRAGGED: 3383.17, 195.75
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3358.82, 201.84
EVENT_HANDLER_MOUSE_DRAGGED: 3325.71, 208.14
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_WINDOW_RESIZED:DEBOUNCED Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3296.11, 211.26
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3261.25, 212.84
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3229.89, 214.41
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3195.03, 214.41
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3167.18, 212.86
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3127.06, 212.86
EVENT_HANDLER_MOUSE_DRAGGED: 3095.70, 212.86
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_WINDOW_RESIZED:DEBOUNCED Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3064.35, 212.86
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3040.00, 212.86
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3017.40, 212.86
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 3001.81, 212.86
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2994.98, 212.86
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2989.91, 213.87
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_DRAGGED: 2989.20, 213.87
EVENT_HANDLER_WINDOW_RESIZED: Obsidian 72
EVENT_HANDLER_MOUSE_UP: 2989.20, 213.87
EVENT_HANDLER_DAEMON_MESSAGE: space --focus 3
EVENT_HANDLER_APPLICATION_FRONT_SWITCHED: iTerm2 (3796)
EVENT_HANDLER_APPLICATION_FRONT_SWITCHED: iTerm2 has windows that are not yet resolved
window_manager_create_and_add_window:415 iTerm2 - tail -f /tmp/yabai_$USER.out.log (AXWindow:AXStandardWindow:1)
window_manager_create_and_add_window:853 iTerm2 - kamil@Mac-mini:~ (AXWindow:AXStandardWindow:1)
window_manager_create_and_add_window:601 iTerm2 - man yabai (AXWindow:AXStandardWindow:1)
window_manager_create_and_add_window:215 iTerm2 - tail -f /tmp/yabai_$USER.err.log (AXWindow:AXStandardWindow:1)
window_manager_add_existing_application_windows: all windows for iTerm2 are now resolved
EVENT_HANDLER_SPACE_CHANGED: 6
space_manager_refresh_application_windows: Firefox has windows that are not yet resolved
space_manager_refresh_application_windows: Todoist has windows that are not yet resolved
space_manager_refresh_application_windows: TextEdit has windows that are not yet resolved
szfkamil commented 5 days ago

Nice config! Definitely got some ideas from it. What version are you using? I had a similar issue in 7.1.0, but it was fixed when I updated to 7.1.1.

I am still experiencing the issue after updating OS and binary. Would you mind sharing your config? Maybe looking at it can suggest something.