diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f49cab0..5bd2de15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - Allow re-applying existing rules to all known windows [#2121](https://github.com/koekeishiya/yabai/issues/2121) - Restore application_activated and application_deactivated signals [#2122](https://github.com/koekeishiya/yabai/issues/2122) - Rules can now be configured to apply *only once* for all known windows [#2123](https://github.com/koekeishiya/yabai/issues/2123) +- Restore system_woke signal [#2124](https://github.com/koekeishiya/yabai/issues/2124) ### Changed - Preserve relative space ordering when moving spaces to other displays [#2114](https://github.com/koekeishiya/yabai/issues/2114) diff --git a/doc/yabai.1 b/doc/yabai.1 index 28c5f777..5707969e 100644 --- a/doc/yabai.1 +++ b/doc/yabai.1 @@ -1052,6 +1052,11 @@ Triggered when mission\-control deactivates. Passes one argument: $YABAI_MISSION_CONTROL_MODE .RE .sp +\fBdock_did_change_pref\fP +.RS 4 +Triggered when the macOS Dock preferences changes. +.RE +.sp \fBdock_did_restart\fP .RS 4 Triggered when Dock.app restarts. @@ -1062,9 +1067,9 @@ Triggered when Dock.app restarts. Triggered when the macOS menubar \fIautohide\fP setting changes. .RE .sp -\fBdock_did_change_pref\fP +\fBsystem_woke\fP .RS 4 -Triggered when the macOS Dock preferences changes. +Triggered when macOS wakes from sleep. .RE .SS "ACTION" .sp diff --git a/doc/yabai.asciidoc b/doc/yabai.asciidoc index e6223a1e..7a59de3e 100644 --- a/doc/yabai.asciidoc +++ b/doc/yabai.asciidoc @@ -737,14 +737,17 @@ EVENT Triggered when mission-control deactivates. + Passes one argument: $YABAI_MISSION_CONTROL_MODE +*dock_did_change_pref*:: + Triggered when the macOS Dock preferences changes. + *dock_did_restart*:: Triggered when Dock.app restarts. *menu_bar_hidden_changed*:: Triggered when the macOS menubar 'autohide' setting changes. -*dock_did_change_pref*:: - Triggered when the macOS Dock preferences changes. +*system_woke*:: + Triggered when macOS wakes from sleep. ACTION ^^^^^^ diff --git a/src/event_loop.c b/src/event_loop.c index 52098fb4..7fcc77d7 100644 --- a/src/event_loop.c +++ b/src/event_loop.c @@ -1360,6 +1360,8 @@ static EVENT_HANDLER(SYSTEM_WOKE) window_manager_set_window_opacity(&g_window_manager, focused_window, g_window_manager.active_window_opacity); window_manager_center_mouse(&g_window_manager, focused_window); } + + event_signal_push(SIGNAL_SYSTEM_WOKE, NULL); } static EVENT_HANDLER(DAEMON_MESSAGE) diff --git a/src/event_signal.h b/src/event_signal.h index 558aa4ea..0e86ae55 100644 --- a/src/event_signal.h +++ b/src/event_signal.h @@ -35,9 +35,11 @@ enum signal_type SIGNAL_MISSION_CONTROL_ENTER, SIGNAL_MISSION_CONTROL_EXIT, + SIGNAL_DOCK_DID_CHANGE_PREF, SIGNAL_DOCK_DID_RESTART, + SIGNAL_MENU_BAR_HIDDEN_CHANGED, - SIGNAL_DOCK_DID_CHANGE_PREF, + SIGNAL_SYSTEM_WOKE, SIGNAL_TYPE_COUNT }; @@ -76,9 +78,11 @@ static const char *signal_type_str[] = [SIGNAL_MISSION_CONTROL_ENTER] = "mission_control_enter", [SIGNAL_MISSION_CONTROL_EXIT] = "mission_control_exit", + [SIGNAL_DOCK_DID_CHANGE_PREF] = "dock_did_change_pref", [SIGNAL_DOCK_DID_RESTART] = "dock_did_restart", + [SIGNAL_MENU_BAR_HIDDEN_CHANGED] = "menu_bar_hidden_changed", - [SIGNAL_DOCK_DID_CHANGE_PREF] = "dock_did_change_pref", + [SIGNAL_SYSTEM_WOKE] = "system_woke", [SIGNAL_TYPE_COUNT] = "signal_type_count" }; diff --git a/src/workspace.m b/src/workspace.m index 17336992..2e79c48d 100644 --- a/src/workspace.m +++ b/src/workspace.m @@ -152,16 +152,16 @@ - (id)init name:NSWorkspaceDidWakeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(didRestartDock:) - name:@"NSApplicationDockDidRestartNotification" - object:nil]; - [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangeMenuBarHiding:) name:@"AppleInterfaceMenuBarHidingChangedNotification" object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(didRestartDock:) + name:@"NSApplicationDockDidRestartNotification" + object:nil]; + [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangeDockPref:) name:@"com.apple.dock.prefchanged" @@ -235,14 +235,14 @@ - (void)didWake:(NSNotification *)notification event_loop_post(&g_event_loop, SYSTEM_WOKE, NULL, 0); } -- (void)didRestartDock:(NSNotification *)notification +- (void)didChangeMenuBarHiding:(NSNotification *)notification { - event_loop_post(&g_event_loop, DOCK_DID_RESTART, NULL, 0); + event_loop_post(&g_event_loop, MENU_BAR_HIDDEN_CHANGED, NULL, 0); } -- (void)didChangeMenuBarHiding:(NSNotification *)notification +- (void)didRestartDock:(NSNotification *)notification { - event_loop_post(&g_event_loop, MENU_BAR_HIDDEN_CHANGED, NULL, 0); + event_loop_post(&g_event_loop, DOCK_DID_RESTART, NULL, 0); } - (void)didChangeDockPref:(NSNotification *)notification