Klawiatury multimedialne

Archiwalne, stare wpisy FAQ i HowTo Użytkowników
master
Posty: 5
Rejestracja: 13 sierpnia 2006, 21:40
Lokalizacja: Kraków - CIX/KIX

Klawiatury multimedialne

Post autor: master »

W artykule postaram się wyjaśnić, jak wykorzystać potencjał swojej klawiatury multimedialnej w systemie Debian Gnu/Linux.
Zakładamy, iż posiadamy klawiaturę multimedialną, czyli klawiaturę z dodatkowymi przyciskami, odpowiedzialnymi za włączenie muzyki, przeglądarki internetowej, czy klienta poczty.
Do aktywowania klawiatury w systemie będziemy potrzebować 2 pakiety: xev oraz hotkeys. Pierwszy odpowiedzialny jest za przechwytywanie kodu klawisza, drugi natomiast do umożliwienia wykorzystania danego klawisza do określonego celu. Teraz sprawdzimy, czy posiadamy owe aplikacje.

Kod: Zaznacz cały

which xev
Jeżeli po wydaniu polecenia wyświetli się coś na wzór:

Kod: Zaznacz cały

/usr/bin/xev
Oznacza to, iż pakiet jest już zainstalowany w systemie i możemy go uruchomić, najlepiej wykorzystując ścieżkę, podaną przez pakiet which.
Tak samo sprawdzamy, czy posiadamy drugi niezbędny nam pakiet

Kod: Zaznacz cały

which hotkeys
Jeżeli po wydaniu polecenia nie wyświetli się nic, to znaczy, że musimy zainstalować potrzebny nam pakiet:

Kod: Zaznacz cały

apt-get install hotkeys
Teraz, gdy posiadamy już potrzebne programy, możemy zająć się rozpoznaniem naszej klawiatury z wykorzystaniem pakietu xev. Włączamy program xew, poprzez wydanie komendy
xew lub /usr/bin/xew w terminalu i mamy włączoną aplikacje, przy widocznej konsoli wciskamy jeden z przycisków multimedialnych i skupiamy się na tym, co zostało wyświetlone przez program.

Kod: Zaznacz cały

KeyPress event, serial 31, synthetic NO, window 0x4800001,
    root 0x64, subw 0x0, time 156404347, (636,-202), root :( 640,313),
    state 0x0, keycode 223 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False
Interesuje nas numer, który znajduje się obok keycode , to on jest kodem klawisza i to właśnie on nas interesuje. Ponieważ już wiemy, jak sprawdzić numery klawiszy, to sprawdzamy każdy klawisz, który chcemy wykorzystać, wciskając po kolei i notując wyniki. Co dalej? Trzeba zająć się plikiem konfiguracyjnym dla pakietu hotkeys, domyślnie takowe znajdują się w /usr/share/hotkeys/ . Warto wypisać wartość katalogu, może akurat posiadasz klawiaturę, do której plik już istnieje. Wykonujemy to poleceniem:

Kod: Zaznacz cały

 ls -1 /usr/share/hotkeys/   
Niestety, jak widać lista gotowych plików jest bardzo mała, więc zabierzemy się do wykonania pliku samodzielnie. Będziemy potrzebować rozpiskę, jakiemu klawiszowi, jaki odpowiada kod, my wykonaliśmy ją wcześniej. Tworzymy plik, który będzie konfigiem dedykowanym dla naszej klawiatury i naszych upodobań, poprzez wydanie komendy

Kod: Zaznacz cały

  > /usr/share/hotkeys/nazwanaszejklawiatury.def 
Włączamy jakiś edytor tekstu, ja używam do tego celu GNU Nano, i kopiujemy podany niżej przykładowy konfig do utworzonego przed chwilą /usr/share/hotkeys/nazwanaszejklawiatury.def , wiele edytorów automatycznie utworzy plik przy zapisywaniu zmian, tworzenie pliku jest wtedy całkowicie zbędne.

Kod: Zaznacz cały

<?xml version="1.0"?>

<definition>

  <config model="Klawiatury_Tracer">Opisuję jak w prosty sposób aktywować klawisze multimedialne.

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

    <VolUp        keycode="176" adj="1"/>
    <VolDown      keycode="174" adj="1"/>
    <Mute         keycode="160"/>

    <WebBrowser   keycode="178"/>
    <Email        keycode="236"/>

    <userdef keycode="230" command="przeglądarka /home/user">Home</userdef>

  </config>

  <contributor>
    <name>Nasze imię</name>
    <email>Nasz adres e-mail</email>
  </contributor>

</definition>
W pliku zamieniamy kody klawiszy na odpowiadające naszej klawiaturze.

Tutaj opis poszczególnych oznaczeń:

Kod: Zaznacz cały

PrevTrack - klawisz przełączający do poprzedniego utworu
Play - klawisz włączający utwór będący aktualnie na playliście lub też zatrzymuje aktualnie słuchany utwór z zachowaniem miejsca zatrzymania
Stop - klawisz wyłączający słuchanie aktualnie utworu
PrevTrack - klawisz przełączający do następnego utworu
VolUp - klawisz pogłaśniający, adj="1" oznacza zmianę o 1 stopień
VolDown - klawisz ściszający, adj="1" oznacza zmianę o 1 stopień
Mute - klawisz wyłączający całkowicie dźwięk
WebBrowser - uruchamia przeglądarkę sieci Web, która jest uznana za domyślną 
Email - uruchamia klienta poczty, będącego uznanym za domyślny
Możemy także zdeklarować wykonywanie polecenia, poprzez użycie userdef poniżej znajduje się przykład:

Kod: Zaznacz cały

     <userdef keycode="230" command="przeglądarka /home/user">Home</userdef> 



Po zapisaniu możemy uruchomić aplikację wraz z własnym plikiem konfiguracyjnym, w tym celu wydajemy polecenie:

Kod: Zaznacz cały

hotkeys -t nazwanaszejklawiatury.def
[EDIT]
=============================
Otrzymałem już kilkukrotnie informacje, iż wiele osób nie ma pakietu xev w Debianie, ani w jego domyślnych repozytoriach. Ja korzystałem zawsze ze swojej listy serwerów, dzięki temu zawsze ów pakiet posiadałem w repo (możliwe, że powodem było instalowanie przeze mnie XServera-XORG, zamiast XFREE). Aby pomóc innym, którzy tego pakietu nie posiadają, zdecydowałem się na umieszczenie tutaj odnośnika do gotowego pakietu .deb. Ten akurat pochodzi z (K)Ubuntu, zależy od libc6 (>=2.3.4.-1), libx11-6, a od niego zależy ( xev zastępuje go): xbase-clients(<6.8.2-38)
Download:
xev_1%3a1.0.1-0ubuntu1_i386.deb
=============================
[/EDIT]





Uruchamianie hotkeys w LXDE dodane przez xsenyx

Bez zbędnego tworzenia jakiś skryptów czy czegoś innego. Wystarczy edytować plik

Kod: Zaznacz cały

 gedit /etc/xdg/lxsession/LXDE/autostart 
i dodać wpis

Kod: Zaznacz cały

  @hotkeys -t <twoja_klawiaturka> 
DaViDeX
Posty: 18
Rejestracja: 11 lipca 2006, 20:15
Lokalizacja: Opinogóra

Post autor: DaViDeX »

cześć. robię wszystko wg Twoich wskazówek. kody klawiszy mam takie same jak w Twoim przykładowym pliku(widać producenci troszkę dbają o kompatybilność). działają mi wszystkie klawisze multimedialne, oprócz mute --volume i +volume. trochę pogrzebałem i doszedłem do "wniosków": http://debian.linux.pl/viewtopic.php?t=235 . Pokazuje się OSD, ale nic się nie dzieje. co to może być? podejrzewam, że hotkeys próbuje zmieniać kanał master, zamiast pcm. szukałem opcji, która by to zmieniała, ale nic nie zanalzłem. proszę o pomoc.
Liseeeek
Posty: 86
Rejestracja: 13 kwietnia 2007, 00:14

Post autor: Liseeeek »

Uwaga ludziska!!!!

Pakiet sie nazywa xev nie xew, bo tutaj koles popelnij pare bledow raz pisze tak a raz inaczej ;]

//Edit
nastepny blad!
przy uruchamianiu hotkey'a
piszemy:

Kod: Zaznacz cały

hotkeys -t moja_klawa
bez rozszerzenie ".def" na koncu

//Edit2
Jak ktos ma amaroka to:
vim /etc/hotkeys.conf i dodajemy:

Kod: Zaznacz cały

PrevTrack=amarok -r
Play=amarok --play-pause
Stop=amarok --stop
Pause=amarok --pause
NextTrack=amarok -f
PozdrawiaaaaaaaM
dracorp
Posty: 60
Rejestracja: 04 kwietnia 2007, 17:43
Lokalizacja: Koszalin

Post autor: dracorp »

Warto dodać, że np. w przypadku mojego laptopa HP Presario 2500 do obsługi przycisków one-touch i "innych niebieskich" potrzebny był pakiet omnibook (którego brak w repo) i zabawa z setkeycodes w /etc/rc.local. np.

Kod: Zaznacz cały

setkeycodes e070 130
showkey (nie sprawdzwać pod Xami) i dumpkeys w tym przypadku są bardzo przydatne.
Jak już mamy odpowiedni keycodes to w ~/.xmodmap możemy dopisać np.

Kod: Zaznacz cały

! 
keycode 236 = XF86Mail
keycode 140 = XF86Search
itd
Potem już np. gnome rozpoznaje dane klawisze jako zaznaczone powyżej w Skrótach Klawiaturowych.
Nazwy symboliczne są w /usr/share/X11/XKeysymDB
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

To ja podam adres konkurencyjnego poradnika mojego autorstwa, może tam będzie mniej błędów :P


http://kaka.ovh.org/howto/hotkeys
Maciorra
Beginner
Posty: 105
Rejestracja: 07 lutego 2007, 23:56
Lokalizacja: Kraków

Moje 0,03 PLN w temacie:)

Post autor: Maciorra »

Do obslugi klawiszy specjalnych w laptopach swietnie nadaje sie programik xbindkeys. Przykladowa konfiguracje opisalem o tu => klicken Sie bitte :)
dracorp
Posty: 60
Rejestracja: 04 kwietnia 2007, 17:43
Lokalizacja: Koszalin

Post autor: dracorp »

Tylko że to kolejne programy działające w tle, dlaczego nie używać czegoś co już jest w systemie (pomijając sterowniki bez których klawisze są nie widoczne).
matiit
Beginner
Posty: 231
Rejestracja: 27 stycznia 2007, 09:45

Post autor: matiit »

dracorp,
dracorp pisze:Tylko że to kolejne programy działające w tle, dlaczego nie używać czegoś co już jest w systemie
tzn?
frantic
Posty: 66
Rejestracja: 24 maja 2007, 20:06
Lokalizacja: z debian.org xd

Post autor: frantic »

zrobilem sobie configa sam z czego jestem dumny :mrgreen:
ale jednej rzeczy nie umiem sam zrobic mianowicie:
jak dodac to do autostartu (gnome) ?
probowalem

Kod: Zaznacz cały

hotkeys -t /usr/share/hotkeys/logitech-cfo
ale nie dziala :-(
ari
Posty: 9
Rejestracja: 22 sierpnia 2007, 10:55
Lokalizacja: dca

Post autor: ari »

A jak zrobić aby nie wyskakiwał ten obrazek przy uruchamianiu hotkeys ?
Zablokowany