LGUG2Z / komorebi

A tiling window manager for Windows ๐Ÿ‰
https://lgug2z.github.io/komorebi/
Other
9.46k stars 191 forks source link

[BUG]: `monitor-madness` window snapping does not work after sleep #828

Closed CtByte closed 5 months ago

CtByte commented 5 months ago

Describe the bug I am running the c183503 commit on the monitor-madness branch.

Before sleep: When I grab a window by the title bar and move it a bit, it snaps back into place.

After sleep: When I grab a window by the title bar and move it anywhere, it behaves as if it is in floating mode, but snaps back into its original place when I click an other window.

To Reproduce Steps to reproduce the behavior:

  1. Open 2 windows side by side
  2. Let the computer to go to sleep
  3. Wake the computer from sleep
  4. Move a window by grabbing the title bar
  5. See screenshot 1 (the window does not snap)
  6. Click the 2nd window
  7. See screenshot 2 (the window snaps back into its original place even if it was moved to another monitor)

Expected behavior The window snapping works the same way before and after sleep.


Screenshots screenshot 1

Screenshot 2024-05-16 101849

screenshot 2

Screenshot 2024-05-16 101927

Operating System

OS Name:                   Microsoft Windows 11 Pro
OS Version:                10.0.22631 N/A Build 22631

komorebic check Output

No KOMOREBI_CONFIG_HOME detected, defaulting to C:\Users\{Username}

Looking for configuration files in C:\Users\{Username}

Found komorebi.json; this file can be passed to the start command with the --config flag

Found C:\Users\{Username}\.config\whkdrc; key bindings will be loaded from here when whkd is started, and you can start it automatically using the --whkd flag

Additional context After restarting Komorebi, the snapping works again. It probably has something to do with the komorebic state restore after sleep.

LGUG2Z commented 5 months ago

I noticed this last night and realized that when all monitors go to sleep they all get removed from the state and the re-added on wakw

Added some guards to protect against this case here: https://github.com/LGUG2Z/komorebi/commit/c1835038f18ccba22cb951262d8db4f0b974d8fb

Edit: looks like you're already on that commit - can you share the logs of what happens just before and after sleep and wake?

CtByte commented 5 months ago

Do I somehow need to turn on logging? I do not have a %LOCALAPPDATA%/komorebi/komorebi.log file. This is all I have:

Screenshot 2024-05-16 134121

I know I can use komorebic log in the console to see current logs, but that does not seem to be giving me logs on this build and I feel like that is not what you are asking for anyway

LGUG2Z commented 5 months ago

The plaintext log file should be in Env:TEMP or Env:TMP

LGUG2Z commented 5 months ago

I both forcibly put my machine to sleep and also let it timeout and go to sleep and wasn't able to reproduce this again today.

This is the part in the latest revision which prevents the "main" display from being removed (along with its windows from the state) on sleep:

https://github.com/LGUG2Z/komorebi/blob/c1835038f18ccba22cb951262d8db4f0b974d8fb/komorebi/src/monitor_reconciliator/mod.rs#L176-L179

Can you double check the commit hash you're running? I tend to develop these branches with amends and force pushes, it's possible you may be on an older revision of the same commit. A quick way to get it up to date is git fetch && git reset --hard origin/feature/monitor-madness.

CtByte commented 5 months ago

There could be an issue with my process. Please let me know if there is a quicker way for me to install from command line. I use Visual Studio 2022 for work, so I used that.

This is the branch I built and running right now image

I then run this command:

cargo +stable install --path komorebi --locked; cargo +stable install --path komorebic --locked; cargo +stable install --path komorebic-no-console --locked

Then I copy the files from c:\Users\{UserName}\.cargo\bin\ to c:\Program Files\komorebi\bin\

There is probably a better way :)


And here is the log:

2024-05-16T16:39:09.247848Z  INFO foreground_lock_timeout: komorebi::windows_api: current value of ForegroundLockTimeout is 0
2024-05-16T16:39:09.249839Z  INFO komorebi: creating window manager from static configuration file: C:\Users\{UserName}\komorebi.json
2024-05-16T16:39:09.253176Z  INFO init: komorebi::window_manager: initialising
2024-05-16T16:39:09.316406Z  INFO komorebi::process_command: listening on komorebi.sock
2024-05-16T16:39:09.316930Z  INFO komorebi::process_event: listening
2024-05-16T16:39:09.317108Z  INFO komorebi::workspace_reconciliator: listening
2024-05-16T16:39:09.317297Z  INFO komorebi::border_manager: listening
2024-05-16T16:39:09.320011Z  INFO komorebi::monitor_reconciliator: created hidden window to listen for monitor-related events
2024-05-16T16:39:09.320140Z  INFO komorebi::monitor_reconciliator: listening
2024-05-16T16:39:11.944343Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T16:39:11.954183Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T16:39:11.954356Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T16:39:11.954429Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T16:39:11.954914Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T16:39:12.036432Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T16:39:12.705326Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 2099944 })}: komorebi::process_event: moving with mouse
2024-05-16T16:39:12.706605Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 2099944 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T16:39:12.707323Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=false trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T16:39:12.710574Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T16:39:13.984500Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T16:39:15.902736Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 2099944 })}: komorebi::process_event: moving with mouse
2024-05-16T16:39:15.903579Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 2099944 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T16:39:15.904182Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=false trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T16:39:15.907188Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T16:39:23.340396Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T16:39:23.343862Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T16:39:23.347121Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T16:39:23.348877Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T16:39:23.350463Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T16:39:24.130711Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_monitor{idx=1}: komorebi::window_manager: focusing monitor
2024-05-16T16:39:24.131137Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T16:39:24.132511Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T16:39:24.132752Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T16:39:24.132946Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T16:39:24.133470Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T16:39:28.027756Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 1773894 })}: komorebi::process_event: processed: (hwnd: 1773894)
2024-05-16T16:43:47.317130Z  INFO process_event{event=Show(ObjectNameChange, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: (1) [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T16:43:48.163130Z  INFO process_event{event=Show(ObjectNameChange, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)

Zzzzzz....Zzzzzz

2024-05-16T17:45:23.706210Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 3738440 })}: komorebi::process_event: processed: (hwnd: 3738440)
2024-05-16T17:45:24.077666Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 1511390 })}: komorebi::process_event: processed: (hwnd: 1511390)
2024-05-16T17:45:29.115556Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:29.137086Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:29.138103Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:29.145880Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T17:45:29.156884Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T17:45:32.072065Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:32.075810Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:32.078156Z ERROR komorebi::process_event: there is no container/window
2024-05-16T17:45:32.775353Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T17:45:34.179699Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T17:45:35.536621Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:35.540754Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:35.542100Z ERROR komorebi::process_event: there is no container/window
2024-05-16T17:45:37.681432Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:37.685569Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:37.686767Z ERROR komorebi::process_event: there is no container/window
2024-05-16T17:45:37.752113Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T17:45:38.310188Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T17:45:39.147162Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T17:45:39.639102Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T17:45:40.660454Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:40.662697Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:40.663242Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:40.663462Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T17:45:40.664043Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T17:45:40.765039Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T17:45:41.049147Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T17:45:41.583153Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T17:45:42.235202Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T17:45:43.700335Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:43.705142Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:43.708446Z ERROR komorebi::process_event: there is no container/window
2024-05-16T17:45:44.962338Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:44.966728Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:44.968014Z ERROR komorebi::process_event: there is no container/window
2024-05-16T17:45:46.745350Z ERROR komorebi::process_event: there is no window
2024-05-16T17:45:46.749097Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:46.752965Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:46.753928Z ERROR komorebi::process_event: there is no container/window
2024-05-16T17:45:47.511674Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:47.514625Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:47.516046Z ERROR komorebi::process_event: there is no container/window
2024-05-16T17:45:47.540054Z  INFO komorebi::workspace_reconciliator: running reconciliation
2024-05-16T17:45:47.540618Z  INFO process_event{event=Show(SystemMinimizeEnd, Window { hwnd: 461458 })}: komorebi::process_event: processed: (hwnd: 461458, title: Windows PowerShell, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-16T17:45:47.540817Z  INFO focus_monitor{idx=0}: komorebi::window_manager: focusing monitor
2024-05-16T17:45:47.540956Z  INFO focus_workspace{idx=0}: komorebi::monitor: focusing workspace
2024-05-16T17:45:47.545423Z  INFO focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:47.548895Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:47.552992Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:47.561309Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:47.563600Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T17:45:47.564315Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T17:45:53.781923Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T17:45:56.643258Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T17:45:58.011905Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:58.016514Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:45:58.018555Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:45:58.020000Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T17:45:58.020697Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}: komorebi::process_event: processed: (hwnd: 461458, title: Windows PowerShell, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-16T17:46:03.549707Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:46:03.553348Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:46:03.554203Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:46:03.555091Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T17:46:03.556133Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: *new 2 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T17:46:05.193403Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:46:05.195557Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:46:05.195893Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:46:05.196188Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T17:46:05.197354Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 2099944 })}: komorebi::process_event: processed: (hwnd: 2099944, title: C:\Users\{UserName}\AppData\Local\Temp\komorebi_plaintext.log.2024-05-16 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T17:46:08.072316Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:46:08.076766Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T17:46:08.077491Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T17:46:08.077908Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T17:46:08.079259Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 461458 })}: komorebi::process_event: processed: (hwnd: 461458, title: Windows PowerShell, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-16T17:46:09.990551Z  INFO process_command{Stop}: komorebi::process_command: received stop command, restoring all hidden windows and terminating process
2024-05-16T17:46:09.991243Z  INFO process_command{Stop}:restore_all_windows: komorebi::window_manager: restoring all hidden windows

I moved some windows around before and after the sleep.


I will try to do the git fetch && git reset as well and try to reproduce the issue.

LGUG2Z commented 5 months ago

I've pushed another update which handles suspend/resume notifications separately

I forgot to mention that most of the interesting commits will be in the debug logs, so make sure you are running with RUST_LOG="debug": https://github.com/LGUG2Z/komorebi/blob/master/justfile#L33

EDIT: I'm still working on this so the commit hash is probably gonna be out of date before the time you get around to trying it: e6ce23c4b2e8d594e32e925c57d56685994beca6

CtByte commented 5 months ago

I think I need to learn a thing or two. I can see that you are very active on the monitor reconciliator module.

I will run the git fetch && git reset ... command to make sure that we are on the same version (when I see you are not active for a while ๐Ÿ˜ƒ ), but would you mind please letting me know what I need to do to include debug logs in the in the log files? I know what you mean, but I am not sure what I need to do when I build the branch.

LGUG2Z commented 5 months ago

Ah just make sure the RUST_LOG environment variable is set to debug in the terminal session that you start komorebi from, for example:

$Env:RUST_LOG = "debug"; cargo run --package komorebi - running a dev build with cargo $Env:RUST_LOG = "debug"; komorebic start - running from a release binary as a background process

CtByte commented 5 months ago

I did a quick test while you were not looking ๐Ÿ˜‰

image

2024-05-16T22:08:10.942701Z  INFO foreground_lock_timeout: komorebi::windows_api: current value of ForegroundLockTimeout is 0
2024-05-16T22:08:10.944595Z  INFO komorebi: creating window manager from static configuration file: C:\Users\{UserName}\komorebi.json
2024-05-16T22:08:10.948089Z  INFO init: komorebi::window_manager: initialising
2024-05-16T22:08:11.009487Z  INFO komorebi::process_command: listening on komorebi.sock
2024-05-16T22:08:11.012332Z  INFO komorebi::process_event: listening
2024-05-16T22:08:11.012914Z  INFO komorebi::border_manager: listening
2024-05-16T22:08:11.013118Z  INFO komorebi::workspace_reconciliator: listening
2024-05-16T22:08:11.015101Z  INFO komorebi::monitor_reconciliator: created hidden window to listen for monitor-related events
2024-05-16T22:08:11.015293Z  INFO komorebi::monitor_reconciliator: listening
2024-05-16T22:08:15.557377Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_monitor{idx=1}: komorebi::window_manager: focusing monitor
2024-05-16T22:08:15.557489Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:08:15.564130Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:08:15.564436Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:08:15.564597Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T22:08:15.565337Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T22:08:16.115615Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T22:08:16.127539Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 26414904 })}:should_manage{self=Window { hwnd: 26414904 } event=Some(Show(ObjectShow, Window { hwnd: 26414904 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Show (WinEvent: ObjectShow, Window: (hwnd: 26414904, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-16T22:08:17.194507Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 198962 })}: komorebi::process_event: moving with mouse
2024-05-16T22:08:17.195053Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 198962 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T22:08:17.195528Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=false trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:08:17.198193Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T22:08:17.378009Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 26414904 })}:should_manage{self=Window { hwnd: 26414904 } event=Some(Hide(ObjectHide, Window { hwnd: 26414904 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 26414904)))
2024-05-16T22:08:19.602223Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_monitor{idx=0}: komorebi::window_manager: focusing monitor
2024-05-16T22:08:19.604432Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:08:19.607451Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:08:19.607939Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:08:19.608449Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T22:08:19.609187Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}: komorebi::process_event: processed: (hwnd: 20122180, title: C:\Users\{UserName}\AppData\Local\Temp\komorebi_plaintext.log.2024-05-16 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T22:08:21.052346Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:08:21.054727Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:08:21.055556Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:08:21.056021Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T22:08:21.057004Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}: komorebi::process_event: processed: (hwnd: 20122180, title: C:\Users\{UserName}\AppData\Local\Temp\komorebi_plaintext.log.2024-05-16 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T22:08:32.496998Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 2821386 })}: komorebi::process_event: processed: (hwnd: 2821386)
2024-05-16T22:08:32.514242Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 8587026 })}:should_manage{self=Window { hwnd: 8587026 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 8587026 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 8587026, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-16T22:08:32.516178Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 6096206 })}:should_manage{self=Window { hwnd: 6096206 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 6096206 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Default IME, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 6096206, title: Default IME, exe: explorer.exe, class: IME)))
2024-05-16T22:08:32.517676Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 8587026 })}:should_manage{self=Window { hwnd: 8587026 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 8587026 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 8587026, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-16T22:08:32.518863Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 6096206 })}:should_manage{self=Window { hwnd: 6096206 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 6096206 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 6096206, title: Default IME, exe: explorer.exe, class: IME)))
2024-05-16T22:08:32.522959Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 3804002 })}:should_manage{self=Window { hwnd: 3804002 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 3804002 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 3804002, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:08:32.532701Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 8587026 })}:should_manage{self=Window { hwnd: 8587026 } event=Some(Show(ObjectShow, Window { hwnd: 8587026 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 8587026, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-16T22:08:32.537259Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 3804002 })}:should_manage{self=Window { hwnd: 3804002 } event=Some(Show(ObjectShow, Window { hwnd: 3804002 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 3804002, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:08:32.559445Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 265430 })}:should_manage{self=Window { hwnd: 265430 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 265430 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Windows Default Lock Screen, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 265430, title: Windows Default Lock Screen, exe: LockApp.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-16T22:08:32.560628Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 199896 })}:should_manage{self=Window { hwnd: 199896 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 199896 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 199896, title: Default IME, exe: LockApp.exe, class: IME)))
2024-05-16T22:08:32.561340Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 199778 })}:should_manage{self=Window { hwnd: 199778 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 199778 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: MSCTFIME UI, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 199778, title: MSCTFIME UI, exe: LockApp.exe, class: MSCTFIME UI)))
2024-05-16T22:08:32.748537Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 265430 })}:should_manage{self=Window { hwnd: 265430 } event=Some(FocusChange(SystemForeground, Window { hwnd: 265430 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Windows Default Lock Screen, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 265430, title: Windows Default Lock Screen, exe: LockApp.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-16T22:08:32.871569Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 1704844 })}:should_manage{self=Window { hwnd: 1704844 } event=Some(Show(ObjectShow, Window { hwnd: 1704844 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Show (WinEvent: ObjectShow, Window: (hwnd: 1704844, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-16T22:08:58.907463Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-16T22:08:58.908321Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:08:58.912949Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:08:59.658650Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-16T22:08:59.658968Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:08:59.660643Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:09:03.514769Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 265430 })}:should_manage{self=Window { hwnd: 265430 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 265430 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Windows Default Lock Screen, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 265430, title: Windows Default Lock Screen, exe: LockApp.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-16T22:09:03.516475Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 199896 })}:should_manage{self=Window { hwnd: 199896 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 199896 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Default IME, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 199896, title: Default IME, exe: LockApp.exe, class: IME)))
2024-05-16T22:09:03.518387Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 199778 })}:should_manage{self=Window { hwnd: 199778 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 199778 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: MSCTFIME UI, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 199778, title: MSCTFIME UI, exe: LockApp.exe, class: MSCTFIME UI)))

Zzzz...Zzzz....Zzzz

2024-05-16T22:11:24.145540Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 265430 })}:should_manage{self=Window { hwnd: 265430 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 265430 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Windows Default Lock Screen, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 265430, title: Windows Default Lock Screen, exe: LockApp.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-16T22:11:24.148286Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 199896 })}:should_manage{self=Window { hwnd: 199896 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 199896 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 199896, title: Default IME, exe: LockApp.exe, class: IME)))
2024-05-16T22:11:24.150962Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 199778 })}:should_manage{self=Window { hwnd: 199778 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 199778 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: MSCTFIME UI, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 199778, title: MSCTFIME UI, exe: LockApp.exe, class: MSCTFIME UI)))
2024-05-16T22:11:24.155084Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 265430 })}:should_manage{self=Window { hwnd: 265430 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 265430 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Windows Default Lock Screen, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 265430, title: Windows Default Lock Screen, exe: LockApp.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-16T22:11:24.158411Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 199896 })}:should_manage{self=Window { hwnd: 199896 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 199896 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Default IME, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 199896, title: Default IME, exe: LockApp.exe, class: IME)))
2024-05-16T22:11:24.160438Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 199778 })}:should_manage{self=Window { hwnd: 199778 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 199778 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: MSCTFIME UI, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 199778, title: MSCTFIME UI, exe: LockApp.exe, class: MSCTFIME UI)))
2024-05-16T22:11:24.180525Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 7604040 })}:should_manage{self=Window { hwnd: 7604040 } event=Some(Destroy(ObjectDestroy, Window { hwnd: 7604040 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 7604040, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-16T22:11:24.191767Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 3542082 })}:should_manage{self=Window { hwnd: 3542082 } event=Some(FocusChange(SystemForeground, Window { hwnd: 3542082 }))}: komorebi::window: ignoring (exe: explorer.exe, title: UnlockingWindow, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 3542082, title: UnlockingWindow, exe: explorer.exe, class: LockScreenControllerProxyWindow)))
2024-05-16T22:11:24.369433Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-16T22:11:24.369894Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:11:24.372562Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:11:24.813933Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-16T22:11:24.814658Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:11:24.817365Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:11:28.261234Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 3804002 })}:should_manage{self=Window { hwnd: 3804002 } event=Some(Destroy(ObjectDestroy, Window { hwnd: 3804002 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 3804002, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.280626Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 5181068 })}:should_manage{self=Window { hwnd: 5181068 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 5181068 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 5181068, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.290076Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 5181068 })}:should_manage{self=Window { hwnd: 5181068 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 5181068 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 5181068, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.314822Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 5181068 })}:should_manage{self=Window { hwnd: 5181068 } event=Some(Show(ObjectShow, Window { hwnd: 5181068 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 5181068, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.322616Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 5181068 })}:should_manage{self=Window { hwnd: 5181068 } event=Some(FocusChange(SystemForeground, Window { hwnd: 5181068 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 5181068, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.341391Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 1510822 })}:should_manage{self=Window { hwnd: 1510822 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 1510822 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 1510822, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.351185Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 1510822 })}:should_manage{self=Window { hwnd: 1510822 } event=Some(Show(ObjectShow, Window { hwnd: 1510822 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 1510822, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.361409Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 1510822 })}:should_manage{self=Window { hwnd: 1510822 } event=Some(FocusChange(SystemForeground, Window { hwnd: 1510822 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 1510822, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.428557Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-16T22:11:28.440634Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:11:28.440839Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-16T22:11:28.444310Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:11:28.444570Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:11:28.519689Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:11:28.557706Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 8587026 })}:should_manage{self=Window { hwnd: 8587026 } event=Some(Hide(ObjectHide, Window { hwnd: 8587026 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 8587026, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-16T22:11:28.563482Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 1510822 })}:should_manage{self=Window { hwnd: 1510822 } event=Some(Hide(ObjectHide, Window { hwnd: 1510822 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 1510822, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:11:28.865013Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DISPLAYCHANGE event received with wparam: 32- work area or display resolution changed
2024-05-16T22:11:28.865300Z DEBUG komorebi::monitor_reconciliator: handling resolution/scaling changed notification
2024-05-16T22:11:28.990900Z DEBUG komorebi::monitor_reconciliator: resolutions match, reconciliation not required for DEL4277-5&1047835a&1&UID4352
2024-05-16T22:11:29.132704Z DEBUG komorebi::monitor_reconciliator: resolutions match, reconciliation not required for DEL4279-5&1047835a&1&UID4354
2024-05-16T22:11:29.135040Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 3542082 })}:should_manage{self=Window { hwnd: 3542082 } event=Some(FocusChange(SystemForeground, Window { hwnd: 3542082 }))}: komorebi::window: ignoring (exe: explorer.exe, title: UnlockingWindow, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 3542082, title: UnlockingWindow, exe: explorer.exe, class: LockScreenControllerProxyWindow)))
2024-05-16T22:11:29.452564Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 8587026 })}:should_manage{self=Window { hwnd: 8587026 } event=Some(Destroy(ObjectDestroy, Window { hwnd: 8587026 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 8587026, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-16T22:11:29.481330Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 6096206 })}:should_manage{self=Window { hwnd: 6096206 } event=Some(Destroy(ObjectDestroy, Window { hwnd: 6096206 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Default IME, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 6096206)))
2024-05-16T22:11:29.505384Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:29.531635Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:29.532326Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:29.546567Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T22:11:29.564597Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}: komorebi::process_event: processed: (hwnd: 20122180, title: C:\Users\{UserName}\AppData\Local\Temp\komorebi_plaintext.log.2024-05-16 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T22:11:29.739877Z DEBUG komorebi::monitor_reconciliator::hidden: WM_SETTINGCHANGE event received with SPI_SETWORKAREA - work area changed (probably butterytaskbar or something similar)
2024-05-16T22:11:29.740475Z DEBUG komorebi::monitor_reconciliator: handling work area changed notification
2024-05-16T22:11:29.824690Z DEBUG komorebi::monitor_reconciliator::hidden: WM_SETTINGCHANGE event received with SPI_SETWORKAREA - work area changed (probably butterytaskbar or something similar)
2024-05-16T22:11:29.825034Z DEBUG komorebi::monitor_reconciliator: work areas match, reconciliation not required for DEL4277-5&1047835a&1&UID4352
2024-05-16T22:11:29.841298Z DEBUG komorebi::monitor_reconciliator: work areas match, reconciliation not required for DEL4279-5&1047835a&1&UID4354
2024-05-16T22:11:29.841584Z DEBUG komorebi::monitor_reconciliator: handling work area changed notification
2024-05-16T22:11:29.855722Z DEBUG komorebi::monitor_reconciliator: work areas match, reconciliation not required for DEL4277-5&1047835a&1&UID4352
2024-05-16T22:11:29.874130Z DEBUG komorebi::monitor_reconciliator: work areas match, reconciliation not required for DEL4279-5&1047835a&1&UID4354
2024-05-16T22:11:30.423432Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-16T22:11:30.426104Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:11:30.436098Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:11:30.458376Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-16T22:11:30.464270Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:11:30.471084Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:11:32.366117Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:32.368596Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:32.368882Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:32.369380Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-16T22:11:32.370580Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}: komorebi::process_event: processed: (hwnd: 20122180, title: C:\Users\{UserName}\AppData\Local\Temp\komorebi_plaintext.log.2024-05-16 - Notepad++, exe: notepad++.exe, class: Notepad++)
2024-05-16T22:11:38.589984Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:38.592021Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:38.593456Z ERROR komorebi::process_event: there is no container/window
2024-05-16T22:11:38.659451Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T22:11:38.670833Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 10620228 })}:should_manage{self=Window { hwnd: 10620228 } event=Some(Show(ObjectShow, Window { hwnd: 10620228 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Show (WinEvent: ObjectShow, Window: (hwnd: 10620228, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-16T22:11:39.161409Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T22:11:39.329704Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 10620228 })}:should_manage{self=Window { hwnd: 10620228 } event=Some(Hide(ObjectHide, Window { hwnd: 10620228 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 10620228)))
2024-05-16T22:11:39.819980Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T22:11:39.831323Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 10751300 })}:should_manage{self=Window { hwnd: 10751300 } event=Some(Show(ObjectShow, Window { hwnd: 10751300 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Show (WinEvent: ObjectShow, Window: (hwnd: 10751300, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-16T22:11:40.233450Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T22:11:40.413627Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 10751300 })}:should_manage{self=Window { hwnd: 10751300 } event=Some(Hide(ObjectHide, Window { hwnd: 10751300 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 10751300)))
2024-05-16T22:11:40.866150Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 37883578 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:40.870538Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 37883578 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:40.871674Z ERROR komorebi::process_event: there is no container/window
2024-05-16T22:11:40.875362Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 37883578 })}: komorebi::process_event: processed: (hwnd: 37883578, title: Windows PowerShell, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-16T22:11:40.948942Z ERROR komorebi::process_event: cannot get monitor idx from current position
2024-05-16T22:11:42.722569Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:42.723724Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:42.724562Z ERROR komorebi::process_event: there is no container/window
2024-05-16T22:11:44.311791Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 37883578 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:44.315057Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 37883578 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:44.316100Z ERROR komorebi::process_event: there is no container/window
2024-05-16T22:11:45.189719Z ERROR komorebi::process_event: there is no window
2024-05-16T22:11:45.201015Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:45.202668Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:45.203516Z ERROR komorebi::process_event: there is no container/window
2024-05-16T22:11:46.083668Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 37883578 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:46.086475Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 37883578 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:46.088012Z ERROR komorebi::process_event: there is no container/window
2024-05-16T22:11:46.111626Z  INFO komorebi::workspace_reconciliator: running reconciliation
2024-05-16T22:11:46.112132Z  INFO process_event{event=Show(SystemMinimizeEnd, Window { hwnd: 37883578 })}: komorebi::process_event: processed: (hwnd: 37883578, title: Windows PowerShell, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-16T22:11:46.112356Z  INFO focus_monitor{idx=1}: komorebi::window_manager: focusing monitor
2024-05-16T22:11:46.113035Z  INFO focus_workspace{idx=0}: komorebi::monitor: focusing workspace
2024-05-16T22:11:46.117646Z  INFO focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:46.130274Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:46.131851Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:46.134444Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:46.134692Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}:focus_container{idx=1}: komorebi::workspace: focusing container
2024-05-16T22:11:46.135316Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 198962 })}: komorebi::process_event: processed: (hwnd: 198962, title: [BUG]: `monitor-madness` window snapping does not work after sleep ยท Issue #828 ยท LGUG2Z/komorebi โ€” Mozilla Firefox, exe: firefox.exe, class: MozillaWindowClass)
2024-05-16T22:11:51.648190Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:51.653581Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:51.654390Z ERROR komorebi::process_event: there is no container/window
2024-05-16T22:11:53.065119Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:focus_window{idx=0}: komorebi::container: focusing window
2024-05-16T22:11:53.067301Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 20122180 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:11:53.068141Z ERROR komorebi::process_event: there is no container/window

I still have the same issue. After sleep the snapping does not work.

LGUG2Z commented 5 months ago

Some follow up questions:

Next steps:

LGUG2Z commented 5 months ago

For reference, this is what the process looks like for me with two monitors connected, and selecting Power > Sleep:

================ SUSPEND NOTIFICATION RECEIVED ========================
2024-05-16T22:26:25.463947Z DEBUG komorebi::monitor_reconciliator::hidden: WM_POWERBROADCAST event received - entering suspended state

================ MONITOR RECONCILIATOR DEACTIVATED ========================
2024-05-16T22:26:25.464288Z DEBUG komorebi::monitor_reconciliator: deactivating reconciliator until system resumes from suspended state

2024-05-16T22:26:25.658762Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 659732 })}:should_manage{self=Window { hwnd: 659732 } event=Some(Destroy(ObjectDestroy, Window { h
wnd: 659732 }))}: komorebi::window: ignoring (exe: msedgewebview2.exe, title: ChatGPT, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 659732, title: ChatGPT, exe: msedgewebview2.exe, class: Chrome_WidgetWin_1)))
2024-05-16T22:26:25.715701Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 725268 })}:should_manage{self=Window { hwnd: 725268 } event=Some(Uncloak(ObjectUncloaked, Window
 { hwnd: 725268 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 725268, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-16T22:26:25.717257Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 54071730 })}:should_manage{self=Window { hwnd: 54071730 } event=Some(Uncloak(ObjectUncloaked, Wi
ndow { hwnd: 54071730 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 54071730, title: Default IME, exe: explorer.exe, class: IME)))
2024-05-16T22:26:25.733375Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 4722340 })}:should_manage{self=Window { hwnd: 4722340 } event=Some(Uncloak(ObjectUncloaked, Wind
ow { hwnd: 4722340 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 4722340, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:26:25.759283Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 725268 })}:should_manage{self=Window { hwnd: 725268 } event=Some(Show(ObjectShow, Window { hwnd: 725268 
}))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 725268, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-16T22:26:25.765634Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 4722340 })}:should_manage{self=Window { hwnd: 4722340 } event=Some(Show(ObjectShow, Window { hwnd: 47223
40 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 4722340, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:27:28.541396Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 1444406 })}: komorebi::process_event: processed: (hwnd: 1444406, title: 1e7c652f-1b27-40f3-8521-438070bb1d2b.kiros-edge-hit-tracker-window, exe: logioptionsplus_agent.exe, class: 1e7c652f-1b27-40f3-8521-438070bb1d2b.kiros-edge-hit-tracker-class)

================ RESUME FROM SUSPEND NOTIFICATION RECEIVED ========================
2024-05-16T22:27:31.789508Z DEBUG komorebi::monitor_reconciliator::hidden: WM_POWERBROADCAST event received - resume from suspend

================ MONITOR RECONCILIATOR REACTIVATED ========================
2024-05-16T22:27:31.789820Z DEBUG komorebi::monitor_reconciliator: reactivating reconciliator - system has resumed from suspended state

2024-05-16T22:27:31.811129Z DEBUG komorebi::monitor_reconciliator::hidden: WM_POWERBROADCAST event received - resume from suspend
2024-05-16T22:27:33.675124Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 5117394 })}: komorebi::process_event: processed: (hwnd: 5117394)
2024-05-16T22:27:33.880805Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 132340 })}:should_manage{self=Window { hwnd: 132340 } event=Some(Uncloak(ObjectUncloaked, Window
 { hwnd: 132340 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Windows Default Lock Screen, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 132340, title: Windows Default Lock Screen, exe: LockApp.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-16T22:27:33.882189Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 196640 })}:should_manage{self=Window { hwnd: 196640 } event=Some(Uncloak(ObjectUncloaked, Window
 { hwnd: 196640 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 196640, title: Default IME, exe: LockApp.exe, class: IME)))
2024-05-16T22:27:33.883554Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 66862 })}:should_manage{self=Window { hwnd: 66862 } event=Some(Uncloak(ObjectUncloaked, Window {
 hwnd: 66862 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: MSCTFIME UI, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 66862, title: MSCTFIME UI, exe: LockApp.exe, class: MSCTFIME UI)))
2024-05-16T22:27:33.966947Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 855770 })}: komorebi::process_event: processed: (hwnd: 855770)

================ MONITOR CONNECTION/DECONNECTION NOTIFICATION RECEIVED ========================
2024-05-16T22:27:34.727199Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed

2024-05-16T22:27:34.727502Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:27:34.731331Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required

================ MONITOR CONNECTION/DECONNECTION NOTIFICATION RECEIVED ========================
2024-05-16T22:27:34.733461Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed

2024-05-16T22:27:34.733623Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:27:34.736361Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:27:34.881634Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 724780 })}:should_manage{self=Window { hwnd: 724780 } event=Some(Destroy(ObjectDestroy, Window { h
wnd: 724780 }))}: komorebi::window: ignoring (exe: logioptionsplus_agent.exe, title: Logi_Devio_MainWindow, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 724780, title: Logi_Devio_MainWindow, exe: logioptionsplus_agent.exe, class: Logi_Devio_MainWindow)))
2024-05-16T22:27:35.670597Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 5510610 })}: komorebi::process_event: processed: (hwnd: 5510610)
2024-05-16T22:27:37.405290Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 202336 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-16T22:27:37.413683Z ERROR komorebi::process_event:
   0: there is no container/window

Location:
   komorebi\src\workspace.rs:466

  โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” BACKTRACE โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
                                โ‹ฎ 11 frames hidden โ‹ฎ
  12: komorebi::workspace::impl$1::focus_container_by_window::closure$0<unknown>
      at C:\Users\LGUG2Z\komorebi\komorebi\src\workspace.rs:466
  13: enum2$<core::option::Option<usize> >::ok_or_else<usize,eyre::Report,komorebi::workspace::impl$1::focus_container_by_window::closure_env$0><unknown>
      at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\core\src\option.rs:1231
  14: komorebi::workspace::Workspace::focus_container_by_window<unknown>
      at C:\Users\LGUG2Z\komorebi\komorebi\src\workspace.rs:464
  15: komorebi::window_manager::WindowManager::process_event<unknown>
      at C:\Users\LGUG2Z\komorebi\komorebi\src\process_event.rs:261
  16: komorebi::process_event::listen_for_events::closure$0<unknown>
      at C:\Users\LGUG2Z\komorebi\komorebi\src\process_event.rs:44
  17: core::hint::black_box<unknown>
      at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7\library\core\src\hint.rs:334
                                โ‹ฎ 12 frames hidden โ‹ฎ

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
Warning: SpanTrace capture is Unsupported.
Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
2024-05-16T22:27:43.573979Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 5641682 })}: komorebi::process_event: processed: (hwnd: 5641682)
2024-05-16T22:27:44.014185Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 132340 })}:should_manage{self=Window { hwnd: 132340 } event=Some(Cloak(ObjectCloaked, Window { hwnd:
 132340 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Windows Default Lock Screen, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 132340, title: Windows Default Lock Screen, exe: LockApp.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-16T22:27:44.015663Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 196640 })}:should_manage{self=Window { hwnd: 196640 } event=Some(Cloak(ObjectCloaked, Window { hwnd:
 196640 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: Default IME, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 196640, title: Default IME, exe: LockApp.exe, class: IME)))
2024-05-16T22:27:44.017071Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 66862 })}:should_manage{self=Window { hwnd: 66862 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 6
6862 }))}: komorebi::window: ignoring (exe: LockApp.exe, title: MSCTFIME UI, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 66862, title: MSCTFIME UI, exe: LockApp.exe, class: MSCTFIME UI)))
2024-05-16T22:27:44.021854Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 201356 })}:should_manage{self=Window { hwnd: 201356 } event=Some(FocusChange(SystemForegrou
nd, Window { hwnd: 201356 }))}: komorebi::window: ignoring (exe: explorer.exe, title: UnlockingWindow, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 201356, title: UnlockingWindow, exe: explorer.exe, class: LockScreenControllerProxyWindow)))
2024-05-16T22:27:44.596069Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 595548 })}: komorebi::process_event: processed: (hwnd: 595548)
2024-05-16T22:27:45.032308Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 1578510 })}:should_manage{self=Window { hwnd: 1578510 } event=Some(FocusChange(SystemForegr
ound, Window { hwnd: 1578510 }))}: komorebi::window: ignoring (exe: DDM.exe, title: EAGrid, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 1578510, title: EAGrid, exe: DDM.exe, class: WindowsForms10.Window.8.app.0.5c39d4_r3_ad1)))

================ MONITOR CONNECTION/DECONNECTION NOTIFICATION RECEIVED ========================
2024-05-16T22:27:45.419312Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed

2024-05-16T22:27:45.419576Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:27:45.424649Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required

================ MONITOR CONNECTION/DECONNECTION NOTIFICATION RECEIVED ========================
2024-05-16T22:27:45.430830Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed

2024-05-16T22:27:45.431055Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-16T22:27:45.436313Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-16T22:27:48.532561Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 1839276 })}:should_manage{self=Window { hwnd: 1839276 } event=Some(FocusChange(SystemForegr
ound, Window { hwnd: 1839276 }))}: komorebi::window: ignoring (exe: DDM.exe, title: EAGrid, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 1839276, title: EAGrid, exe: DDM.exe, class: WindowsForms10.Window.8.app.0.5c39d4_r3_ad1)))
2024-05-16T22:27:50.596637Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 725268 })}:should_manage{self=Window { hwnd: 725268 } event=Some(Hide(ObjectHide, Window { hwnd: 725268 
}))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 725268, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-16T22:27:50.598534Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 4722340 })}:should_manage{self=Window { hwnd: 4722340 } event=Some(Hide(ObjectHide, Window { hwnd: 47223
40 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 4722340, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-16T22:27:50.721371Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 71288 })}: komorebi::process_event: processed: (hwnd: 71288)
CtByte commented 5 months ago

I did the second test by WIN + L keys to lock my screen. My monitors turned off in a minute or so and looking at my power settings, my computer did not seem to go to sleep (set to 5 min, and I logged in after about 2 min)

image

I have 2 displays connected to a laptop, 1 USB-C the other via HDMI. I don't use the laptop screen as it is closed.

(I will do the test later, it is time for me to sleep ๐Ÿ˜„ )

Thank you for all the help to debug this. You have been most helpful!

LGUG2Z commented 5 months ago

After sleep: When I grab a window by the title bar and move it anywhere, it behaves as if it is in floating mode, but snaps back into its original place when I click an other window.

I think I missed this part of the original issue post - I was thinking that all of the containers had been removed from the state after restoring from a suspended state, but it sounds like they require a single interaction with any one of them before they are all "snappy" again?

Does running the komorebic retile shortcut also work for making them snappy again?

CtByte commented 5 months ago

I did a test and now it seems like that all I need to do is to lock the screen and wait for my monitors to turn off (disconnect from the laptop)

This is what happened:

  1. Snapping works when I move a window by the title bar. It snaps back into place.
  2. Lock screen, let the monitors go to sleep
  3. After wake the snapping does not work
  4. I trigger the komorebic retile and the window snaps back into place
  5. Move the window by the title bar again, no snapping
  6. Also new windows tile following the layout, but do not snap into place.

Did this change anything regarding the test with komorebic toggle-pause command you asked me to do? I can do that now that I have time.

CtByte commented 5 months ago

This is what I got this time

PS D:\Workspaces\git\LGUG2Z\komorebi> $Env:RUST_LOG = "debug"; cargo run --package komorebi
    Finished dev [unoptimized + debuginfo] target(s) in 0.12s
     Running `target\debug\komorebi.exe`
2024-05-17T17:17:00.753722Z  INFO foreground_lock_timeout: komorebi::windows_api: current value of ForegroundLockTimeout is 0
2024-05-17T17:17:00.755796Z  INFO komorebi: creating window manager from static configuration file: C:\Users\{UserName}\komorebi.json
2024-05-17T17:17:00.762853Z  INFO init: komorebi::window_manager: initialising
2024-05-17T17:17:00.881075Z  INFO komorebi::process_command: listening on komorebi.sock
2024-05-17T17:17:00.884339Z  INFO komorebi::process_event: listening
2024-05-17T17:17:00.884561Z  INFO komorebi::workspace_reconciliator: listening
2024-05-17T17:17:00.884621Z  INFO komorebi::border_manager: listening
2024-05-17T17:17:00.887483Z  INFO komorebi::monitor_reconciliator: created hidden window to listen for monitor-related events
2024-05-17T17:17:00.887793Z  INFO komorebi::monitor_reconciliator: listening
2024-05-17T17:17:08.967567Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 9440954 })}: komorebi::process_event: processed: (hwnd: 9440954, title: Developer PowerShell Visual Studio Community 2022 17.9.34902.65, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-17T17:17:08.972194Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 102109080 })}:should_manage{self=Window { hwnd: 102109080 } event=Some(Show(ObjectShow, Window { hwnd: 102109080 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Show (WinEvent: ObjectShow, Window: (hwnd: 102109080, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-17T17:17:09.616386Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 9440954 })}:focus_monitor{idx=1}: komorebi::window_manager: focusing monitor
2024-05-17T17:17:09.616840Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 9440954 })}: komorebi::process_event: moving with mouse
2024-05-17T17:17:09.616984Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 9440954 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-17T17:17:09.617124Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 9440954 })}:update_focused_workspace{follow_focus=false trigger_focus=false}: komorebi::window_manager: updating
2024-05-17T17:17:09.619267Z  INFO process_event{event=MoveResizeEnd(SystemMoveSizeEnd, Window { hwnd: 9440954 })}: komorebi::process_event: processed: (hwnd: 9440954, title: Developer PowerShell Visual Studio Community 2022 17.9.34902.65, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-17T17:17:09.809894Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 102109080 })}:should_manage{self=Window { hwnd: 102109080 } event=Some(Hide(ObjectHide, Window { hwnd: 102109080 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 102109080, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-17T17:17:14.330480Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 66112 })}:should_manage{self=Window { hwnd: 66112 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 66112 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: Start, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 66112, title: Start, exe: StartMenuExperienceHost.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-17T17:17:14.331417Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 66116 })}:should_manage{self=Window { hwnd: 66116 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 66116 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 66116, title: Default IME, exe: StartMenuExperienceHost.exe, class: IME)))
2024-05-17T17:17:14.332720Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 394566 })}:should_manage{self=Window { hwnd: 394566 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 394566 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: MSCTFIME UI, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 394566, title: MSCTFIME UI, exe: StartMenuExperienceHost.exe, class: MSCTFIME UI)))
2024-05-17T17:17:14.333486Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 855244 })}:should_manage{self=Window { hwnd: 855244 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 855244 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: PopupHost, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 855244, title: PopupHost, exe: StartMenuExperienceHost.exe, class: Xaml_WindowedPopupClass)))
2024-05-17T17:17:14.334526Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 153947208 })}:should_manage{self=Window { hwnd: 153947208 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 153947208 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: PopupHost, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 153947208, title: PopupHost, exe: StartMenuExperienceHost.exe, class: Xaml_WindowedPopupClass)))
2024-05-17T17:17:14.336161Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 131634 })}:should_manage{self=Window { hwnd: 131634 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 131634 }))}: komorebi::window: ignoring (exe: SearchHost.exe, title: Search, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 131634, title: Search, exe: SearchHost.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-17T17:17:14.337151Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 66100 })}:should_manage{self=Window { hwnd: 66100 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 66100 }))}: komorebi::window: ignoring (exe: SearchHost.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 66100, title: Default IME, exe: SearchHost.exe, class: IME)))
2024-05-17T17:17:14.337424Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 329108 })}:should_manage{self=Window { hwnd: 329108 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 329108 }))}: komorebi::window: ignoring (exe: SearchHost.exe, title: MSCTFIME UI, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 329108, title: MSCTFIME UI, exe: SearchHost.exe, class: MSCTFIME UI)))
2024-05-17T17:17:14.337634Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 66194 })}:should_manage{self=Window { hwnd: 66194 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 66194 }))}: komorebi::window: ignoring (exe: SearchHost.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 66194, title: Default IME, exe: SearchHost.exe, class: IME)))
2024-05-17T17:17:14.349992Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 131634 })}:should_manage{self=Window { hwnd: 131634 } event=Some(FocusChange(SystemForeground, Window { hwnd: 131634 }))}: komorebi::window: ignoring (exe: SearchHost.exe, title: Search, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 131634, title: Search, exe: SearchHost.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-17T17:17:15.865599Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 57675710 })}:should_manage{self=Window { hwnd: 57675710 } event=Some(Show(ObjectShow, Window { hwnd: 57675710 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: PopupHost, event: Show (WinEvent: ObjectShow, Window: (hwnd: 57675710, title: PopupHost, exe: StartMenuExperienceHost.exe, class: Xaml_WindowedPopupClass)))
2024-05-17T17:17:16.466524Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 66112 })}:should_manage{self=Window { hwnd: 66112 } event=Some(FocusChange(SystemForeground, Window { hwnd: 66112 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: Start, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 66112, title: Start, exe: StartMenuExperienceHost.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-17T17:17:16.472174Z DEBUG process_event{event=MouseCapture(SystemCaptureStart, Window { hwnd: 66112 })}:should_manage{self=Window { hwnd: 66112 } event=Some(MouseCapture(SystemCaptureStart, Window { hwnd: 66112 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: Start, event: MouseCapture (WinEvent: SystemCaptureStart, Window: (hwnd: 66112, title: Start, exe: StartMenuExperienceHost.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-17T17:17:16.544464Z DEBUG process_event{event=MouseCapture(SystemCaptureEnd, Window { hwnd: 66112 })}:should_manage{self=Window { hwnd: 66112 } event=Some(MouseCapture(SystemCaptureEnd, Window { hwnd: 66112 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: Start, event: MouseCapture (WinEvent: SystemCaptureEnd, Window: (hwnd: 66112, title: Start, exe: StartMenuExperienceHost.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-17T17:17:16.553020Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 855244 })}:should_manage{self=Window { hwnd: 855244 } event=Some(Show(ObjectShow, Window { hwnd: 855244 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: PopupHost, event: Show (WinEvent: ObjectShow, Window: (hwnd: 855244, title: PopupHost, exe: StartMenuExperienceHost.exe, class: Xaml_WindowedPopupClass)))
2024-05-17T17:17:16.675876Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 57675710 })}:should_manage{self=Window { hwnd: 57675710 } event=Some(Hide(ObjectHide, Window { hwnd: 57675710 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: PopupHost, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 57675710, title: PopupHost)))
2024-05-17T17:17:18.260612Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 57741246 })}:should_manage{self=Window { hwnd: 57741246 } event=Some(Show(ObjectShow, Window { hwnd: 57741246 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: PopupHost, event: Show (WinEvent: ObjectShow, Window: (hwnd: 57741246, title: PopupHost, exe: StartMenuExperienceHost.exe, class: Xaml_WindowedPopupClass)))
2024-05-17T17:17:20.776574Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 855244 })}:should_manage{self=Window { hwnd: 855244 } event=Some(Hide(ObjectHide, Window { hwnd: 855244 }))}: komorebi::window: ignoring (exe: StartMenuExperienceHost.exe, title: PopupHost, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 855244, title: PopupHost, exe: StartMenuExperienceHost.exe, class: Xaml_WindowedPopupClass)))
2024-05-17T17:17:21.390982Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 725552 })}:should_manage{self=Window { hwnd: 725552 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 725552 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 725552, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-17T17:17:21.392730Z DEBUG process_event{event=Cloak(ObjectCloaked, Window { hwnd: 18026370 })}:should_manage{self=Window { hwnd: 18026370 } event=Some(Cloak(ObjectCloaked, Window { hwnd: 18026370 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Default IME, event: Cloak (WinEvent: ObjectCloaked, Window: (hwnd: 18026370, title: Default IME, exe: explorer.exe, class: IME)))
2024-05-17T17:17:21.395790Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 725552 })}:should_manage{self=Window { hwnd: 725552 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 725552 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 725552, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-17T17:17:21.397882Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 18026370 })}:should_manage{self=Window { hwnd: 18026370 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 18026370 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Default IME, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 18026370, title: Default IME, exe: explorer.exe, class: IME)))
2024-05-17T17:17:21.402400Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 135402 })}:should_manage{self=Window { hwnd: 135402 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 135402 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 135402, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:17:21.413887Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 725552 })}:should_manage{self=Window { hwnd: 725552 } event=Some(Show(ObjectShow, Window { hwnd: 725552 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 725552, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-17T17:17:21.417701Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 135402 })}:should_manage{self=Window { hwnd: 135402 } event=Some(Show(ObjectShow, Window { hwnd: 135402 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 135402, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:17:21.554912Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:17:21.555506Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:17:21.559275Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:17:21.559942Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:17:21.560107Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:17:21.562822Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:17:21.888470Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 200932 })}:should_manage{self=Window { hwnd: 200932 } event=Some(Show(ObjectShow, Window { hwnd: 200932 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Show (WinEvent: ObjectShow, Window: (hwnd: 200932, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-17T17:17:22.037143Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:17:22.037511Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:17:22.040093Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:17:22.047911Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:17:22.048139Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:17:22.052249Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required

Power > Sleep: Zzzz...Zzzzz

2024-05-17T17:20:15.859792Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 200932 })}:should_manage{self=Window { hwnd: 200932 } event=Some(Hide(ObjectHide, Window { hwnd: 200932 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 200932, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-17T17:20:15.861085Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 200932 })}:should_manage{self=Window { hwnd: 200932 } event=Some(Destroy(ObjectDestroy, Window { hwnd: 200932 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 200932, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-17T17:20:15.865148Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:20:15.865395Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:20:15.865701Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:20:15.868606Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:20:15.868813Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:20:15.872221Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:20:15.886677Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 135392 })}: komorebi::process_event: processed: (hwnd: 135392)
2024-05-17T17:20:15.902098Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 14356260 })}:should_manage{self=Window { hwnd: 14356260 } event=Some(FocusChange(SystemForeground, Window { hwnd: 14356260 }))}: komorebi::window: ignoring (exe: explorer.exe, title: UnlockingWindow, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 14356260, title: UnlockingWindow, exe: explorer.exe, class: LockScreenControllerProxyWindow)))
2024-05-17T17:20:19.545025Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 135402 })}:should_manage{self=Window { hwnd: 135402 } event=Some(Destroy(ObjectDestroy, Window { hwnd: 135402 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 135402, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:19.565694Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 266400 })}:should_manage{self=Window { hwnd: 266400 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 266400 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 266400, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:19.569873Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 266400 })}:should_manage{self=Window { hwnd: 266400 } event=Some(Show(ObjectShow, Window { hwnd: 266400 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 266400, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:19.571599Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 266400 })}:should_manage{self=Window { hwnd: 266400 } event=Some(FocusChange(SystemForeground, Window { hwnd: 266400 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 266400, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:19.646425Z DEBUG process_event{event=Uncloak(ObjectUncloaked, Window { hwnd: 987276 })}:should_manage{self=Window { hwnd: 987276 } event=Some(Uncloak(ObjectUncloaked, Window { hwnd: 987276 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Uncloak (WinEvent: ObjectUncloaked, Window: (hwnd: 987276, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:19.650408Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 987276 })}:should_manage{self=Window { hwnd: 987276 } event=Some(Show(ObjectShow, Window { hwnd: 987276 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Show (WinEvent: ObjectShow, Window: (hwnd: 987276, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:19.653315Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 987276 })}:should_manage{self=Window { hwnd: 987276 } event=Some(FocusChange(SystemForeground, Window { hwnd: 987276 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 987276, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:19.660516Z DEBUG process_event{event=Destroy(ObjectDestroy, Window { hwnd: 266400 })}:should_manage{self=Window { hwnd: 266400 } event=Some(Destroy(ObjectDestroy, Window { hwnd: 266400 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Destroy (WinEvent: ObjectDestroy, Window: (hwnd: 266400, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:20.112029Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 725552 })}:should_manage{self=Window { hwnd: 725552 } event=Some(Hide(ObjectHide, Window { hwnd: 725552 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Backstop Window, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 725552, title: Backstop Window, exe: explorer.exe, class: LockScreenBackstopFrame)))
2024-05-17T17:20:20.139864Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 987276 })}:should_manage{self=Window { hwnd: 987276 } event=Some(Hide(ObjectHide, Window { hwnd: 987276 }))}: komorebi::window: ignoring (exe: explorer.exe, title: Input Occlusion Window, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 987276, title: Input Occlusion Window, exe: explorer.exe, class: LockScreenInputOcclusionFrame)))
2024-05-17T17:20:20.220648Z DEBUG komorebi::monitor_reconciliator::hidden: WM_SETTINGCHANGE event received with SPI_SETWORKAREA - work area changed (probably butterytaskbar or something similar)
2024-05-17T17:20:20.220934Z DEBUG komorebi::monitor_reconciliator: handling work area changed notification
2024-05-17T17:20:20.240101Z DEBUG komorebi::monitor_reconciliator::hidden: WM_SETTINGCHANGE event received with SPI_SETWORKAREA - work area changed (probably butterytaskbar or something similar)
2024-05-17T17:20:20.250970Z DEBUG komorebi::monitor_reconciliator: work areas match, reconciliation not required for DEL4277-5&1047835a&1&UID4352
2024-05-17T17:20:20.273925Z DEBUG komorebi::monitor_reconciliator: work areas match, reconciliation not required for DEL4279-5&1047835a&1&UID4354
2024-05-17T17:20:20.274164Z DEBUG komorebi::monitor_reconciliator: handling work area changed notification
2024-05-17T17:20:20.296989Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DISPLAYCHANGE event received with wparam: 32- work area or display resolution changed
2024-05-17T17:20:20.304846Z DEBUG komorebi::monitor_reconciliator: work areas match, reconciliation not required for DEL4277-5&1047835a&1&UID4352
2024-05-17T17:20:20.317472Z DEBUG komorebi::monitor_reconciliator: work areas match, reconciliation not required for DEL4279-5&1047835a&1&UID4354
2024-05-17T17:20:20.319753Z DEBUG komorebi::monitor_reconciliator: handling resolution/scaling changed notification
2024-05-17T17:20:20.342039Z DEBUG komorebi::monitor_reconciliator: resolutions match, reconciliation not required for DEL4277-5&1047835a&1&UID4352
2024-05-17T17:20:20.354375Z DEBUG komorebi::monitor_reconciliator: resolutions match, reconciliation not required for DEL4279-5&1047835a&1&UID4354
2024-05-17T17:20:20.365680Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 266596 })}: komorebi::process_event: processed: (hwnd: 266596)
2024-05-17T17:20:20.367140Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 14356260 })}:should_manage{self=Window { hwnd: 14356260 } event=Some(FocusChange(SystemForeground, Window { hwnd: 14356260 }))}: komorebi::window: ignoring (exe: explorer.exe, title: UnlockingWindow, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 14356260, title: UnlockingWindow, exe: explorer.exe, class: LockScreenControllerProxyWindow)))
2024-05-17T17:20:20.677703Z  INFO process_event{event=Destroy(ObjectDestroy, Window { hwnd: 528476 })}: komorebi::process_event: processed: (hwnd: 528476, title: DpiTrackingWindow, exe: devenv.exe, class: Static)
2024-05-17T17:20:21.209509Z DEBUG process_event{event=FocusChange(SystemForeground, Window { hwnd: 131634 })}:should_manage{self=Window { hwnd: 131634 } event=Some(FocusChange(SystemForeground, Window { hwnd: 131634 }))}: komorebi::window: ignoring (exe: SearchHost.exe, title: Search, event: FocusChange (WinEvent: SystemForeground, Window: (hwnd: 131634, title: Search, exe: SearchHost.exe, class: Windows.UI.Core.CoreWindow)))
2024-05-17T17:20:21.850898Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:20:21.851078Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:20:21.853111Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:20:21.872472Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:20:21.872708Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:20:21.875084Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:20:21.924568Z  INFO process_command{TogglePause}: komorebi::process_command: pausing

2024-05-17T17:20:21.925634Z  INFO process_command{TogglePause}: komorebi::process_command: processed
2024-05-17T17:20:24.542279Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:20:24.542710Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:20:24.545028Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:20:26.482031Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:20:26.482327Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:20:26.483913Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:20:26.820995Z DEBUG komorebi::monitor_reconciliator::hidden: WM_DEVICECHANGE event received with DBT_DEVNODES_CHANGED - display added or removed
2024-05-17T17:20:26.821899Z DEBUG komorebi::monitor_reconciliator: handling display connection change notification
2024-05-17T17:20:26.823955Z DEBUG komorebi::monitor_reconciliator: monitor counts match, reconciliation not required
2024-05-17T17:20:43.876749Z  INFO process_command{State}: komorebi::process_command: replying to state
2024-05-17T17:20:43.877195Z  INFO process_command{State}: komorebi::process_command: replying to state done
2024-05-17T17:20:43.877613Z  INFO process_command{State}: komorebi::process_command: processed
2024-05-17T17:21:13.605533Z  INFO process_command{TogglePause}: komorebi::process_command: resuming

2024-05-17T17:21:13.607069Z  INFO process_command{TogglePause}: komorebi::process_command: processed
2024-05-17T17:21:19.880355Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 9440954 })}:focus_window{idx=0}:
 komorebi::container: focusing window
2024-05-17T17:21:19.891629Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 9440954 })}:update_focused_workspace{follow_focus=true trigger_focus=false}: komorebi::window_manager: updating
2024-05-17T17:21:19.892019Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 9440954 })}:focus_window{idx=0}:
 komorebi::container: focusing window
2024-05-17T17:21:19.892182Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 9440954 })}:focus_container{idx=0}: komorebi::workspace: focusing container
2024-05-17T17:21:19.893236Z  INFO process_event{event=FocusChange(SystemForeground, Window { hwnd: 9440954 })}: komorebi::process_event: processed: (hwnd: 9440954, title: Developer PowerShell Visual Studio Community 2022 17.9.34902.65, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-17T17:21:20.399803Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 9440954 })}: komorebi::process_event: processed: (hwnd: 9440954, title: Developer PowerShell Visual Studio Community 2022 17.9.34902.65, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-17T17:21:20.406699Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 397470 })}:should_manage{self=Window { hwnd: 397470 } event=Some(Show(ObjectShow, Window { hwnd: 397470 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Show (WinEvent: ObjectShow, Window: (hwnd: 397470, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-17T17:21:21.133407Z ERROR komorebi::process_event:
   0: cannot get monitor idx from current position

Location:
   komorebi\src\process_event.rs:403

  โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” BACKTRACE โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
                                โ‹ฎ 11 frames hidden โ‹ฎ
  12: komorebi::process_event::impl$0::process_event::closure$6<unknown>
      at D:\Workspaces\git\LGUG2Z\komorebi\komorebi\src\process_event.rs:403
  13: enum2$<core::option::Option<usize> >::ok_or_else<usize,eyre::Report,komorebi::process_event::impl$0::process_event::closure_env$6><unknown>
      at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97\library\core\src\option.rs:1231
  14: komorebi::window_manager::WindowManager::process_event<unknown>
      at D:\Workspaces\git\LGUG2Z\komorebi\komorebi\src\process_event.rs:401
  15: komorebi::process_event::listen_for_events::closure$0<unknown>
      at D:\Workspaces\git\LGUG2Z\komorebi\komorebi\src\process_event.rs:47
  16: core::hint::black_box<unknown>
      at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97\library\core\src\hint.rs:334
                                โ‹ฎ 12 frames hidden โ‹ฎ

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
Warning: SpanTrace capture is Unsupported.
Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
2024-05-17T17:21:21.323483Z DEBUG process_event{event=Hide(ObjectHide, Window { hwnd: 397470 })}:should_manage{self=Window { hwnd: 397470 } event=Some(Hide(ObjectHide, Window { hwnd: 397470 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Hide (WinEvent: ObjectHide, Window: (hwnd: 397470)))
2024-05-17T17:21:29.216005Z  INFO process_command{Retile}: komorebi::border_manager: purging known borders: []
2024-05-17T17:21:29.218531Z  INFO process_command{Retile}: komorebi::process_command: processed
2024-05-17T17:21:43.507608Z  INFO process_event{event=MoveResizeStart(SystemMoveSizeStart, Window { hwnd: 9440954 })}: komorebi::process_event: processed: (hwnd: 9440954, title: Developer PowerShell Visual Studio Community 2022 17.9.34902.65, exe: WindowsTerminal.exe, class: CASCADIA_HOSTING_WINDOW_CLASS)
2024-05-17T17:21:43.508897Z DEBUG process_event{event=Show(ObjectShow, Window { hwnd: 4720766 })}:should_manage{self=Window { hwnd: 4720766 } event=Some(Show(ObjectShow, Window { hwnd: 4720766 }))}: komorebi::window: ignoring (exe: explorer.exe, title: DesktopWindowXamlSource, event: Show (WinEvent: ObjectShow, Window: (hwnd: 4720766, title: DesktopWindowXamlSource, exe: explorer.exe, class: Windows.UI.Composition.DesktopWindowContentBridge)))
2024-05-17T17:21:44.070647Z ERROR komorebi::process_event:
   0: cannot get monitor idx from current position

Location:
   komorebi\src\process_event.rs:403

  โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” BACKTRACE โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
                                โ‹ฎ 11 frames hidden โ‹ฎ
  12: komorebi::process_event::impl$0::process_event::closure$6<unknown>
      at D:\Workspaces\git\LGUG2Z\komorebi\komorebi\src\process_event.rs:403
  13: enum2$<core::option::Option<usize> >::ok_or_else<usize,eyre::Report,komorebi::process_event::impl$0::process_event::closure_env$6><unknown>
      at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97\library\core\src\option.rs:1231
  14: komorebi::window_manager::WindowManager::process_event<unknown>
      at D:\Workspaces\git\LGUG2Z\komorebi\komorebi\src\process_event.rs:401
  15: komorebi::process_event::listen_for_events::closure$0<unknown>
      at D:\Workspaces\git\LGUG2Z\komorebi\komorebi\src\process_event.rs:47
  16: core::hint::black_box<unknown>
      at /rustc/7cf61ebde7b22796c69757901dd346d0fe70bd97\library\core\src\hint.rs:334
                                โ‹ฎ 12 frames hidden โ‹ฎ

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
Warning: SpanTrace capture is Unsupported.
Ensure that you've setup a tracing-error ErrorLayer and the semver versions are compatible
2024-05-17T17:21:46.631277Z  INFO process_command{Retile}: komorebi::border_manager: purging known borders: []
2024-05-17T17:21:46.633449Z  INFO process_command{Retile}: komorebi::process_command: processed
2024-05-17T17:21:57.800435Z ERROR komorebi: received ctrl-c, restoring all hidden windows and terminating process
2024-05-17T17:21:57.800742Z  INFO restore_all_windows: komorebi::window_manager: restoring all hidden windows
error: process didn't exit successfully: `target\debug\komorebi.exe` (exit code: 130)

I dont have the WM_POWERBROADCAST event received in my logs and I get a different error when I move a window by the title bar.

Does this log tell you something useful?

LGUG2Z commented 5 months ago

https://github.com/LGUG2Z/komorebi/blob/68461619ede7c045140a7886b4b3aba6857a28e7/komorebi/src/window_manager.rs#L2208:L2218

I think this comes down to the displays having different hmonitor values assigned after the lock/unlock suspend/resume cycles - this will probably need some refactoring to make comparisons against the hardware device id ๐Ÿค”

CtByte commented 5 months ago

I see, this would also explain why my workspaces are sometimes swapped around as I mentioned here #803

Could this be prevented if we use the monitor name? if there is a check on resume and identify monitors by the name specified in the setting I suggest in that other issue, then you can update the hmonitor value to the new one. I know that this is not ideal, but perhaps it gives an idea to fix this.

The komorebic state is correct on resume, I have the correct containers with the windows, just without snapping

LGUG2Z commented 5 months ago

Your question brings me to another question: Are you using display_index_preferences already to try to assign monitor configurations to physical displays? This should do all those resume checks you're talking about

I don't think a named monitor configuration is going to be coming in the short term because it's so different to the list-based Win32 APIs for finding monitor information, it will introduce more issues than it will solve

CtByte commented 5 months ago

I dont use the display_index_preferences setting. This is all I have:

{
  "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.22/schema.json",
  "app_specific_configuration_path": "$Env:USERPROFILE/applications.yaml",
  "window_hiding_behaviour": "Cloak",
  "unmanaged_window_operation_behaviour": "Op",
  "cross_monitor_move_behaviour": "Insert",
  "default_workspace_padding": 5,
  "default_container_padding": 5,
  "border_padding": 5,
  "border_offset": -1,
  "active_window_border": false,
  "active_window_border_style": "Rounded",
  "active_window_border_colours": {
    "single": "#42a5f5",
    "stack": "#00a542",
    "monocle": "#ff3399"
  },
  "stackbar": {
    "height": 40,
    "label": "Title",
    "mode": "OnStack",
    "tabs": {
      "width": 300,
      "focused_text": "#bfaa69",
      "unfocused_text": "#f2bdf3",
      "background": "#121826"
    }
  },
  "global_work_area_offset":
  {
    "bottom": 45,
    "left": 0,
    "right": 0,
    "top": 45
  },
  "monitors": [
    {
      "workspaces": [
        { "name": "P1", "layout": "UltrawideVerticalStack" },
        { "name": "P2", "layout": "UltrawideVerticalStack" },
        { "name": "P3", "layout": "BSP" }
      ]
    },
    {
      "workspaces": [
        { "name": "W1", "layout": "UltrawideVerticalStack" },
        { "name": "W2", "layout": "BSP" },
        { "name": "W3", "layout": "BSP" }
      ]
    }
  ],
  "float_rules": [
    ...
  ]
}

I think it is fair enough that the named monitor configuration is not the right solution. I think I will close that.

It seems to me that we would be smarter if I just try to put more debugging into the code and run that, since you cannot reproduce my issue. Do you have any suggestions other than that display_index_preferences function?

LGUG2Z commented 5 months ago

https://github.com/LGUG2Z/komorebi/blob/68461619ede7c045140a7886b4b3aba6857a28e7/komorebi/src/monitor_reconciliator/mod.rs#L240

I think you can try moving this block up above this check:

https://github.com/LGUG2Z/komorebi/blob/68461619ede7c045140a7886b4b3aba6857a28e7/komorebi/src/monitor_reconciliator/mod.rs#L228

This way, upon wake your displays should always have the latest hmonitor handle, even if the full reconciliation process isn't triggered ๐Ÿค”

LGUG2Z commented 5 months ago

I made those changes and some others to handle lock/unlock the same way that suspend/resume are handled here: https://github.com/LGUG2Z/komorebi/commit/a4f4e607df25c8462f7646881298ebdb3c076624

Hopefully this should be enough to get past the error you're seeing in the MoveResizeEnd handler when the hmonitor stored in the state and the hmonitor registered with the system had changed (which is what is preventing the snapping back into place)

CtByte commented 5 months ago

we are snapping! ๐ŸŽ‰

I will do some more testing, then if all good, close this finally.

Thank you!!

CtByte commented 5 months ago

I could not break it again, an other one in the bag!

v0.1.26 will be considerable ๐Ÿš€