Na wstępie chcę zaznaczyć że treść tego tutka pochodzi z tej strony i nie jest moją własnością.
Sposób opisany poniżej polecam osobom mniej wprawionym w linuksie ponieważ w odróżnieniu od bezrozumnego żąglowania plikami typu "xorg.conf" nie grozi zamrożeniem sobie systemu na etapie ładowania splash'a ... Nie przeciągając:
Cała zabawa będzie polegać na przypisaniu niedziałającym przyciskom myszy skrótów klawiaturowych metodą oszukania X-serwera makrami.
Na początek trzeba się zaopatrzyć w 2 niewielkie programiki: "xmacro" oraz "xbindkeys" dzięki którym możliwe będzie "sczytanie" przycisków klawiatury oraz odtworzenie przypisanych im przez nas funkcji podczas gdy dany klawisz bądź kombinacja klawiszy zostaną użyte. W tym celu otwieramy terminal i wklejamy co następuje:
Kod: Zaznacz cały
sudo apt-get install xbindkeys xmacro
Kod: Zaznacz cały
gedit ~/.xbindkeysrc
Kod: Zaznacz cały
"echo 'KeyStrPress Enter KeyStrRelease Enter' | xmacroplay :0"
b:1
"KeyStrPress"- określa że dla przycisku "b:1" myszy zostało zasymulowane wciśnięcie jakiegoś przycisku na klawiaturze, w tym przypadku klawisza - "Enter". Jednocześnie przycisk "Enter" został zwolniony poprzez polecenie - "KeyStrRelease Enter".
W skrócie oznacza to iż przycisk "Enter" został ukatywniony i zwolniony w wraz z użyciem przycisku "b:1" myszy. Pytanie który przycisk myszy to "b:1"?
Nasza mysz składa się z szeregu przycisków których nazwy będą rozpoczynać się od:
Dla mojej myszy (Logitech Performance MX) niektóre nazwy to:"b"
Generalnie w gryzoniu Performance MX po instalacji ubuntu 10.04 nie działają tylko 2 przyciski "b:10" i "b:13" więc skupiłem się tylko na nich.b:1 - lewy przycisk (przycisk działa)
b:2 - środkowy przycisk (przycisk działa
b:3 - prawy przycisk (przycisk działa)
...
...
b:10 - przycisk pod kciukiem (przycisk nie działa)
b:11 - brak
b:12 - brak
b:13 - przycisk przełączający rozdzielczość myszy (przycisk nie działa)
Sprawdźmy więc który przycisk myszy będzie się nazywał "b:1". W tym celu wklejamy w terminal polecenie:
Kod: Zaznacz cały
xbindkeys -n -v
i potwierdzamy enterem.
W tym momencie "b:1" - jeden z przycisków myszy (domyślnie b:1 jest to lewy) przestanie działać w sposób dotychczasowy i po każdorazowym jego wciśnięciu zobaczymy w termnalu odpowiedź typu:
Dowiedzieliśmy się właśnie iż przycisk "b:1" jest lewym przyciskiem naszej myszy . Teraz musimy przywrócić domyślne ustawienie lewego przycisku myszy aby dało się go używać, wracamy więc do terminala (klik prawym przyciskiem na terminal, lewym na jego belkę i wykonujemy skrót klawiszowy CONTROL+C"echo 'KeyStrPress Enter KeyStrRelease Enter' | xmacroplay :0"
m:0x0 + b:1 (mouse)
got screen 0 for window ab
Start program with fork+exec call
XTest for server ":0.0" is version 2.2.
KeyStrPress: Enter
KeyStrRelease: Enter
Unknown tag: Enter
xmacroplay: pointer and keyboard released.
Button release !
e.xbutton.button=1
e.xbutton.state=256
Operację wykrywania nazw przycisków myszy powtarzamy edytując nasz docelowy plik ".xbindkeysrc", zmieniając w nim "b:1" na "b:2" i uruchamiając ponownie polecenie:
Kod: Zaznacz cały
xbindkeys -n -v
Następny etap to przypisanie skrótów klawiszowych wybranym przyciskom myszy.W tym celu otwieramy terminal wklejamy polecenie:
Kod: Zaznacz cały
xmacrorec2 > dump.txt
Kod: Zaznacz cały
cat dump.txt
Kod: Zaznacz cały
philip@philip-laptop:~$ cat dump.txt
MotionNotify 477 361
KeyStrPress Control_L
KeyStrRelease Control_L
KeyStrPress Shift_L
KeyStrRelease Shift_L
KeyStrPress Super_L
KeyStrRelease Super_L
KeyStrPress Alt_L
KeyStrRelease Alt_L
KeyStrPress a
KeyStrRelease a
KeyStrPress b
KeyStrRelease b
KeyStrPress c
KeyStrRelease c
...
philip@philip-laptop:~$
W tym celu ponownie edytujemy plik ".xbindkeysrc" Zamieniając poprzedne dane tymi które będą dla nas użyteczne. W moim przypadku dwa niedziałające przyciski gryzonia użyłem do obsługi skrótów klawiszowych compiz'a. Potrzebowałem kombinacji klawiszy do Expo- Super(Win) + l oraz przełączania między oknami- Control + l więc w swoim pliku wpisałem:
Kod: Zaznacz cały
#Compiz: inicjuj - Expo:
"echo 'KeyStrPress Super_L KeyStrPress l KeyStrRelease Super_L KeyStrRelease l' | xmacroplay :0"
b:13
#Compiz: Szybki Wybór - Inicjuj przeglądanie wszystkich okien:
"echo 'KeyStrPress Control_R KeyStrPress l KeyStrRelease Control_R KeyStrRelease l' | xmacroplay :0"
b:10
Kod: Zaznacz cały
xbindkeys -n -v
Jeśli coś nie działa polecam przeczytać tutek jeszcze raz lub zapoznać się z oryginałem na tej stronie .
Pozdrawiam i życzę powodzenia !.