Fmstrat / wintile

Windows 10 window tiling for GNOME
GNU General Public License v3.0
424 stars 54 forks source link

Sometimes stops working (hotkeys) #184

Open Marwe opened 5 months ago

Marwe commented 5 months ago

Sometimes the keyboard shortcuts to move/resize Windows stop working. I found no clear pattern yet, this might be related to hibernate states and/or switching screen setup.

If I switch the extension off, I get at least the standard gnome functionality back working. Restarting gnome.-shell often helps to restore the full functionality. Is there a possibility to reinit the plugin only without reinit of the gnome-shell?

May be unrelated, though I have no idea what changed the settings (may I accidentially while looking at it) I found the settings were weird with one column only, explaining the following behaviour: super-left and -right keys maximize the window (super-top and -down work).

GrylledCheez commented 5 months ago

What version of gnome?

Please provide debug logs of you turning the extension on and then trying to replicate the weird single column behavior.

Marwe commented 5 months ago

This might be related, while it was not working I got the first four lines of messages. Window switching and moving to other virtual desktop or resizing failed. If I recall correctly, ctrl-tab helped to focus correctly and then wintile also worked again (from [WinTile], --- on). I woke up the machine from suspend before, monitor setup did not change (only native laptop display was used). Version of gnome (on Ubuntu 22.04 here) Version: 1:42+3

uniq -c /tmp/wintile.log 
     2 Mär 11 21:52:44 hostname gnome-shell[3734]: JS ERROR: TypeError: scrollView.vscroll is null
     1 Mär 11 21:52:44 hostname gnome-shell[3734]: JS ERROR: Error: Actor not in scroll view
    50 Mär 11 21:53:25 hostname gnome-shell[3734]: JS ERROR: TypeError: scrollView.vscroll is null
     1 Mär 11 21:53:25 hostname gnome-shell[3734]: JS ERROR: Error: Actor not in scroll view
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], ---
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) right ctrl: false
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) curMonitor: {"monitorIndex":0,"x":72,"y":27,"width":1848,"height":1026,"leftEd ge":72,"rightEdge":1920,"topEdge":27,"bottomEdge":1053,"isPortrait":false,"isNotUltrawide":true,"colCount":2,"rowCount":2}
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) monitorToLeft: -1 monitorToRight: -1
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) Already in a tile.
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) {"origFrame":{"x":122,"y":1517,"width":496,"height":349},"row":0,"col":0,"heig ht":2,"width":1}
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) right
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) right - move
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveApp) {"row":0,"col":1,"height":2,"width":1}
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveApp) monitor: {"monitorIndex":0,"x":72,"y":27,"width":1848,"height":1026,"leftEdge": 72,"rightEdge":1920,"topEdge":27,"bottomEdge":1053,"isPortrait":false,"isNotUltrawide":true,"colCount":2,"rowCount":2}
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveAppCoordinates) Moving window to (996,27), size (924,1026) with 0px gaps
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveApp) window wider than anticipated. Shift left by -2 px
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveAppCoordinates) Moving window to (998,27), size (922,1026) with 0px gaps
     1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveApp) window.x: 996 window.y: 27 window.width: 922 window.height: 1025
     1 Mär 11 21:53:59 hostname gnome-shell[3734]: [WinTile], ---
GrylledCheez commented 5 months ago

is this from the Git or from Extensions?

On Mon, Mar 11, 2024, 11:14 Marwe @.***> wrote:

This might be related, while it was not working I got the first four lines of messages. Window switching and moving to other virtual desktop or resizing failed. If I recall correctly, ctrl-tab helped to focus correctly and then wintile also worked again (from [WinTile], --- on). I woke up the machine from suspend before, monitor setup did not change (only native laptop display was used). Version of gnome (on Ubuntu 22.04 here) Version: 1:42+3

uniq -c /tmp/wintile.log 2 Mär 11 21:52:44 hostname gnome-shell[3734]: JS ERROR: TypeError: scrollView.vscroll is null 1 Mär 11 21:52:44 hostname gnome-shell[3734]: JS ERROR: Error: Actor not in scroll view 50 Mär 11 21:53:25 hostname gnome-shell[3734]: JS ERROR: TypeError: scrollView.vscroll is null 1 Mär 11 21:53:25 hostname gnome-shell[3734]: JS ERROR: Error: Actor not in scroll view 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], --- 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) right ctrl: false 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) curMonitor: {"monitorIndex":0,"x":72,"y":27,"width":1848,"height":1026,"leftEd ge":72,"rightEdge":1920,"topEdge":27,"bottomEdge":1053,"isPortrait":false,"isNotUltrawide":true,"colCount":2,"rowCount":2} 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) monitorToLeft: -1 monitorToRight: -1 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) Already in a tile. 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) {"origFrame":{"x":122,"y":1517,"width":496,"height":349},"row":0,"col":0,"heig ht":2,"width":1} 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) right 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], sendMove) right - move 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveApp) {"row":0,"col":1,"height":2,"width":1} 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveApp) monitor: {"monitorIndex":0,"x":72,"y":27,"width":1848,"height":1026,"leftEdge": 72,"rightEdge":1920,"topEdge":27,"bottomEdge":1053,"isPortrait":false,"isNotUltrawide":true,"colCount":2,"rowCount":2} 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveAppCoordinates) Moving window to (996,27), size (924,1026) with 0px gaps 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveApp) window wider than anticipated. Shift left by -2 px 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveAppCoordinates) Moving window to (998,27), size (922,1026) with 0px gaps 1 Mär 11 21:53:58 hostname gnome-shell[3734]: [WinTile], moveApp) window.x: 996 window.y: 27 window.width: 922 window.height: 1025 1 Mär 11 21:53:59 hostname gnome-shell[3734]: [WinTile], ---

— Reply to this email directly, view it on GitHub https://github.com/Fmstrat/wintile/issues/184#issuecomment-1989455796, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQHDU3EDAFJX5IVHO7RMLRDYXYNCZAVCNFSM6AAAAABEM7ZIQSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBZGQ2TKNZZGY . You are receiving this because you commented.Message ID: @.***>

GrylledCheez commented 5 months ago

super-left and -right keys maximize the window in single column mode.

That's intended behavior for all column counts and row counts. It only looks weird because you're using single column mode.

Marwe commented 5 months ago

I installed via extensions.gnome.org and cannot find a version number. The JS errors may be gnome related, not necessarily in the scope of the extension? Though the log is a wintile log...

The single column issue mentioned was only due to an unexpected config change, it does not matter and works as expected. I might accidentally have changed the columns with the arrow keys in the config (my guess).

Marwe commented 5 months ago

Hm, it seems to be related to display changes, plugging USB3/thunderbolt off or on can trigger it (happened multiple times today - without logging). However, I found this alias in my config to quickly reload wintile from cli :)

alias wintile='gnome-extensions disable wintile@nowsci.com;gnome-extensions enable wintile@nowsci.com'
GrylledCheez commented 5 months ago

Wintile doesn't have logging of its own. It sends logs to journald that start with "[Wintile]" , and we are merely grepping for that string in the command on the README.MD

Wintile can't emit anything about the USB.

gazhay commented 4 months ago

I have had intermittent problems over a few years with the hotkeys stopping working.

I used to have a script which ran when I woke the screen to disable and reenable wintile and that fixed it. You could also bind a script to a key for the same purpose

e.g.

gnome-extensions disable wintile@nowsci.com
sleep 2
gnome-extensions enable wintile@nowsci.com
Marwe commented 4 months ago

@gazhay where is and what would be a proper hook? "screen wakeup"/"recover from suspend" or "display setup changed" come to my mind, I did not find one yet, therefore defined the alias.

I lately found in that situation gnome-shell throwing lots of messages into logging with scrollView.vscroll is null and more, the logging alone needed a hell of resources. I have another alias to restart the gnome-shell (works from a terminal session, too): alias gnomeshellrestart='echo "gnome-shell --replace -d" $(w| grep "$USER"| awk "{print \$3}"|grep ":"|head -1)| at now'