agwells / pywo

Automatically exported from code.google.com/p/pywo
GNU General Public License v3.0
0 stars 0 forks source link

Test Xinerama support on multi monitor setup #10

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
In the latest development version support for Xineram was introduced.
To turn it on add '--xinerama' argument when running pywo from commandline, or 
add 'xinerama = on' in the '[SETTINGS]' section of the configuration file.

Since I don't have access to multi monitor setup this feature still needs some 
testing.

I don't know if current implementation works with all window managers, if the 
screen area is calculated correctly for different panel/docks placement.

If you are using pywo with more than one monitor screen please check the new 
xinerama support and in case of any problems please paste (or link to) output 
of 'pywo debug' command.

Original issue reported on code.google.com by kosci...@gmail.com on 19 May 2011 at 6:18

GoogleCodeExporter commented 9 years ago
Seems to ignore the top GNOME panel when tiling on the 1024x600 screen in my 
setup. The bottom panel is taken into account correctly.

$ pywo debug
Xlib.protocol.request.QueryExtension
debug: win=<Window id=69206019>, kwargs={}
-= Window Manager =-
Name=Metacity
-= Desktops =-
Layout=<Layout cols=4, rows=1, orientation=0, corner=0>
Names=[u'Ty\xf6tila 1', u'Ty\xf6tila 2', u'Ty\xf6tila 3', u'Ty\xf6tila 4']
Total=4
Current=0
Size=<Size width=1280, height=1624>
-= Viewports =-
Layout=<Layout cols=1, rows=1, orientation=0, corner=0>
Position=<Position x=0, y=0>
-= Workarea =-
Geometry=<Geometry x=0, y=0, width=1280, height=1599, x2=1280, y2=1599>
-= Strut =-
[<Strut left=(0L, 0L, 0L), right=(0L, 0L, 0L), top=(0L, 0L, 0L), bottom=(25L, 
256L, 1279L)>, <Strut left=(0L, 0L, 0L), right=(0L, 0L, 0L), top=(0L, 256L, 
1279L), bottom=(0L, 0L, 0L)>]
-= Screens =-
Total=2
Geometries=[<Geometry x=0, y=0, width=1280, height=1024, x2=1280, y2=1024>, 
<Geometry x=256, y=1024, width=1024, height=600, x2=1280, y2=1624>]
-= Current Window =-
ID=69206019
Client_machine="morris"
Name="/bin/bash"
Class="terminator.Terminator"
Type=['_NET_WM_WINDOW_TYPE_NORMAL']
State=['_NET_WM_STATE_MAXIMIZED_HORZ', '_NET_WM_STATE_MAXIMIZED_VERT']
WM State={'state': 1, 'icon': 0}
Desktop=0
Extents=<Extents left=0, right=0, top=27, bottom=0>
Extents_raw=['0', '0', '27', '0']
Geometry=<Geometry x=0, y=0, width=1280, height=1024, x2=1280, y2=1024>
Geometry_raw={'height': 997, 'width': 1280, 'depth': 24, 'y': 27, 'x': 0, 
'border_width': 0, 'root': <Xlib.display.Window 0x000000b9>, 'sequence_number': 
115}
Geometry_translated={'y': 0, 'x': 0, 'sequence_number': 117, 'same_screen': 1, 
'child': 0}
Strut=None
Parent=None None
Normal_hints={'width_inc': 6, 'height_inc': 14, 'min_aspect': 
Xlib.protocol.rq.DictWrapper({'num': 0, 'denum': 0}), 'max_height': 0, 
'max_aspect': Xlib.protocol.rq.DictWrapper({'num': 0, 'denum': 0}), 
'min_height': 0, 'win_gravity': 1, 'flags': 832, 'max_width': 0, 'min_width': 
0, 'base_width': 2, 'base_height': 31}
Attributes={'do_not_propagate_mask': 0, 'your_event_mask': 0, 
'override_redirect': 0, 'bit_gravity': 1, 'all_event_masks': 14909567, 
'save_under': 0, 'visual': 33, 'win_class': 1, 'backing_bit_planes': 
4294967295L, 'backing_store': 0, 'map_state': 2, 'win_gravity': 1, 
'map_is_installed': 1, 'backing_pixel': 0, 'sequence_number': 125, 'colormap': 
<Xlib.xobject.colormap.Colormap 0x00000020>}
Query_tree={'root': <Xlib.display.Window 0x000000b9>, 'parent': 
<Xlib.display.Window 0x00e00832>, 'sequence_number': 126, 'children': 
[<Xlib.display.Window 0x04200004>]}
-= Move using same geometry =-
Old geometry=<Geometry x=0, y=0, width=1280, height=1024, x2=1280, y2=1024>
New geometry=<Geometry x=0, y=0, width=1280, height=1024, x2=1280, y2=1024>
-= End of debug output =-

Original comment by akaih...@gmail.com on 16 Jun 2011 at 9:11

GoogleCodeExporter commented 9 years ago
Is it always visible, or autohiding is on?

There's something wrong with this:
<Strut left=(0L, 0L, 0L), right=(0L, 0L, 0L), top=(0L, 256L, 1279L), 
bottom=(0L, 0L, 0L)>]
The window manager reports that top panel has starts at x=256, ends at x2=1279 
(that's the smaller screen, ok so fat), but the reported height is 0, which 
causes the problems. 
Just checked and it seems that panel (gnome panel) with autohide is reported to 
have height = 1, so that's not the case...

Original comment by kosci...@gmail.com on 16 Jun 2011 at 7:41

GoogleCodeExporter commented 9 years ago
I posted a separate issue about my problem using two differently-sized 
monitors. (My gnome-panel equivalent (mate-panel) is in the horizontal monitor, 
and pywo cuts off the vertical monitor's layout space as if the gnome-panel 
extended all the way across both monitors). Here's the output from my debug 
command:

Xlib.protocol.request.QueryExtension
debug: win=<Window id=83887928>, kwargs={}
-= Window Manager =-
Name=Marco
-= Desktops =-
Layout=<Layout cols=4, rows=1, orientation=0, corner=0>
Names=[u'Workspace 1', u'Workspace 2', u'Workspace 3', u'Workspace 4']
Total=4
Current=0
Size=<Size width=3000, height=1920>
-= Viewports =-
Layout=<Layout cols=1, rows=1, orientation=0, corner=0>
Position=<Position x=0, y=0>
-= Workarea =-
Geometry=<Geometry x=0, y=432, width=3000, height=1029, x2=3000, y2=1461>
-= Strut =-
[<Strut left=(0L, 0L, 0L), right=(0L, 0L, 0L), top=(0L, 0L, 0L), bottom=(459L, 
0L, 1919L)>, <Strut left=(0L, 0L, 0L), right=(0L, 0L, 0L), top=(432L, 0L, 
1919L), bottom=(0L, 0L, 0L)>]
-= Screens =-
Total=2
Geometries=[<Geometry x=0, y=406, width=1920, height=1080, x2=1920, y2=1486>, 
<Geometry x=1920, y=0, width=1080, height=1920, x2=3000, y2=1920>]
-= Current Window =-
ID=83887928
Client_machine="vegas"
Name="aaronw@vegas: ~"
Class="gnome-terminal.Gnome-terminal"
Type=['_NET_WM_WINDOW_TYPE_NORMAL']
State=[]
WM State={'state': 1, 'icon': 0}
Desktop=0
Extents=<Extents left=3, right=3, top=21, bottom=3>
Extents_raw=['3', '3', '21', '3']
Geometry=<Geometry x=960, y=438, width=957, height=1016, x2=1917, y2=1454>
Geometry_raw={'height': 992, 'width': 951, 'depth': 32, 'y': 21, 'x': 3, 
'border_width': 0, 'root': <Xlib.display.Window 0x0000025d>, 'sequence_number': 
162}
Geometry_translated={'y': -438, 'x': -960, 'sequence_number': 164, 
'same_screen': 1, 'child': 0}
Strut=None
Parent=None None
Normal_hints={'width_inc': 8, 'height_inc': 15, 'min_aspect': 
Xlib.protocol.rq.DictWrapper({'num': 0, 'denum': 0}), 'max_height': 0, 
'max_aspect': Xlib.protocol.rq.DictWrapper({'num': 0, 'denum': 0}), 
'min_height': 42, 'win_gravity': 1, 'flags': 848, 'max_width': 0, 'min_width': 
47, 'base_width': 15, 'base_height': 2}
Attributes={'do_not_propagate_mask': 0, 'your_event_mask': 0, 
'override_redirect': 0, 'bit_gravity': 1, 'all_event_masks': 14909488, 
'save_under': 0, 'visual': 236, 'win_class': 1, 'backing_bit_planes': 
4294967295, 'backing_store': 0, 'map_state': 2, 'win_gravity': 1, 
'map_is_installed': 0, 'backing_pixel': 0, 'sequence_number': 172, 'colormap': 
<Xlib.xobject.colormap.Colormap 0x05000005>}
Query_tree={'root': <Xlib.display.Window 0x0000025d>, 'parent': 
<Xlib.display.Window 0x00c07483>, 'sequence_number': 173, 'children': 
[<Xlib.display.Window 0x05000739>]}
-= Move using same geometry =-
Old geometry=<Geometry x=960, y=438, width=957, height=1016, x2=1917, y2=1454>
New geometry=<Geometry x=960, y=438, width=957, height=1016, x2=1917, y2=1454>
-= End of debug output =-

Original comment by aaronwells on 8 Jul 2013 at 12:33