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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-01-14 18:29:06

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Nietypowy scroll- da się?

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

Kod:

Section "InputClass"
Identifier "liske rox"
MatchIsPointer "on"
option "emulate3buttons" "on"
EndSection

Aczkolwiek średnio mnie to odpowiada, wolałbym z klawiatury ;)

edek: kolejny hint

Kod:

xmodmap -e 'keysym Super_L = Pointer_Button2'
xkbset m

Powoli do przodu :)

Ostatnio edytowany przez lis6502 (2016-01-14 19:47:10)

Offline

 

#2  2016-01-14 20:44:56

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nietypowy scroll- da się?

A takie coś się nada? https://en.wikipedia.org/wiki/Mouse_keys

Offline

 

#3  2016-01-16 14:56:16

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Nietypowy scroll- da się?

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

 

#4  2016-01-16 15:31:41

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Nietypowy scroll- da się?

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

 

#5  2016-01-16 15:44:04

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nietypowy scroll- da się?

Można także tym: [deb]mouseemu[/deb] . W pliku /etc/default/mouseemu dodajesz np:

Kod:

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

 

#6  2016-01-16 17:26:00

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Nietypowy scroll- da się?

@[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

Kod:

[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

 

#7  2016-01-16 18:01:48

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Nietypowy scroll- da się?

Powinno też działać z innymi klawiszami.

Offline

 

#8  2016-01-16 19:13:11

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nietypowy scroll- da się?

U mnie działało w porządku: xD

Kod:

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

 

#9  2016-01-16 23:17:01

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Nietypowy scroll- da się?

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

 

#10  2016-01-17 13:12:55

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nietypowy scroll- da się?

Na pewno zmapowałeś odpowiedni przycisk? xD Pokaż jak widzi je Xserver.

Offline

 

#11  2016-01-17 13:24:55

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Nietypowy scroll- da się?

@[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

 

#12  2016-01-17 14:14:32

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nietypowy scroll- da się?

No i fajnie. W końcu nie muszę kręcić tą rolką, tylko prawy klik i w góre/doł. xD

Offline

 

#13  2016-01-17 19:16:41

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Nietypowy scroll- da się?

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

Kod:

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

 

#14  2016-01-17 19:24:31

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nietypowy scroll- da się?

Ja mam troszeczkę inaczej, bo u mnie dziwne bugi się zaczęły pojawiać po implementacji tej emulacji:

Kod:

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

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.012 seconds, 12 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00131 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.116.86.132' WHERE u.id=1
0.00079 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.116.86.132', 1732287987)
0.00056 SELECT * FROM punbb_online WHERE logged<1732287687
0.00059 DELETE FROM punbb_online WHERE ident='18.218.76.193'
0.00077 SELECT topic_id FROM punbb_posts WHERE id=295650
0.00010 SELECT id FROM punbb_posts WHERE topic_id=28099 ORDER BY posted
0.00092 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.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00230 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.00086 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28099
Total query time: 0.00843 s