# Lineak dla gryzoni

## manwe_

Nie udało mi się nic wygooglać. Poszukuję czegoś co pozwoliłoby wykorzystać dodatkowe kliki na gryzoniu i przypisać im jakieś akcje (choćby zamknięcie aktywnej aplikacji). Jest coś takiego?  :Smile: 

// Jeśli ma to jakieś znaczenie, gryzon to MS Comfort 3000

----------

## taopai

strzelam ze to ma cos wspolnego z xorg.conf, sekcja "input device" i zaxismapping czy siakos tak - nie pamietam, bosiedze teraz na windzie.

pozdrawiam,

tao

----------

## wodzik

xbindkeys czasem nie potrafi czegos takiego ??

----------

## v7n

Xbindkeys, Xvkbd; przydaje sie tez Xmodmap

Gdyby Cie interesowalo tutaj znajdziesz mini howto jak wykorzystac wiecej przyciskow.

----------

## rasheed

A ja mam pytanie - co jeżeli xev traktuje boczne przyciski (przy kciuku) jako button trzeci i drugi (tak jak PPM i rolka), a przyciski na rolce (rolka 3D, może się poruszać w bok) jako drugi i *nic*?  :Wink: 

----------

## BeteNoire

Poeksperymentuj z przemapowaniem przycisków. Np: 

```
xmodmap -e "pointer = 1 2 3 6 7 4 5"
```

Musi to się zgrywać z tym ile buttonów podałeś w xorg.conf.

Wstawiasz potem taką linijkę do autostartu Twojego WM albo do ~/.xinitrc.

----------

## rasheed

Nie w tym rzecz. Próbowałem działać z evdev - xev widzi przyciski tyle, że wtedy multimedialne na klawiaturze przestają działać  :Wink: 

anyway, jak xev mi już wykrywa przyciski to jak je przypisać do różnych czynności - np. przełączeniu pulpitów? Kombinowałem coś z xbindkeys i DCOP.

----------

## manwe_

Próbowałem z xev, przyciski 1 [LMB], 2 [scrollclick], 3 [RMB], 4-5 [scroll] są ok, natomiast 6 [boczny] albo nie jest rejestrowany [wogóle jako akcja] - przy Option "Protocol" "auto", albo jako 3 przy "ImPS/2". Z jakimi jeszcze protokołami mogę próbować uzyskać szósty klyk?

----------

## rasheed

Miałem bardzo podobnie. Możesz spróbować z evdev.

1. Jeżeli masz modularne xorgi to zainstaluj xf86-input-evdev

2. Wkompiluj w jajko jako moduł evdev, następnie go załaduj

3. W xorg.conf ustaw:

Option "Device"      "/dev/input/event1" lub event0 (zależy jaki będziesz mieć, sprawdź)

oraz 

Driver      "evdev"

Restart xorgów, xev powinien wykrywać wszystkie przyciski.

Pozdrawiam.

----------

## manwe_

Jeśli dobrze rozumiem "modularne" >= 7.0. Ja mam 6.8.2-r6

----------

## rasheed

W takim razie powinieneś mieć evdev standardowo w xorgu. Przynajmniej tak mi się wydaje  :Wink: 

----------

## YANOUSHek

Hej!

Możliwe, że będę Ci w stanie pomóc. Sam posiadam mysz Logitech MX1000 i udało mi się na niej odpalić wszystkie guziki (jest ich 10 + scroll, co w sumie daje 12). Moje wszystkie ustawienia to:

```

$ cat /etc/X11/xorg.conf

[...]

Section "InputDevice"

   Identifier   "MX1000"

   Driver   "mouse"

   Option "Protocol"         "evdev"

   Option "Dev Name"         "Logitech USB Receiver"

   Option "Dev Phys"         "usb-0000:00:02.0-1/input0"

   Option "Device"            "/dev/input/event3"

   Option "Buttons"         "12"

   Option "ZAxisMapping"   "11 12"

   Option "Resolution"      "800"

EndSection

[...]

$ cat .xinitrc

[...]

/usr/X11R6/bin/xmodmap -e "pointer = 1 2 3 6 7 8 9 10 11 12 4 5" &

xbindkeys &

[...]

$ cat .xbindkeysrc

[...]

"xvkbd -xsendevent -text "\Cw""

        b:8

"xvkbd -xsendevent -text "\[Page_Up]""

        b:9

        

"xvkbd -xsendevent -text "\[Page_Down]""

        b:10

"xvkbd -xsendevent -text "\C\[Page_Up]""

        b:11

"xvkbd -xsendevent -text "\C\[Page_Down]""

        b:12
```

Z tego co widać, to klawisze 11 i 12 przełączają zakładki w firefoxie, 9 i 10 robią PageUp i PageDown, natomiast 8 zamyka zakładkę :). Reszta klawiszy działa bez żadnej konfiguracji -- Lewy, Prawy, Środkowy, Kółko w górę, Kółko w dół, Wstecz, Wprzód.

Oczywiście musisz mieć w jądrze wkompilowane evdev, ale to już wcześniej było.

EDIT: Oczywiście evdev jest stadardowo w <=xorg-7.0

----------

## manwe_

Dzięki wszystkim za dotychczasową pomoc, ale problem nadal nierozwiązany. Aktualnie mam:

```

Section "InputDevice"

        Identifier  "Mouse0"

        Driver      "mouse"

        Option      "Protocol" "evdev"

        Option       "Device" "/dev/input/event3"

        Option      "Dev Phys" "isa0060/serio1/input0"

        Option      "Buttons" "6"

        Option      "ZAxisMapping" "4 5"

EndSection

```

i xev wciąż nie rejestruje szóstego kliku. Próbowałem różne /dev/input/eventX oraz w akcie desperacji - Buttons == 7 i wyżej. Nic narazie nie pomogło   :Confused: 

----------

## Polin

A zagladales tu:

http://gentoo-wiki.com/HOWTO_Mouse_Nav_Buttons

?

----------

## manwe_

Udało się w końcu. Ilość przyciskół trzeba było dać 7 (a mysz ma tylko 6  :Confused:  dziwne, ale szósty jest pomijany, tak jakby gryzoń go miał, ale przycisku fizycznie nie było... pewnie wina używania tej samej elektroniki do różnych modeli), protokół ExplorerPS/2 i potem przemapować kolejność.

Teraz drugie pytanie, jak zamknąć aktywną aplikację. Szukałem m.in. po przykładowych config'ach xbindkeys, ale nie znalazłem. Może wystarczyło by wysłać sigterm'a do aktywnego procesu, ale jak dowiedzieć się, który aktualnie ma focus?

update:

Sigterm odpada, opera traktuje to jako niepoprawne zakończenie programu...

----------

## argasek

Moved from Polish to Instalacja i sprzęt.

----------

