Tags Posts tagged with "xbindkeys"

xbindkeys

przez -
19 1435

Program xbindkeys służy do przechwytywania skrótów klawiaturowych i wykonywania skojarzonych z nimi poleceń. W skrótach tych można użyć wszystkich klawiszy. Artykuł stanowi uzupełnienie opublikowanego już poradnika Klawiatura Multimedialna

Instalacja xbindkeys

Jeśli używamy dystrybucji zarządzającej pakietami za pomocą yuma, wpisujemy:

yum install xbindkeys

Jeśli używamy dystrybucji zarządzającej pakietami za pomocą apt, wpisujemy:

apt-get install xbindkeys

Download i opis instalacji ze źródeł znajduje się pod adresem nongnu.org

Przygotowanie do uruchomienia xbindkeys

Tworzymy domyślny plik konfiguracyjny :

xbindkeys --defaults > ~/.xbindkeysrc

Rozpoznawanie kodów klawiszy xbindkeys

W terminalu wpisujemy:

xbindkeys -k

Po wykonaniu polecenia wciskamy klawisz bądź kombinację klawiszy, w efekcie pojawia się wynik działania programu. Kody znajdują się pod tekstem “(Scheme function)”. Zazwyczaj są to dwie linie: w pierwszej znajduje się numeryczny kod wpisanych klawiszy, w drugiej skrótowy kod klawiszy (informacja “NoSymbol”, oznacza to, że system nie rozpoznał klawisza, zatem możliwe jest tylko użycie kodu numerycznego).

Przykład:

Po uruchomieniu programu przechwytującego i wciśnięciu kombinacji ctrl+alt+u otrzymujemy wynik:

Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
    m:0x1c + c:30
    Control+Alt+Mod2 + u

kod numeryczny kombinacji: m:0x1c + c:30
kod skrótowy kombinacji: Control+Alt+Mod2 + u

Edycja skrótów xbindkeys

Otwieramy plik /.xbindkeysrc dowolnym edytorem tekstu i umieszczamy w nim definicje własnych skrótów. Każda definicja składa się z dwóch linii. W pierwszej linii jest wpisane polecenie, w drugiej zaś – kombinacja klawiszy, którą chcemy je uruchamiać. Jeśli na przykład kombinacja klawiszy ctrl+alt+u miałaby uruchamiać gnome-terminal, definicja wyglądałaby tak:

gnome-terminal&
Control+Alt+Mod2 + u

lub tak:

gnome-terminal&
m:0x1c + c:30

Znak “&” na końcu linii z poleceniem mówi, że polecenie należy wykonać w tle, dzięki czemu program xbindkeys nie zablokuje się. Przy okazji warto usunąć (lub zahashować) zdefiniowane w pliku definicje domyślne.

Uruchomienie programu xbindkeys

Program uruchamiamy wpisując w konsoli xbindkeys. Jeśli chcemy, aby program uruchamiał się automatycznie, należy dodać go do autostartu używanego środowiska graficznego. Na przykład w GNOME robimy to w okienku, które pojawi się po wykonaniu polecenia:

gnome-session-properties

Klawiatura, sprzęt

Klawiatura multimedialna nie jest dziś żadną nowością. Większość z nas posiada urządzenia z dodatkowymi guzikami czy funkcjami. Niestety większość z tych guzików działa tylko pod systemami Microsoft Windows. Wciskając guzik z dużą literkę e uruchamiamy przeglądarkę Internet Explorer. A co zrobić jeśli posiadamy Linuksa? Przecież tam nie mamy IE. Na szczęście jest wiele programów, które pomogą nam skonfigurować dodatkowe klawisze tak by uruchamiały przez nas zdefiniowane aplikacje lub polecenia.

Większość dystrybucji Linuksa radzi sobie poprawnie z klawiszami funkcyjnymi wbudowanymi w klawiatury laptopów. A co jeśli posiadamy zwykłą multimedialną klawiaturę? Nie ma co się martwić. Sprawa jest bardzo prosta a pomoże nam w tym kilka aplikacji.

LinEAK – Linux Easy Access Keyboards

Pierwszą aplikacją z jakiej możemy skorzystać jest LinEAK. Niestety aplikacja nie jest od bardzo dawna rozwijana. Jest to dość prosty w użyciu program z ładnym interfejsem graficznym. Być może w repozytoriach popularnych dystrybucji Linuksa jest on jeszcze dostępny. Jeśli nie to musimy sami go skompilować z ostatnich paczek jakie można znaleźć na sourceforge.net. Wersja jaką udało mi się odszukać jest z 24 maja 2006 roku.

LinEAK

Aplikacja ma wbudowaną bazę klawiatur. Jeżeli posiadamy klawiaturę, która jest już zdefiniowana w programie wystarczy ją wybrać z listy dostępnych urządzeń. To tyle. Kolejnym krokiem będzie uruchomienie demona lineakd. Słucha on sygnałów jakie wysyła klawiatura, a następnie podejmuje odpowiednią akcję.

W przypadku jeśli aplikacja nie posiada zdefiniowanej klawiatury to możemy sami przechwycić sygnał klawisza a następnie do niego podpiąć odpowiednią aplikację. Dla GNOME możemy posłużyć się aplikacją acme.

HotKeys

Kolejną aplikacją z jakiej możemy skorzystać jest program HotKeys. Niestety nie jest on rozwijany już od dawna. Ostatnia wersja jaką znalazłem jest z 11 grudnia 2002 roku. Jest ona oznaczona numerem 0.5.7.1. Aby zobaczyć jakie klawiatury są domyślnie wspierane należy wydać polecenie hotkeys -l. Lista klawiatur nie jest duża.

Klawiatura
Na szczęście podobnie jak w przypadku poprzedniej aplikacji istnieje możliwość ręcznej konfiguracji klawiszy. Pliki konfiguracyjne dla całego systemu dostępne są w katalogu /usr/share/hotkeys/. Jeżeli chcemy skonfigurować klawisze niezależnie od użytkownika, to w jego katalogu domowym tworzymy plik .hotkeys. Jest to plik XML, który trzyma się schematu < Opcja keycode="numer"/ >. Przykładowa konfiguracja dla klawiatury Acer TravelMate 430:

<definition>

  <config model="Acer TravelMate 430">

    <Play         keycode="162"/>
    <NextTrack    keycode="153"/>
    <PrevTrack    keycode="144"/>
    <Stop         keycode="164"/>

    <VolUp        keycode="176" adj="2"/>
    <VolDown      keycode="174" adj="2"/>

    <WebBrowser   keycode="178"/>
    <Email        keycode="236"/>
    <Prog1        keycode="159"/>
    <Prog2        keycode="151"/>
  </config>

  <contributor>
    <name>Ludovic Rousseau</name>
    <email>ludovic.rousseau@free.fr</email>
  </contributor>

</definition>

Teraz należy edytować plik /etc/hotkeys.conf. W sekcji Kbd podajemy nazwę pliku konfiguracyjnego z naszą klawiaturą. W pliku konfiguracyjnym możemy sobie ustawić kolor OSD (on Screen Display), który powiadomi nas o tym jaki guzik wcisnęliśmy. Definiujemy tam również, różne akcje jakie możemy przypisać dodatkowym klawiszom.

Jak pobrać kod klawisza?

Do pobrania kodu klawisza posłuży nam prosta aplikacja o nazwie xev. Po jej uruchomieniu pojawi nam się małe białe okienko z czarnym kwadratem.

xev
Wciskając dowolny guzik na klawiaturze powinniśmy zobaczyć na konsoli podobne wpisy do:

KeyPress event, serial 27, synthetic NO, window 0x2a00001,
    root 0x9e, subw 0x0, time 276586277, (384,81), root:(456,108),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 30, synthetic NO, window 0x2a00001,
    root 0x9e, subw 0x0, time 276586397, (384,81), root:(456,108),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"

KeyPress event, serial 30, synthetic NO, window 0x2a00001,
    root 0x9e, subw 0x0, time 276587590, (384,81), root:(456,108),
    state 0x10, keycode 230 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 30, synthetic NO, window 0x2a00001,
    root 0x9e, subw 0x0, time 276587667, (384,81), root:(456,108),
    state 0x10, keycode 230 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:

Jak można zauważyć najpierw został wciśnięty i puszczony guzik [ a ]. Następnie był to jakiś klawisz dodatkowy o keycode równym 230 (keycode 230 (keysym 0x0, NoSymbol)). Właśnie liczba 230 jest kodem klawisza jaki możemy podać do aplikacji.

XBindKeys

Kolejną bardzo ciekawą aplikację jest XBindKeys. Konfiguracja tego programu jest bardzo podobna do pozostałych. O ile poprzednie aplikacje posiadają predefiniowane klawiatury, tutaj musimy wszystko zrobić ręcznie. Najpierw tworzymy plik .xbindkeysrc.

XBindKeys

Plik ten możemy wygenerować poleceniem: xbindkeys --defaults > ~/.xbindkeysrc. Następnie wydajemy polecenie xbindkeys -k i przystępujemy do konfiguracji aplikacji. Wyskoczy nam małe okienko, a w konsoli pojawi się prośba o naciśnięcie jakiegoś klawisza do którego chcemy ustawić opcję.

Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"NoCommand"
    m:0x10 + c:230
    Mod2 + NoSymbol

Teraz należy skopiować dwie pierwsze linijki, czyli:

"NoCommand"
    m:0x10 + c:230

do wcześniej stworzonego pliku. W pierwszej linijce w między cudzysłowami wpisujemy polecenie jakie ma się uruchomić po wciśnięciu guzika np:

"/usr/bin/mozilla-firefox"
    m:0x10 + c:230

W ten sam sposób konfigurujemy resztę guzików. Teraz wystarczy uruchomić xbindkeys i dodatkowe guziki będą działać.

GNOME i klawiatura multimedialna

Jeżeli posiadamy środowisko graficzne GNOME to sprawa jest jeszcze prostsza. Udajemy się do aplikacji Skróty klawiaturowe w menu System -> Preferencja -> Skróty klawiaturowe. Konfigurowanie skrótów jest tam bardzo proste.

Skróty Klawiszowe

Niestety nie zawsze poprawnie wykrywane są wszystkie guziki. Wtedy pozostaje nam skorzystać z innych rozwiązań.

KeyTouch

Aplikacja KeyTouch składa się z dwóch programów: samego KeyTouch oraz programu do konfigurowania aplikacji o nazwie KeyTouch Editor.

KeyTouch

Po wybraniu konkretnego modelu możemy dostosować poszczególne klawisze do naszych potrzeb. Jeżeli nie ma naszej klawiatury na liście możemy skonfigurować jej klawisze w podobny sposób jak to było robione w poprzednich aplikacjach.

KeyTouch KeyTouch

Do konfiguracji posłuży nam aplikacja KeyTouch Editor. Pierwszym krokiem będzie wybranie sposobu podłączenia oraz typu urządzenia. Następnie zostajemy proszeni o wciśnięcie jakiegoś klawisza funkcyjnego. Powinien ukazać się nam bardzo przyjemny konfigurator.

Teraz pozostało skonfigurować klawisze i przypisać do nich funkcje, uruchamiane aplikacje lub pluginy jakie zawiera program. Jeżeli posiadamy plik konfiguracyjny to wracamy do aplikacji KeyTouch i go do niej importujemy. Teraz wystarczy zastosować zmiany i cieszyć się obsługą klawiatury.

Polecane

Prasa, Czasopismo

1 826
Ukazało się Linux Magazine – numer 161. Lipcowe wydanie magazynu zawiera analizę tworzenia bardziej czytelnych wyrażeń regularnych z Simple Regex Language, instrukcje zabezpieczania i...