Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam.
Wygrzebałem z szafy mega zajebistego trackaballa marki Kensington, po czym przypomniałem sobie dlaczego tam trafił- nie posiada scrollwheela.
Co więcej, posiada jedynie dwa przyciski. Zastanawiam się, czy jest sposób na emulację scrolleventów za pomocą kombinacji klawisza z klawiatury+ ruchów kursora, coś w podobie do firefox'owego middleclicka.
Znalazłem co prawda [url=http://askubuntu.com/questions/482523/mouse-movement-key-press-scroll]temat na bubuforum[/url], ale jak widać bez odpowiedzi.
Więc jak, da się? Do wykorzystania mam np lewego windowsa :)
Edek: doszedłem by do xorg.conf dodać coś w serek
Section "InputClass" Identifier "liske rox" MatchIsPointer "on" option "emulate3buttons" "on" EndSection
Aczkolwiek średnio mnie to odpowiada, wolałbym z klawiatury ;)
edek: kolejny hint
xmodmap -e 'keysym Super_L = Pointer_Button2' xkbset m
Powoli do przodu :)
Ostatnio edytowany przez lis6502 (2016-01-14 19:47:10)
Offline
Ale się usmiałem bawiąc xD. Niezłe, ale coś podobnego uzyskałem za pomocą xmodmapa o który pisałem wcześniej.
Mnie rozchodzi się by trzymając jakiś modyfikator (na ten przykład rzeczony Super_L) event MyszRuchWeLewo zamienić na MyszkSkrolKólkoWePrawo.
Offline
Da się:
Option "EmulateWheel" "boolean"
Enable/disable "wheel" emulation. Wheel emulation means emulating button press/release events when the mouse is moved while a specific real button is pressed. Wheel button events (typically buttons 4 and 5) are usually used for scrolling. Wheel emulation is useful for getting wheel-like behaviour with trackballs. It can also be useful for mice with 4 or more buttons but no wheel. See the description of the EmulateWheelButton, EmulateWheelInertia, XAxisMapping, and YAxisMapping options below. Default: off.[/quote]
ftp://www.x.org/pub/X11R6.8.0/doc/mouse.4.html
U mnie na takiej zasadzie działa emulacja rolki przy użyciu Trackpointa.
Offline
Można także tym: [deb]mouseemu[/deb] . W pliku /etc/default/mouseemu dodajesz np:
SCROLL="-scroll 125"
To jest lewy klawisz windows, wartość do odczytania w evtest. Po restarcie usługi, po tym jak przyciśniesz sobie klawisz windows i ruszysz myszką w górę, to strona się przewija w górę, jak w dół, to w dół. xD
Offline
@[b]yossarian[/b]: wszystko fajnie tylko mój gryzoń ma fizycznie tylko dwa przyciski, więc se mogę. Hm, chyba żeby za pomocą xmodmapa podpiać wirtualny trzeci mysiklik pod windowsa i w ten sposób wymusić EmulateWheel- zaraz obaczę.
@[b]morfik[/b]: jednak te wilki lisom są pomocne xD. Oczywiście w gentoo nie obyło się bez ręcznego patchowania źródełek i kompilacji modułu kernela pt. uinput. Po tych zabiegach Xy umarły xD
edek: nosz kuźwa
[331417.729] (II) config/udev: Adding input device Kensington Kensington USB/PS2 Orbit (/dev/input/event3) [331417.729] (**) Kensington Kensington USB/PS2 Orbit: Applying InputClass "evdev pointer catchall" [331417.729] (**) Kensington Kensington USB/PS2 Orbit: Applying InputClass "emul-wheen-on-left-winkey" [331417.729] (II) Using input driver 'evdev' for 'Kensington Kensington USB/PS2 Orbit' [331417.729] (**) Kensington Kensington USB/PS2 Orbit: always reports core events [331417.729] (**) evdev: Kensington Kensington USB/PS2 Orbit: Device: "/dev/input/event3" [331417.780] (--) evdev: Kensington Kensington USB/PS2 Orbit: Vendor 0x47d Product 0x1022 [331417.780] (--) evdev: Kensington Kensington USB/PS2 Orbit: Found 3 mouse buttons [331417.780] (--) evdev: Kensington Kensington USB/PS2 Orbit: Found relative axes [331417.780] (--) evdev: Kensington Kensington USB/PS2 Orbit: Found x and y relative axes [331417.780] (II) evdev: Kensington Kensington USB/PS2 Orbit: Configuring as mouse [331417.780] (**) Option "EmulateWheel" "true" [331417.780] (**) Option "EmulateWheelButton" "2" [331417.780] (**) evdev: Kensington Kensington USB/PS2 Orbit: YAxisMapping: buttons 4 and 5 [331417.780] (**) evdev: Kensington Kensington USB/PS2 Orbit: EmulateWheelButton: 2, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 [331417.780] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:13.0/usb5/5-3/5-3:1.0/0003:047D:1022.0002/input/input4/event3" [331417.780] (II) XINPUT: Adding extended input device "Kensington Kensington USB/PS2 Orbit" (type: MOUSE, id 11) [331417.780] (II) evdev: Kensington Kensington USB/PS2 Orbit: initialized for relative axes. [331417.780] (**) Kensington Kensington USB/PS2 Orbit: (accel) keeping acceleration scheme 1 [331417.780] (**) Kensington Kensington USB/PS2 Orbit: (accel) acceleration profile 0 [331417.780] (**) Kensington Kensington USB/PS2 Orbit: (accel) acceleration factor: 2.000 [331417.780] (**) Kensington Kensington USB/PS2 Orbit: (accel) acceleration threshold: 4 [331417.780] (II) config/udev: Adding input device Kensington Kensington USB/PS2 Orbit (/dev/input/mouse1) [331417.780] (**) Kensington Kensington USB/PS2 Orbit: Applying InputClass "emul-wheen-on-left-winkey" [331417.780] (II) No input driver specified, ignoring this device. [331417.780] (II) This device may have been added with another device file.
Czyli wszystko działa.
xev po xmodmapowaniu też także również zgłasza lewy winklik jakp 'pointer2'. A działać nie chce :(
Ostatnio edytowany przez lis6502 (2016-01-16 17:36:23)
Offline
Powinno też działać z innymi klawiszami.
Offline
U mnie działało w porządku: xD
Jan 16 15:38:59 morfikownia systemd[1]: Starting LSB: Emulate mouse buttons and mouse wheel... Jan 16 15:39:00 morfikownia mouseemu[109696]: mouseemu 0.15 (C) Colin Leroy <colin@colino.net> Jan 16 15:39:00 morfikownia mouseemu[109696]: using (0+0) as middle button, (0+0) as right button, (125) as scroll. Jan 16 15:39:00 morfikownia mouseemu[109690]: Starting mouse emulation daemon: mouseemu. Jan 16 15:39:00 morfikownia systemd[1]: Started LSB: Emulate mouse buttons and mouse wheel. Jan 16 15:39:02 morfikownia mouseemu[109700]: Trying to open /dev/uinput... Jan 16 15:39:02 morfikownia mouseemu[109700]: ok. Jan 16 15:39:02 morfikownia kernel: input: Mouseemu virtual keyboard as /devices/virtual/input/input29 Jan 16 15:39:02 morfikownia kernel: input: Mouseemu virtual mouse as /devices/virtual/input/input30
Offline
No i działa przemega, tyle że z lewym kliikiem myszy xD. Normalnie się popłaczę. [b]morfik[/b] z tymi od systemd nie rozmawiam <:. Nie no, u mnie zamraża otrzymywanie zdarzeń z urzadzeń wejścia, sieć działa i jak ręcznie ubiję proces mouseemu to wszystko wraca do normy. pewnie brakło jakiejś flagi w xorg-drivers, bo ja niedebianny i stricte bezwirkowy jestem ;p
edek: Wychodzi na to że xorg jest cwańszy niż user: mimo zmapowania do lewego winkeya mysiegobutona2 nadal nie chce skrolować <;:
edek: potwierdzam, mysz przypięta równolegle do trackballa (z kółkiem etc) po wduszeniu fizycznego drugiego mysiklika i ruchu góra-dół generuje skroliwenty. ;(. Skłaniam się do dolutowania trzeciego przycisku...
Ostatnio edytowany przez lis6502 (2016-01-16 23:34:16)
Offline
@[b]morfik[/b], tak, na pewno zmapowałem Pointer_Button2. Hardo googlując dokopałem się do informacji jakoby Xserwer rozróżniał udawany drugi mysiklik od fizycznego, wygenerowanego przez urządzenie.
Okazuje się, że jednak ktoś miał dokładnie takie same rozterki życiowe i co więcej podszedł bardzo sprytnie do [url=http://leho.kraav.com/blog/combine-xf86-input-evdev-middle-button-wheel-emulation-kensington-orbit-trackball/]tematu[/url].
Otóż emulacja scroll eventów odbywa się, jeżeli prawy mysiklik jest przytrzymany dłużej niż xxx ms. W praktyce przy kliknięciu z zamiarem obejrzenia menu kontekstowego naciskamy przycisk na jakieś 15 ms, więc wszystko co powyżej możemy uznać za przytrzymanie i przerobć ruch kursora na przewijanie.
Naprawdę, elastyczność całego Linuksa nie przestanie mnie zadziwiać xD. Już myślałem że szczytem jest uruchomienie dwóch kursorów przy podpiętych dwóch myszach do komputera xD
edek; dabl kursor [url=http://wstaw.org/w/3LcG/][img]http://wstaw.org/m/2016/01/17/Screenshot_2016-01-17_13-48-45_png_300x300_q85.jpg[/img][/url]
dobra, pokazuje jeden ale wierzycie mi na słowo że są dwa xD
Ostatnio edytowany przez lis6502 (2016-01-17 13:38:25)
Offline
Teraz zdałem sobie sprawę z tego, że przecież kombo alt+RMB resize'uje okna ;_; czyli pozbawiłem się jednej z przydatniejszych opcji :> Szkoda że ten mouseemu nie chce za chiny u mnie działać ;/
Anyway, dla potomniastych zamieszczam xorg.confa
Section "InputClass" Identifier "Kotowy skrol" Driver "evdev" Option "EmulateWheel" "True" Option "EmulateWheelButton" "3" Option "YAxisMapping" "4 5" Option "XAxisMapping" "6 7" MatchProduct "Kensington USB/PS2 Orbit" EndSection
Offline
Ja mam troszeczkę inaczej, bo u mnie dziwne bugi się zaczęły pojawiać po implementacji tej emulacji:
Section "InputClass" Identifier "A4Tech USB Mouse" Driver "evdev" MatchIsPointer "yes" MatchDevicePath "/dev/input/event*" MatchProduct "USB" MatchVendor "A4Tech|Logitech" Option "Name" "A4Tech USB Mouse" Option "AccelerationNumerator" "2" Option "AccelerationDenominator" "1" Option "AccelerationThreshold" "4" Option "ButtonMapping" "1 2 3 4 5 6 7 8 9 10 11 12" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" # Option "SwapAxes" "on" # Option "InvertX" "on" # Option "InvertY" "on" Option "EmulateThirdButton" "on" Option "EmulateThirdButtonButton" "2" Option "EmulateThirdButtonMoveThreshold" "0" Option "EmulateThirdButtonTimeout" "400" Option "EmulateWheel" "1" Option "EmulateWheelButton" "3" EndSection
Poza tym, skąd ci się wziął ALT? U mnie nie trzeba żadnych przycisków na klawiaturze trzymać by ta emulacja działała. xD
Ostatnio edytowany przez morfik (2016-01-17 19:29:46)
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00008 | SET NAMES latin2 |
0.00057 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.158.10' WHERE u.id=1 |
0.00103 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.158.10', 1732572580) |
0.00040 | SELECT * FROM punbb_online WHERE logged<1732572280 |
0.00088 | DELETE FROM punbb_online WHERE ident='18.191.97.229' |
0.00063 | DELETE FROM punbb_online WHERE ident='185.191.171.4' |
0.00071 | SELECT topic_id FROM punbb_posts WHERE id=295690 |
0.00007 | SELECT id FROM punbb_posts WHERE topic_id=28099 ORDER BY posted |
0.00028 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28099 AND t.moved_to IS NULL |
0.00025 | SELECT search_for, replace_with FROM punbb_censoring |
0.00175 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28099 ORDER BY p.id LIMIT 0,25 |
0.00101 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28099 |
Total query time: 0.00777 s |