mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-01-11 14:40:25 +01:00
Multi monitor layouts is broken partially #62
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @pigmej on GitHub (Nov 22, 2021).
Originally assigned to: @LGUG2Z on GitHub.
I have a feeling that in recent versions the multi monitor setup got a bit broken. I have a feeling that now sometimes layouts are confused and sometimes window appears on wrong monitor etc.
Were there any changes in the code that would touch that logic?
@LGUG2Z commented on GitHub (Nov 22, 2021):
Can you describe the behaviours your are seeing in a little more detail and share the commit that you are currently running from?
This is the only commit that I can think of that might have resulted in unexpected regressions when laying out windows across multiple monitors:
f9785bef55@pigmej commented on GitHub (Nov 23, 2021):
@LGUG2Z hash is
f9785bef558202c42772fef99b9944c342522716which is current master.The behavior that I see seems to vary slightly but mainly window sometimes appear on the other screen just when switching workspaces, and then the layout on the other screen is broken in a way that there is empty space etc.
Looks like komorebi is confused where the window should be and puts it on correct workspace but wrong physical screen.
I'm trying to find a case when it happens that one could reproduce , that's why I asked if there were some changes in the logic that would explain that.
@LGUG2Z commented on GitHub (Nov 23, 2021):
There have been 34 commits since the 0.1.6 release, looking through the list I think that the following commits could have reasonably introduced the sort of regression that you are describing:
d3cb9e07f77fd545ca354a19edaab2If we can narrow down the commit range that the regression may have been introduced in it should make it easier to figure out what has happened. Can you try to reproduce the same behaviour on 0.1.6 and the three commit hashes listed above when you get a moment?
@pigmej commented on GitHub (Nov 23, 2021):
Hey,
I will try to replicate that and bissect it somehow.
@pigmej commented on GitHub (Dec 6, 2021):
I cannot replicate it easily anymore.
Eighter that was some one-off issue or idk. one suspicion would be that something got broken in the state while doing upgrades of komorebi (?)
I think we shall close that issue and wait till I'll be able to replicate it again.
@pigmej commented on GitHub (Dec 16, 2021):
@LGUG2Z I think I found the issue. If you switch workspaces a few times fast enough then komorebi will get confused. That's especially visible with the new "minimize" method.
Basically what happens is, komorebi state mismatches the actual windows state (wrong workspaces for certain windows etc), same happens if you send a window to monitor a few times fast enough.
@JSamir commented on GitHub (Dec 25, 2021):
I also observe this, buth with the latest released version.
What is the best way to gather data for you to analyze this? I've also got some issues where at some point "nothing" works correctly anymore and I need to restart komorebic. So I would like to gather data for such a case and open an issue here.
@LGUG2Z commented on GitHub (Jan 13, 2022):
komorebilistens on two separate threads to incoming commands fromkomorebicand a subset of WinEvents and tries to reconcile a state based on data streams. The order of events coming through thekomorebicdata stream is predictable and knowable since it is based on user input, but the WinEvent data stream is a bit of a black box for me because it's whatever the systems surfaces when PeekMessageW is called in the MessageLoop.The WindowManager object is wrapped in a Mutex to protect the state from simultaneous write access from both of those threads, significantly reducing the possibility of ending up with an invalid state.
Besides this, I'm not really sure how we can further enforce a valid internal window manager state, especially when executing multiple event-heavy operations repeatedly in a short timeframe (such as workspace switching).
Open to ideas on how to address this from people with more experience than I have working with the Windows API.
@LGUG2Z commented on GitHub (Feb 12, 2023):
@pigmej @JSamir Check out this commit, just set
window-hiding-behaviourtocloak:80c98596dd