www.cendio.com
Bug 5182 - ThinLinc Client with OpenBox doesn't correctly setup multi-monitor sessions
: ThinLinc Client with OpenBox doesn't correctly setup multi-monitor sessions
Status: CLOSED FIXED
: ThinLinc
Client
: 4.2.0
: PC Unknown
: P2 Normal
: 4.3.0
Assigned To:
:
:
:
:
  Show dependency treegraph
 
Reported: 2014-06-05 11:21 by
Modified: 2014-10-06 16:16 (History)
Acceptance Criteria:


Attachments
log out of a thinstation 5.1 session with working multi-monitor output (9.38 KB, text/plain)
2014-06-05 11:21, Jens Maus
Details
log out of a thinstation 5.2 session with broken multi-monitor output (6.83 KB, text/plain)
2014-06-05 11:22, Jens Maus
Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2014-06-05 11:21:57
Created an attachment (id=550) [details]
log out of a thinstation 5.1 session with working multi-monitor output

When using the latest Thinstation 5.2 OS
(https://github.com/Thinstation/thinstation) which includes updates to Xorg 7.7
the thinstation client used (4.1.1, 4.2.0 or nightly build) will not correctly
setup a multi-monitor session and presents the user with a session where only
one screen is used but with double desktop size. The problem vanishes
immediately when downgrading to thinstation 5.1 which uses an older Xorg
environment.

The reason why I report this problem here instead of in the thinstation bug
tracker is, that other applications like freerdp doesn't seem to have these
kind of problem and correctly setup a multi-monitor connection with two
separate screens being utilized correctly.

Please find attached two text log file summarizes where "works.txt" refers to a
session with thinstation 5.1 being used together with the thinstation client
(in that case 4.1.1 – however, the 4.2.0 behaves the same) and correctly
setting up a multi-monitor session. This can be seen by the "remote xrandr
output" section where two correctly setup VNC screens (VNC-0 and VNC-1) are
shown with size 1920x1200 and being put correctly aside.

On the other hand the "broken.txt" file refers to a thinstation 5.2 session
with Xorg 7.7 being used. There the "remote xrandr output" shows only one VNC
screen (VNC-0) with double width size (3840x1200) causing an incorrect setup
and resulting in seeing that screen being scrolled if the mouse is moved to the
right edge of the screen. Please note also the "local xrandr output" section in
both files which essentially show the same correct output of having two
separate screens. This output was generated directly on the used thinclient
(intel NUC). So looking at that output it seems both screens were correctly
identified via xrandr (xinerama) but this setup is only correctly used with
thinstation 5.1 (older Xorg).

Currently I am still not sure which side to blame (ThinLinc or ThinStation) so
I would like to receive some advice of performing some additional debugging to
actually identify the root of the problem.
------- Comment #1 From 2014-06-05 11:22:42 -------
Created an attachment (id=551) [details]
log out of a thinstation 5.2 session with broken multi-monitor output
------- Comment #3 From 2014-06-12 12:36:19 -------
Any comments from a ThinLinc developer on this issue? As we are a paid customer
I would expect some faster replies on that matter. We really need to debug that
situation since we want to move to Thinstation 5.2 use soon.
------- Comment #4 From cendio 2014-06-12 13:17:41 -------
(In reply to comment #3)
> Any comments from a ThinLinc developer on this issue? As we are a paid customer
> I would expect some faster replies on that matter. We really need to debug that
> situation since we want to move to Thinstation 5.2 use soon.

The bug has our attention and you will get updates on this bug of our progress
looking into this issue.
------- Comment #5 From cendio 2014-06-12 13:37:50 -------
Could you provide the configuration file for your TS5.2 image(In reply to
comment #0)
> Currently I am still not sure which side to blame (ThinLinc or ThinStation) so
> I would like to receive some advice of performing some additional debugging to
> actually identify the root of the problem.

Which window manager did you select to use in you TS5.2 configuration ?

Could you provide your build.conf / thinstation.conf.buildtime for the TS5.2 ?
------- Comment #6 From 2014-06-12 13:41:34 -------
The window manager used is openbox and its configuration file can be viewed
from:

https://github.com/hzdr/thinstation/blob/master/ts/5.2/packages/hzdr/etc/xdg/openbox/rc-single-app.xml

The build.conf and thinstation.conf.buildtime can be also downloaded from

https://github.com/hzdr/thinstation/tree/master/ts/5.2/conf/hzdr
------- Comment #7 From cendio 2014-06-13 09:56:03 -------
The issue is reproducible on Ubuntu 14.04 - Xorg 7.7, opebox 3.5.2
------- Comment #8 From 2014-06-13 09:57:37 -------
Perfect. Any suggested workaround?
------- Comment #9 From cendio 2014-06-13 10:12:17 -------
openbox seems to not support multihead;

prop -root | grep _NET_WM_FULLSCREEN_MONITORS

Could it be that xfwm is used as default WM in Thinstation 5.1 ?
------- Comment #10 From 2014-06-13 10:22:42 -------
Yes, xfwm is the default.

However, we currently use openbox 3.5.0 within thinstation 5.1 and perform
correct multi-headed connections via ThinLinc and the openbox version there
also doesn't reply to _NET_WM_FULLSCREEN_MONITORS property requests. In fact,
in thinstation 5.2 also openbox 3.5.0 is still used.
------- Comment #11 From cendio 2014-06-13 10:40:40 -------
Could you provide output for xprop -root for both 5.1 and 5.2 ?
------- Comment #12 From 2014-06-13 10:46:45 -------
Sure.

Here for Thinstation 5.2+OpenBox (non-working multi-head):

-- cut here --
_NET_ACTIVE_WINDOW(WINDOW): window id # 0xa0000e
_NET_CLIENT_LIST(WINDOW): window id # 0xa0000e
_NET_SHOWING_DESKTOP(CARDINAL) = 0
_NET_CURRENT_DESKTOP(CARDINAL) = 0
_NET_DESKTOP_NAMES(UTF8_STRING) = "qutselect"
_NET_WORKAREA(CARDINAL) = 0, 0, 1920, 1200
_NET_DESKTOP_VIEWPORT(CARDINAL) = 0, 0
_NET_NUMBER_OF_DESKTOPS(CARDINAL) = 1
_NET_DESKTOP_GEOMETRY(CARDINAL) = 1920, 1200
_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0xa0000e
_OB_THEME(UTF8_STRING) = "Clearlooks"
_OB_CONFIG_FILE(UTF8_STRING) = "/etc/xdg/openbox/rc-single-app.xml"
_OB_VERSION(UTF8_STRING) = "3.5.0"
_NET_SUPPORTED(ATOM) = _NET_SUPPORTING_WM_CHECK, _NET_WM_FULL_PLACEMENT,
_NET_CURRENT_DESKTOP, _NET_NUMBER_OF_DESKTOPS, _NET_DESKTOP_GEOMETRY,
_NET_DESKTOP_VIEWPORT, _NET_ACTIVE_WINDOW, _NET_WORKAREA, _NET_CLIENT_LIST,
_NET_CLIENT_LIST_STACKING, _NET_DESKTOP_NAMES, _NET_CLOSE_WINDOW,
_NET_DESKTOP_LAYOUT, _NET_SHOWING_DESKTOP, _NET_WM_NAME, _NET_WM_VISIBLE_NAME,
_NET_WM_ICON_NAME, _NET_WM_VISIBLE_ICON_NAME, _NET_WM_DESKTOP, _NET_WM_STRUT,
_NET_WM_STRUT_PARTIAL, _NET_WM_ICON, _NET_WM_ICON_GEOMETRY,
_NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK,
_NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_MENU,
_NET_WM_WINDOW_TYPE_UTILITY, _NET_WM_WINDOW_TYPE_SPLASH,
_NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_NORMAL,
_NET_WM_ALLOWED_ACTIONS, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE,
_NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ,
_NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_FULLSCREEN,
_NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE,
_NET_WM_ACTION_BELOW, _NET_WM_STATE, _NET_WM_STATE_MODAL,
_NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ,
_NET_WM_STATE_SHADED, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER,
_NET_WM_STATE_HIDDEN, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE,
_NET_WM_STATE_BELOW, _NET_WM_STATE_DEMANDS_ATTENTION, _NET_MOVERESIZE_WINDOW,
_NET_WM_MOVERESIZE, _NET_WM_USER_TIME, _NET_FRAME_EXTENTS,
_NET_REQUEST_FRAME_EXTENTS, _NET_RESTACK_WINDOW, _NET_STARTUP_ID,
_NET_WM_SYNC_REQUEST, _NET_WM_SYNC_REQUEST_COUNTER, _NET_WM_PID, _NET_WM_PING,
_KDE_WM_CHANGE_STATE, _KDE_NET_WM_FRAME_STRUT,
_KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _OB_WM_ACTION_UNDECORATE,
_OB_WM_STATE_UNDECORATED, _OPENBOX_PID, _OB_THEME, _OB_CONFIG_FILE,
_OB_CONTROL, _OB_VERSION, _OB_APP_ROLE, _OB_APP_TITLE, _OB_APP_NAME,
_OB_APP_CLASS, _OB_APP_TYPE
_NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0x800123
_OPENBOX_PID(CARDINAL) = 3438
_XKB_RULES_NAMES(STRING) = "evdev", "pc104", "de,us", "",
"grp:sclk_toggle,grp_led:scroll"
XFree86_VT(INTEGER) = 5
-- cut here --

And here for thinstation 5.1+openbox (working multi-head):

-- cut here --
_NET_ACTIVE_WINDOW(WINDOW): window id # 0xa0000e
_NET_CLIENT_LIST(WINDOW): window id # 0xa0000e
_NET_SHOWING_DESKTOP(CARDINAL) = 0
_NET_CURRENT_DESKTOP(CARDINAL) = 0
_NET_DESKTOP_NAMES(UTF8_STRING) = "qutselect"
_NET_WORKAREA(CARDINAL) = 0, 0, 1920, 1200
_NET_DESKTOP_VIEWPORT(CARDINAL) = 0, 0
_NET_NUMBER_OF_DESKTOPS(CARDINAL) = 1
_NET_DESKTOP_GEOMETRY(CARDINAL) = 1920, 1200
_NET_CLIENT_LIST_STACKING(WINDOW): window id # 0xa0000e
_OB_THEME(UTF8_STRING) = "Clearlooks"
_OB_CONFIG_FILE(UTF8_STRING) = "/etc/xdg/openbox/rc-single-app.xml"
_OB_VERSION(UTF8_STRING) = "3.5.0"
_NET_SUPPORTED(ATOM) = _NET_SUPPORTING_WM_CHECK, _NET_WM_FULL_PLACEMENT,
_NET_CURRENT_DESKTOP, _NET_NUMBER_OF_DESKTOPS, _NET_DESKTOP_GEOMETRY,
_NET_DESKTOP_VIEWPORT, _NET_ACTIVE_WINDOW, _NET_WORKAREA, _NET_CLIENT_LIST,
_NET_CLIENT_LIST_STACKING, _NET_DESKTOP_NAMES, _NET_CLOSE_WINDOW,
_NET_DESKTOP_LAYOUT, _NET_SHOWING_DESKTOP, _NET_WM_NAME, _NET_WM_VISIBLE_NAME,
_NET_WM_ICON_NAME, _NET_WM_VISIBLE_ICON_NAME, _NET_WM_DESKTOP, _NET_WM_STRUT,
_NET_WM_STRUT_PARTIAL, _NET_WM_ICON, _NET_WM_ICON_GEOMETRY,
_NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DOCK,
_NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_MENU,
_NET_WM_WINDOW_TYPE_UTILITY, _NET_WM_WINDOW_TYPE_SPLASH,
_NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_NORMAL,
_NET_WM_ALLOWED_ACTIONS, _NET_WM_WINDOW_OPACITY, _NET_WM_ACTION_MOVE,
_NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE,
_NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT,
_NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE,
_NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW, _NET_WM_STATE, _NET_WM_STATE_MODAL,
_NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ,
_NET_WM_STATE_SHADED, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER,
_NET_WM_STATE_HIDDEN, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE,
_NET_WM_STATE_BELOW, _NET_WM_STATE_DEMANDS_ATTENTION, _NET_MOVERESIZE_WINDOW,
_NET_WM_MOVERESIZE, _NET_WM_USER_TIME, _NET_FRAME_EXTENTS,
_NET_REQUEST_FRAME_EXTENTS, _NET_RESTACK_WINDOW, _NET_STARTUP_ID,
_NET_WM_SYNC_REQUEST, _NET_WM_SYNC_REQUEST_COUNTER, _NET_WM_PID, _NET_WM_PING,
_KDE_WM_CHANGE_STATE, _KDE_NET_WM_FRAME_STRUT,
_KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _OB_WM_ACTION_UNDECORATE,
_OB_WM_STATE_UNDECORATED, _OPENBOX_PID, _OB_THEME, _OB_CONFIG_FILE,
_OB_CONTROL, _OB_VERSION, _OB_APP_ROLE, _OB_APP_TITLE, _OB_APP_NAME,
_OB_APP_CLASS, _OB_APP_TYPE
_NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0x800123
_OPENBOX_PID(CARDINAL) = 3245
_XKB_RULES_NAMES(STRING) = "evdev", "evdev", "de,us", "",
"grp:sclk_toggle,grp_led:scroll"
XFree86_VT(INTEGER) = 5
-- cut here --
------- Comment #13 From cendio 2014-06-16 09:33:27 -------
From ThinLinc client point of view, multi-monitor is only fully supported if
the window manager supports EWMH and the properties; _NET_WM_ACTION_FULLSCREEN,
_NET_WM_STATE_FULLSCREEN and _NET_WM_FULLSCREEN_MONITORS. This is not the case
for OpenBox.

There is a corner case which I believe you see in ThinStation 5.1; if the
window manager is not supporting EWMH, fltk will do an override redirect to
handle multi head as good as we can. However this fallback is preventing other
parts to function correctly in ThinLinc client, such as disable send of system
keys etc.

Your options are to switch WM to one which has support for the above
requirements, such as xfwm4 or you could try to drill down why OpenBox announce
support for EWMH in TS5.2 and not in TS5.1 (probably due to some compilation
flag or dependency while built).
------- Comment #14 From cendio 2014-06-17 11:09:59 -------
We'll report a bug with upstream that they need to add this functionality, then
we'll close this bug here.
------- Comment #15 From 2014-06-17 13:05:42 -------
Ok, perfect. In the meantime I replaced openbox with a minimal setup of xfwm4
and now thinlinc works fine within a multi-monitor setup. So reporting this
upstream should be really a good idea so that the openbox people can implement
these extensions.

It however would also be probably a good idea to add a "Window Manager
Compatibility" section to the ThinLinc administration documentation or
somewhere only where you can report und which window managers the thinlinc
client works best.
------- Comment #16 From cendio 2014-07-07 13:58:17 -------
Added upstream bug:

https://bugzilla.icculus.org/show_bug.cgi?id=6246