Portál AbcLinuxu, 5. května 2025 15:11

Dotaz: Jak omezit kurzor myši v X.org?

8.6.2015 15:30 pet I. | skóre: 13
Jak omezit kurzor myši v X.org?
Přečteno: 604×
Odpovědět | Admin

Monitor + touchscreen na jedné grafické kartě. Na monitoru běží aplikace ovládaná myší a klávesnicí, na touchscreenu druhá aplikace ovládaná touchscreenem.

/etc/X11/xorg.conf:

Section "InputClass"
    Identifier  "ELO calibration"
    MatchProduct        "ELO Touch Solutions  ELO Touch Solutions AccuTouch 2218 "
    Option      "Calibration"   "422 3598 475 3520"
    Option      "TransformationMatrix" "0.533333 0 0  0 0.415584 0.584416  0 0 1"
EndSection

Section "Device"
    Identifier  "HDMI out"
    Driver      "radeon"
    Screen      0
    Option      "ZaphodHeads" "HDMI-0"
EndSection

Section "Device"
    Identifier  "DVI out"
    Driver      "radeon"
    Screen      1
    Option      "ZaphodHeads" "DVI-0"
EndSection

Section "Screen"
    Identifier  "HDMI"
    Device      "HDMI out"
EndSection

Section "Screen"
    Identifier  "DVI"
    Device      "DVI out"
EndSection

Section "ServerLayout"
    Identifier  "DualScreen"
    Screen      "HDMI"
    Screen      "DVI" Below "HDMI"
EndSection

.xinitrc:

xinput create-master Next
xinput reattach "ELO Touch Solutions  ELO Touch Solutions AccuTouch 2218 " "Next pointer"

xterm -display :0.1 &
xterm -display :0.0 &
fvwm -s -d :0.1 &
fvwm -s -d :0.0

Touchscreen „myšuje” tam, kde má a dělá co má, ale myš pořád jezdí po obou monitorech. Vyzkoušel jsem už kdeco s xorg.conf, xrandr, xinput, vše bez úspěchu.

Netuší někdo jak docílit toho, aby myš nebloudila na touchscreen?


Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.6.2015 22:33 tom
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Udelejte si dva ServerLayouty a do nich nabindujte pozadovane inmputy. Vice treba zde: https://wiki.archlinux.org/index.php/Xorg_multiseat
8.6.2015 22:37 tom
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Pokud jde opravdu jen o prejizdeni mysi, tak staci jednu z obrazovek posunout tak, aby nebyly tesne vedle sebe, ale kdyz Vam nejaky dialog sebere mys na sebe, nedostanete se uz zpet :-)
Josef Kufner avatar 8.6.2015 22:49 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
V takovém případě Xorg nastaví virtuální plochu jako prostý obdélníkový bounding box všech obrazovek a myší lze jezdit i po nezobrazovaných oblastech.
Hello world ! Segmentation fault (core dumped)
8.6.2015 23:41 tom
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Mam 2 monitory s ruznym rozlisenim a vyjet do nezobrazene casti mi rozhodne nejde. Naposledy to slo tak pred -+ 4 lety.
9.6.2015 09:23 pet I. | skóre: 13
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Dobrý nápad, opravdu se nedá myší přejet z obrazovky, bohužel ale zatím nevím jak donutit TS, aby si hrál na té druhé. Třeba ještě na něco přijdu.
9.6.2015 09:20 pet I. | skóre: 13
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Odkazovanou stránku znám, je tam návod pro dvě grafické karty, já mám jen jednu a dva samostatné servery spustit nemůžu.
Josef Kufner avatar 8.6.2015 22:55 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Koukám, že dva kurzory jsi si vytvořil, aby touchscreen nekradl kurzor, takže jde jen o to, aby každá myš mohla jen na svou obrazovku. Pokud se jedná o dvě samostatné aplikace, můžeš prostě spustit dva X servery, každý s vlastním layoutem, každý pro své vstupní zařízení a svou obrazovku.
Hello world ! Segmentation fault (core dumped)
9.6.2015 09:27 pet I. | skóre: 13
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
můžeš prostě spustit dva X servery
Kéž bych mohl. Mám jednu grafickou kartu (AMD APU) a s OSS driverem dva X servery současně na stejném VT spustit nedokážu.
9.6.2015 18:54 Matlák
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Přesně z tohohle důvodu jsem koupil raději ještě jednu dedikovanou levnou grafickou kartu. Pár Wattů navíc a je klid. BTW Intelovské integrované grafiky jsou na tom stejně...
9.6.2015 17:04 pet I. | skóre: 13
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tak jsem dle tomovy rady zkusil udělat mezi monitory mezeru, kurzor ji opravdu nepřeskočí. Ale bohužel ani kurzor od touchscreenu, ten tvrdošíjně chodí po spodní hraně horního monitoru.

Pokusil jsem se to ještě obejít tak, že jsem na touchscreenu spustil Xephyr, ale zde jsem zase narazil na to, že když Xephyru zkusím předat touchscreen, tak to nefunguje:

# DISPLAY=:0.1 Xephyr :1 -fullscreen -ac -nodri -fakexa -retro -mouse 'evdev,1,device=/dev/input/event5'
Ungrabbing evdev mouse device failed: Bad file descriptor
1 DAMAGEs still allocated at reset

A xinput pak vidí:

# DISPLAY=:1 xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Evdev mouse                               id=7    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Xephyr virtual keyboard                   id=6    [slave  keyboard (3)]
# DISPLAY=:1 xinput list-props 7
Device 'Evdev mouse':
        Device Enabled (113):   1
        Coordinate Transformation Matrix (115): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (231):     0
        Device Accel Constant Deceleration (232):       1.000000
        Device Accel Adaptive Deceleration (233):       1.000000
        Device Accel Velocity Scaling (234):    10.000000

A přitom by měl vidět (touchscreen dočasně na :0) :

# DISPLAY=:0 xinput list-props 9
Device 'ELO Touch Solutions  ELO Touch Solutions AccuTouch 2218 ':
        Device Enabled (131):   1
        Coordinate Transformation Matrix (133): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (261):     0
        Device Accel Constant Deceleration (262):       1.000000
        Device Accel Adaptive Deceleration (263):       1.000000
        Device Accel Velocity Scaling (264):    10.000000
        Device Product ID (250):        1255, 80
        Device Node (251):      "/dev/input/event5"
        Evdev Axis Inversion (265):     0, 0
        Evdev Axis Calibration (266):   422, 3598, 475, 3520
        Evdev Axes Swap (267):  0
        Axis Labels (268):      "Abs X" (283), "Abs Y" (284), "Abs Misc" (285)
        Button Labels (269):    "Button Left" (134), "Button Unknown" (253), "Button Unknown" (253), "Button Wheel Up" (137), "Button Wheel Down" (138)
        Evdev Scrolling Distance (270): 0, 0, 0
        Evdev Middle Button Emulation (271):    0
        Evdev Middle Button Timeout (272):      50
        Evdev Third Button Emulation (273):     0
        Evdev Third Button Emulation Timeout (274):     1000
        Evdev Third Button Emulation Button (275):      3
        Evdev Third Button Emulation Threshold (276):   20
        Evdev Wheel Emulation (277):    0
        Evdev Wheel Emulation Axes (278):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (279):    10
        Evdev Wheel Emulation Timeout (280):    200
        Evdev Wheel Emulation Button (281):     4
        Evdev Drag Lock Buttons (282):  0

Nemáte někdo ještě nějaký nápad co s tím? Mě po těch několika dnech co s tím zápasím a našel jsem mnoho způsobů jak to nejde už opravdu nic nenapadá.

Josef Kufner avatar 9.6.2015 18:45 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
A co nechat displeje, ať se dotýkají rohem? Tedy spíše malou částí sousedících hran. Kurzor by měl možnost přesunu mezi obrazovkama, ale jinak by se zarážel a nepřejížděl moc snadno. Tedy pokud necheš aby to opravdu nešlo a jde ti jen o uživatelskou přívětivost.
Hello world ! Segmentation fault (core dumped)
9.6.2015 17:40
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Odpovědět | | Sbalit | Link | Blokovat | Admin
skrytý komentář Náš administrátor shledal tento komentář závadným.

Vulgarity.

Zobrazit komentář
Řešení 1× (pet I. (tazatel))
21.9.2015 16:00 pet I. | skóre: 13
Rozbalit Rozbalit vše Re: Jak omezit kurzor myši v X.org?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak se mi to podařilo vyřešit. Sice mi není na 100 % jasné jak to funguje, ale funguje to. ;-)

Mám AMD APU s výstupy DVI, HDMI a VGA. Na DVI a HDMI mám připojeny monitory 1920×1080, na VGA touchscreen ELO 1024×768. Myš (s klávesnicí) chodí po obou monitorech, touchscreen je nezávislý.

Kurzor touchscreenu sice naběhne na DVI obrazovce, ale je tam jen do prvního ťuknutí na touchscreen.

Celé kouzlo je zřejmě v použití virtuální plochy která oddělí touchscreen od ostatních obrazovek, v tom, ze DVI (s myší) je screen 0 a možná i v tom, že touchscreen je vlevo.

/etc/X11/xorg.conf:
Section "InputClass"
    Identifier  "calibration"
    MatchProduct        "ELO Touch Solutions  ELO Touch Solutions AccuTouch 2218 "
    Option      "Calibration"   "422 3598 475 3520"
EndSection

Section "Device"
    Identifier  "DVI out"
    Driver      "radeon"
    Screen      0
    Option      "ZaphodHeads" "DVI-0"
EndSection

Section "Device"
    Identifier  "HDMI out"
    Driver      "radeon"
    Screen      1
    Option      "ZaphodHeads" "HDMI-0"
EndSection

Section "Device"
    Identifier  "VGA out"
    Driver      "radeon"
    Screen      2
    Option      "ZaphodHeads" "VGA-0"
EndSection

Section "Screen"
    Identifier  "DVI"
    Device      "DVI out"
EndSection

Section "Screen"
    Identifier  "HDMI"
    Device      "HDMI out"
EndSection

Section "Screen"
    Identifier  "VGA"
    Device      "VGA out"
    SubSection "Display"
        Virtual        2000 1280
    EndSubSection
EndSection

Section "ServerLayout"
    Identifier  "DualScreen"
    Screen      "DVI"
    Screen      "HDMI" Below    "DVI"
    Screen      "VGA"  LeftOf   "DVI"
EndSection
/root/.xinitrc:
xinput create-master Next
xinput reattach "ELO Touch Solutions  ELO Touch Solutions AccuTouch 2218 " "Next pointer"
# a = 1024./(1024 + 1920) # sirka VGA / cela sirka (VGA + DVI)
# e =  768./(1080 + 1080) # vyska VGA / cela vyska (DVI + HDMI)
xinput set-prop 'ELO Touch Solutions  ELO Touch Solutions AccuTouch 2218 ' 'Coordinate Transformation Matrix'  0.2612 0 0  0 0.3556 0  0 0 1

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.