From X2Go-ML-1@baur-itcs.de Tue Jan 6 15:07:45 2015 Received: (at submit) by bugs.x2go.org; 6 Jan 2015 14:07:47 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.2 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.10]) by ymir.das-netzwerkteam.de (Postfix) with ESMTPS id 41D845DB53 for ; Tue, 6 Jan 2015 15:07:45 +0100 (CET) Received: from [192.168.0.3] ([188.105.114.75]) by mrelayeu.kundenserver.de (mreue104) with ESMTPSA (Nemesis) id 0MFbev-1Y4tsr30kf-00EbrM for ; Tue, 06 Jan 2015 15:07:44 +0100 Message-ID: <54ABEC61.7040006@baur-itcs.de> Date: Tue, 06 Jan 2015 15:08:33 +0100 From: Stefan Baur User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: submit@bugs.x2go.org Subject: Clone screens for touch-enabled devices Content-Type: multipart/mixed; boundary="------------010005090706000906030202" X-Provags-ID: V03:K0:O245qqJyofUqH1ZnFxsdNd5/2KvVTatyr/AlIVaE2ye6BnFrIza XACwBaFowuyhfFEqq4s37kdq2UereMuaL2pNsTHvMtbs7qgM+ywX9UTq9/dn+0uj5pkTc39 xmFY9bEGv6sgauVE0VJjnKrEP3a1SaAej/P9/El3vT9KsZajiUW8EQg6XeQWYPQHdYkUiIu rOQxQ2HNf1aQJZ+jwUWOg== X-UI-Out-Filterresults: notjunk:1; This is a multi-part message in MIME format. --------------010005090706000906030202 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 package: x2gothinclient version: 1.1.0.2 priority: wishlist Control: tag -1 patch Hi, when using a touch-enabled device (like a tablet computer) as a thinclient, the cursor isn't properly aligned when you try to run a second display (non-touch-enabled) alongside with it. What happens is that both displays get attached to form one large virtual screen, however, your touch-enabled surface obviously still only covers the primary display. The X server doesn't understand this, and tries to map your movements on the primary display to the entire virtual screen surface, so the further to the side and to the bottom you get, the more off your mouse pointer will be from the actual position where you touch your primary display. PRI SEC VIRT +-----+ +-----+ +----------+ |X | | | |O | | | | | | | | | | | | | | | | | | | +-----+ +-----+ +----------+ +-----+ +-----+ +----------+ | | | | | | | | | | | | | \ | | / | | O | | | | | | | +-----+ +-----+ +----------+ \ = where you touch / = where X draws the cursor in reality X = overlapping \ and / O = where X believes the cursor is, on the virtual screen There's no sensible way to use a touch-enabled device with a second screen and no additional, external pointing device, so I've added this patch/workaround that switches to clone mode instead. Of course, if you give up on using the touchscreen and plug in a USB mouse or other external pointing device, you could use two screens. This patch doesn't cover that situation. Maybe someone else has an idea on what a sensible solution could look like that covers this as well? Like, scan for USB HID pointing devices ("find /dev/input -name "mouse*" | wc -l") and, if present in addition to a touchscreen, don't clone, but do side-by-side s if no touch device was detected at all? Tht might have some additional caveats, though, like the detection mis-firing if the touch component of a tablet device "cloaks" as mouse or offers some sort of mouse emulation support. Also, in that case, it would probably be smart to disable the touch interface completely so as to not confuse users why their touches don't align with the cursor. Does anybody know of a generic way to do this? Again, input/suggestions welcome. - -Stefan - -- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQEcBAEBAgAGBQJUq+xgAAoJEG7d9BjNvlEZrjkIAKDP60/c6aMxGsYiA3uZZ0Iw q2W6g3rsjE5t3r1wLjhCgq6VzH9hOvThT2g+ox6upAXoAtj3c9ePhIViboVmX5dH 8RBPucV14gjP7rXxeMlmQgBKo/y5wvtABxcDHO1jlzQoTL752bfANae7zzTrDQJS vdF+fIScHg/W2Ft/KkyYjlOqawCJ9euZOzvOMUmTLFkSrIu6CKAtVF3YZOptnN25 +VcCoiltYUxmGzhYNmGMa9g+zMCZcaPSKloE/pK4YaxQjbCV5NJKuiiILC/E24qa R3dssyt5m33muyQi+E8Ygger2faTe9efUrsDGMHnacCs94wqySUtTebQQzT12KE= =hoaC -----END PGP SIGNATURE----- --------------010005090706000906030202 Content-Type: text/plain; charset=windows-1252; name="clone-screens-for-touch-enabled-devices-x2gothinclientd.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="clone-screens-for-touch-enabled-devices-x2gothinclientd.patc"; filename*1="h" LS0tIC91c3Ivc2Jpbi94MmdvdGhpbmNsaWVudGQub3JpZyAgICAgIDIwMTUtMDEtMDYgMTQ6 MjI6NTIuNDE2Mjc4MDQ4ICswMDAwDQorKysgL3Vzci9zYmluL3gyZ290aGluY2xpZW50ZCAg IDIwMTUtMDEtMDYgMTQ6Mzg6NTguNjAwMTMxNDcyICswMDAwDQpAQCAtMTExLDE2ICsxMTEs MjkgQEANCiAgICAgICAgICAgICAgICAgICAgICAgICMgd2FpdCBmb3IgWC1TZXJ2ZXIgdG8g Y29tZSB1cA0KICAgICAgICAgICAgICAgICAgICAgICAgc2xlZXAoMyk7DQoNCi0gICAgICAg ICAgICAgICAgICAgICAgICMgYWxpZ24gZGlzcGxheXMgbmV4dCB0byBlYWNoIG90aGVyIGlu IG9yZGVyIG9mIGFwcGVhcmFuY2UgaW4geHJhbmRyDQorICAgICAgICAgICAgICAgICAgICAg ICAjIEFsaWduIGRpc3BsYXlzIG5leHQgdG8gZWFjaCBvdGhlciBpbiBvcmRlciBvZiBhcHBl YXJhbmNlIGluIHhyYW5kciwgdW5sZXNzIHRvdWNoDQorICAgICAgICAgICAgICAgICAgICAg ICAjIGRldmljZXMgYXJlIGRldGVjdGVkIC0gaW4gdGhhdCBjYXNlLCBjbG9uZSBkaXNwbGF5 cyBzbyB0aGF0IHRvdWNoYWJsZSBhcmVhIGFuZCBkaXNwbGF5DQorICAgICAgICAgICAgICAg ICAgICAgICAjIHN0YXkgYWxpZ25lZC4gIFRoaXMgZml4IGhhcyBiZWVuIGludHJvZHVjZWQg Zm9yIGEgY2VydGFpbiBtYWtlIG9mIHdhY29tIHRvdWNoLXNlbnNpdGl2ZQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgIyBkaXNwbGF5cy4gIElmIHlvdSBoYXZlIGEgdG91Y2gtc2Vuc2l0 aXZlIGRldmljZSB0aGF0IGlzbid0IGFmZmVjdGVkIGJ5IHRoaXMsIG9yIHRoYXQNCisgICAg ICAgICAgICAgICAgICAgICAgICMgaXMgbmVnYXRpdmVseSBhZmZlY3RlZCBieSB0aGlzIGZp eCwgcGxlYXNlIGxldCB1cyBrbm93IHNvIHdlIGNhbiBhZGQgYSBiZXR0ZXIgZGV0ZWN0aW9u Lg0KICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHRoaXNfZGlzcGxheTsNCiAgICAgICAg ICAgICAgICAgICAgICAgIG15ICRuZXh0X2Rpc3BsYXk7DQorICAgICAgICAgICAgICAgICAg ICAgICBteSAkdG91Y2hkZXZpY2VzY291bnQ9YERJU1BMQVk9OjAgeHNldHdhY29tIC1kIGxv Y2FsaG9zdDowLjAgLS1saXN0IGRldmljZXMgfCB3YyAtbGA7DQorDQogICAgICAgICAgICAg ICAgICAgICAgICBmb3JlYWNoIChgRElTUExBWT06MCBMQU5HPUMgeHJhbmRyIDI+L2Rldi9u dWxsIHwgZ3JlcCAnIGNvbm5lY3RlZCAnIHwgY3V0IC1kICcgJyAtZjFgKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV4 dF9kaXNwbGF5ID0gJF87DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXh0 X2Rpc3BsYXkgPX4gcy9cbi8vOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoZGVmaW5lZCgkdGhpc19kaXNwbGF5KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgew0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBESVNQ TEFZPTowIC91c3IvYmluL3hyYW5kciAtLW91dHB1dCAkbmV4dF9kaXNwbGF5IC0tbGVmdC1v ZiAkdGhpc19kaXNwbGF5YDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoJHRvdWNoZGV2aWNlc2NvdW50ID4gMCkNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBgRElTUExBWT06MCAvdXNyL2Jpbi94cmFuZHIgLS1vdXRwdXQg JG5leHRfZGlzcGxheSAtLXNhbWUtYXMgJHRoaXNfZGlzcGxheWA7DQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBgRElTUExBWT06MCAvdXNyL2Jpbi94cmFuZHIgLS1vdXRwdXQgJG5leHRfZGlzcGxh eSAtLWxlZnQtb2YgJHRoaXNfZGlzcGxheWA7DQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzX2Rpc3BsYXkgPSAkbmV4dF9k aXNwbGF5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K --------------010005090706000906030202 Content-Type: application/octet-stream; name="clone-screens-for-touch-enabled-devices-x2gothinclientd.patch.sig" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="clone-screens-for-touch-enabled-devices-x2gothinclientd.patc"; filename*1="h.sig" iQEcBAABAgAGBQJUq+xgAAoJEG7d9BjNvlEZl+0H/0kAn/LzpjThignurEC08JfPZfZjC677 eaIkMYy2a36tAXdJdC0j33Q6Y6LdW1XH+31i7JCrYGSFiBUKTO+c8kRu/4H1xNdKwKQ3ewqA Xn94Eo9DvZPaUBdEUKdHepHAifZxeHYhhpKUxxGFoMN0P1XAU9MJXjL6Av9FOktH3SkSGYIx YMbuhfqa6m7yxaP6JTr1U0aHaSuzOb7CX8FB4Qh/4RQWNiu5iQYaLfmdPXj4gzfAnMksUM2G MnaC+QEFN1BuXfxw0Fk9wupe/ortbFdm68Ywgdq0rzW9Xf1zAxK0K/3HPiuYoCRm8iqSqU4M GcdWPD003Ju8vydBLTSXpLI= --------------010005090706000906030202--