Giter VIP home page Giter VIP logo

Comments (21)

ssokolow avatar ssokolow commented on June 3, 2024

Please copy-paste what quicktile --debug prints to the terminal.

(It'll dump everything relevant to how QuickTile understands the shape of the usable area of your desktop.)

from quicktile.

vitoindelicato avatar vitoindelicato commented on June 3, 2024

Please copy-paste what quicktile --debug prints to the terminal.

(It'll dump everything relevant to how QuickTile understands the shape of the usable area of your desktop.)

DEBUG: Loaded monitor geometry: [Rectangle(x=0, y=0, width=1920, height=1080), Rectangle(x=1920, y=0, width=1920, height=1080)]
DEBUG: Gathered _NET_WM_STRUT_PARTIAL value: [StrutPartial(left=1920, right=0, top=0, bottom=0, left_start_y=0, left_end_y=29, right_start_y=0, right_end_y=0, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0)]
DEBUG: Gathered _NET_WM_STRUT_PARTIAL value: [StrutPartial(left=1920, right=0, top=0, bottom=0, left_start_y=0, left_end_y=29, right_start_y=0, right_end_y=0, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0), StrutPartial(left=0, right=0, top=0, bottom=0, left_start_y=0, left_end_y=0, right_start_y=0, right_end_y=0, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0)]
DEBUG: Usable desktop region calculated as: Region(<Monitors=[Rectangle(x=0, y=0, width=1920, height=1080), Rectangle(x=1920, y=0, width=1920, height=1080)], Struts=[StrutPartial(left=1920, right=0, top=0, bottom=0, left_start_y=0, left_end_y=29, right_start_y=0, right_end_y=0, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0), StrutPartial(left=0, right=0, top=0, bottom=0, left_start_y=0, left_end_y=0, right_start_y=0, right_end_y=0, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0)]>)

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

OK, QuickTile sees two 1920x1080 monitors side-by-side, but your panel reservations look odd.

Am I correct in interpreting that you've got an auto-hiding panel with no reservations on each monitor?

If I'm reading this correctly, it says you've got:

  • A panel on the left edge of the right monitor that reserves no width and is only 29px tall
  • At least one panel somewhere that reserves no space at all (ie. auto-hiding)

Also, what DE are you running? There are known bugs I haven't had time to fix, caused by some DEs not following the specs properly when they expose information about panel reservations. (eg #118 and #117)

from quicktile.

vitoindelicato avatar vitoindelicato commented on June 3, 2024

Am I correct in interpreting that you've got an auto-hiding panel with no reservations on each monitor

Sincerely I'm not able to respond at it, sorry.

Also, what DE are you running?

I'm running Pantheon

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

I'm running Pantheon

elementaryOS?

from quicktile.

vitoindelicato avatar vitoindelicato commented on June 3, 2024

I'm running Pantheon

elementaryOS?

Yup.
I don't know if it's a relevant detail, but on single monitor everything works very well.

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

*nod* Your problem sounds like something I thought I'd fixed, where QuickTile misinterpreted a panel reservation on the left edge of the right monitor or the right edge of the left monitor as reserving an entire monitor because the spec was unclear.

  1. Is it the left monitor or the right monitor QuickTile refuses to tile things to?
  2. Which version of QuickTile are you running and how did you install it?

from quicktile.

vitoindelicato avatar vitoindelicato commented on June 3, 2024
  • Is it the left monitor or the right monitor QuickTile refuses to tile things to?

The problem is on the primary monitor, the left one, when I use that commands the window goes to the second and right monitor, I tried all the commands in the second monitor and there they are working correctly.

2. Which version of QuickTile are you running and how did you install it?

I'm running quicktile v0.4.1, I've installed it with pip3.

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

Yep, that sounds like I didn't fully fix that bug.

If it's interpreting that StrutPartial(left=1920, right=0, top=0, bottom=0, left_start_y=0, left_end_y=29, right_start_y=0, right_end_y=0, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0) as a reservation of the entire left monitor, rather than a zero-width reservation on the left edge of the right monitor, that'd do it.

I'm too tired and burned out do do anything right now, but I'll make a note to test my suspicion about the cause of the bug as soon as I'm feeling better.

(I suspect that it's an off-by-one error where I was too clever and wrote QuickTile to assume that left=1920 means "reserve the entire left monitor and nothing more" rather than "make an empty reservation on the left edge of the right monitor")

from quicktile.

vitoindelicato avatar vitoindelicato commented on June 3, 2024

I'm too tired and burned out do do anything right now, but I'll make a note to test my suspicion about the cause of the bug as soon as I'm feeling better.

Don't worry man, maybe notify me on this thread when you fix it.
Thank you so much for your availability :)
Passing above this problem, quicktile, at least for me, is a game-changer, gg!

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

Don't worry man, maybe notify me on this thread when you fix it.

No worries. I always do.

from quicktile.

mikewebbdev avatar mikewebbdev commented on June 3, 2024

I'm seeing similar behaviour..
DEBUG: Loaded monitor geometry: [Rectangle(x=1920, y=0, width=2560, height=1440), Rectangle(x=0, y=98, width=1920, height=1080)] DEBUG: Usable desktop region calculated as: Region(<Monitors=[Rectangle(x=1920, y=0, width=2560, height=1440), Rectangle(x=0, y=98, width=1920, height=1080)], Struts=[]>)
When I tile a window on my Primary (larger screen physically on the right) to the left, it swaps monitor to the Secondary (smaller screen physically on the left).
Move-to-left still functions correctly on Primary, so can resolve the issue manually with monitor-switch -> move-to-left -> vertical-maximize

from quicktile.

mashtonian avatar mashtonian commented on June 3, 2024

Hi,

I also have this issue, on Elementary OS 6.0

DEBUG: Loaded monitor geometry: [Rectangle(x=1920, y=0, width=1920, height=1080), Rectangle(x=0, y=0, width=1920, height=1080)]
DEBUG: Gathered _NET_WM_STRUT_PARTIAL value: [StrutPartial(left=0, right=1920, top=0, bottom=0, left_start_y=0, left_end_y=0, right_start_y=0, right_end_y=29, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0)]
DEBUG: Gathered _NET_WM_STRUT_PARTIAL value: [StrutPartial(left=0, right=1920, top=0, bottom=0, left_start_y=0, left_end_y=0, right_start_y=0, right_end_y=29, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0), StrutPartial(left=0, right=0, top=0, bottom=0, left_start_y=0, left_end_y=0, right_start_y=0, right_end_y=0, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0)]
DEBUG: Usable desktop region calculated as: Region(<Monitors=[Rectangle(x=1920, y=0, width=1920, height=1080), Rectangle(x=0, y=0, width=1920, height=1080)], Struts=[StrutPartial(left=0, right=1920, top=0, bottom=0, left_start_y=0, left_end_y=0, right_start_y=0, right_end_y=29, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0), StrutPartial(left=0, right=0, top=0, bottom=0, left_start_y=0, left_end_y=0, right_start_y=0, right_end_y=0, top_start_x=0, top_end_x=0, bottom_start_x=0, bottom_end_x=0)]>)

from quicktile.

WillMeakin avatar WillMeakin commented on June 3, 2024

Hacky fix:
Let A=the monitor the windows always switch to, and B=the other monitor
I noticed when A was set as the primary monitor I had no issues, and the issues only occured when B was primary.
I also noticed Ubuntu (X11?) always set A to monitor 1 and B to monitor 2.
I.e. I suspect setting the primary monitor to monitor 2 is the issue.
Solution: Try different ports on your GPU/MoBo until the primary monitor is set to #1
For me my Nvidia GPU always set the HDMI port to 1, and the Display Port as 2. So I put my primary as using HDMI and it fixed it.

I'm running Ubuntu

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

I got your original message in the e-mail and you really should keep this information.

quicktile --debug before the port switch:
DEBUG: Loaded monitor geometry: [Rectangle(x=1920, y=0, width=3440, height=1440), Rectangle(x=0, y=232, width=1920, height=1080)]
DEBUG: Usable desktop region calculated as: Region(<Monitors=[Rectangle(x=1920, y=0, width=3440, height=1440), Rectangle(x=0, y=232, width=1920, height=1080)], Struts=[]>)

quicktile --debug after the port switch:
DEBUG: Loaded monitor geometry: [Rectangle(x=0, y=0, width=1920, height=1080), Rectangle(x=1920, y=0, width=3440, height=1440)]
DEBUG: Usable desktop region calculated as: Region(<Monitors=[Rectangle(x=0, y=0, width=1920, height=1080), Rectangle(x=1920, y=0, width=3440, height=1440)], Struts=[]>)

I'm still trying to get my life in order enough to properly maintain QuickTile, but, given the monitor swapping changed the behaviour, I'll see if I can find time within the next few days to roll what's been posted in this thread into some unit tests and try to at least rule out that the problem is something completely internal to QuickTile, rather than a weird interaction with window managers I haven't had time to spin up a VM of yet.

from quicktile.

WillMeakin avatar WillMeakin commented on June 3, 2024

Sorry about the original message. Turns out that didn't help; I didn't realise changing ports also changed the primary to #1, which solved the issue but meant it was set to the wrong primary, and changing the primary back to #2 still caused the issue. My hacky fix still works though.

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

That's also useful information to have on file though. Could you throw up a copy of the quicktile --debug output with the ports swapped and the primary changed back, just in case I can pull something useful out of it?

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

Also, when you say you're running Ubuntu, which version are we talking about and are you running the default GNOME Shell-based desktop?

...because, if so, I'd also like to see what this spits out:

xprop -root | grep _GTK_WORKAREAS_

(GNOME Shell doesn't expose panel reservations the standard way and, if you're running into this, then you're probably running into another symptom of #117 and I really should try to make time to get a VM set up to test and fix that.)

from quicktile.

WillMeakin avatar WillMeakin commented on June 3, 2024

Okay so it seems my "fix" doesn't actually work. I'm still getting issues despite what number each monitor is assigned.
However it's still interesting that if Monitor A is set as primary it doesn't have the issue, no matter what ports either is plugged into or numbers they're assigned.

Outputs with monitor B as primary (issue exists)

$ quicktile --debug
DEBUG: Loaded monitor geometry: [Rectangle(x=1920, y=0, width=3440, height=1440), Rectangle(x=0, y=188, width=1920, height=1080)]
DEBUG: Usable desktop region calculated as: Region(<Monitors=[Rectangle(x=1920, y=0, width=3440, height=1440), Rectangle(x=0, y=188, width=1920, height=1080)], Struts=[]>)

Outputs with monitor B as primary (issue doesn't exist)

$ quicktile --debug
DEBUG: Loaded monitor geometry: [Rectangle(x=0, y=188, width=1920, height=1080), Rectangle(x=1920, y=0, width=3440, height=1440)]
DEBUG: Usable desktop region calculated as: Region(<Monitors=[Rectangle(x=0, y=188, width=1920, height=1080), Rectangle(x=1920, y=0, width=3440, height=1440)], Struts=[]>)

I want Monitor B (the 3440x1440 in HDMI-0) to be primary.

$ xrandr --current
Screen 0: minimum 8 x 8, current 5360 x 1440, maximum 32767 x 32767
DP-0 connected primary 1920x1080+0+188 (normal left inverted right x axis y axis) 544mm x 303mm
   1920x1080     74.97*+  60.00    59.94    50.00  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1024     60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      70.07    60.00  
   800x600       60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       59.94    59.93  
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected 3440x1440+1920+0 (normal left inverted right x axis y axis) 797mm x 334mm
   3440x1440     60.00*+ 100.00  
   3840x2160     59.94    50.00    29.97  
   2560x1440    120.00  
   1920x1080    119.88    60.00    59.94    50.00  
   1720x1440     60.00  
   1680x1050     59.95  
   1600x1200     60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94    59.93  
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)

Other relevant outputs

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04 LTS
Release:	22.04
Codename:	jammy

$ gnome-shell --version
GNOME Shell 42.1

$ xprop -root | grep _GTK_WORKAREAS_
_GTK_WORKAREAS_D1(CARDINAL) = 0, 215, 1920, 1053, 1920, 0, 3440, 1440
_GTK_WORKAREAS_D0(CARDINAL) = 0, 215, 1920, 1053, 1920, 0, 3440, 1440

I don't know what the y=188 is. I thought maybe the Ubuntu dock (which I have autohiding at the bottom), but even if I change it to only appear on monitor B it's still y=188 on monitor A

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

I don't know what the y=188 is. I thought maybe the Ubuntu dock (which I have autohiding at the bottom), but even if I change it to only appear on monitor B it's still y=188 on monitor A

Is your shorter monitor vertically centered in the virtual desktop space relative to your taller monitor? 188 is only 8 pixels larger than exactly half the difference between the height of the two monitors.

EDIT: Just checked the xrandr output and that's it. 1920x1080+0+188

That output says that your DP-0 monitor occupies a 1920x1080 rectangle with its top-left corner in the virtual space positioned at (0, 188).

It also says HDMI-0 connected 3440x1440+1920+0 meaning that your HDMI-0 monitor occupies a 3440x1440 rectangle with its top-left corner positioned at (1920,0).

from quicktile.

ssokolow avatar ssokolow commented on June 3, 2024

OK. Sorry for taking so long. That commit should give you basic support under GNOME Shell on X11, comparable to what you get on other WMs.

It unconditionally queries _GTK_WORKAREAS_D0 because QuickTile currently has no concept of different workspaces/virtual desktops having different panel reservations.

I only did very minimal testing on GNOME because GNOME Shell performs so poorly inside VirtualBox, so please give it some exercise and let me know if you encounter any issues.

from quicktile.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.