Created attachment 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.
Created attachment 551 [details] log out of a thinstation 5.2 session with broken multi-monitor output
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.
(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.
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 ?
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
The issue is reproducible on Ubuntu 14.04 - Xorg 7.7, opebox 3.5.2
Perfect. Any suggested workaround?
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 ?
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.
Could you provide output for xprop -root for both 5.1 and 5.2 ?
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 --
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).
We'll report a bug with upstream that they need to add this functionality, then we'll close this bug here.
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.
Added upstream bug: https://bugzilla.icculus.org/show_bug.cgi?id=6246