|
Klawiatury multimedialne
master - 15-08-2006 14:23
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. which xev
Jeżeli po wydaniu polecenia wyświetli się coś na wzór:
/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
which hotkeys
Jeżeli po wydaniu polecenia nie wyświetli się nic, to znaczy, że musimy zainstalować potrzebny nam pakiet:
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.
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: 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 > /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.
<?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ń: 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: <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:
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 gedit /etc/xdg/lxsession/LXDE/autostart
i dodać wpis @hotkeys -t <twoja_klawiaturka>
DaViDeX - 25-08-2006 11:17
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 - 04-07-2007 22:52
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: hotkeys -t moja_klawa
bez rozszerzenie ".def" na koncu
//Edit2 Jak ktos ma amaroka to: vim /etc/hotkeys.conf i dodajemy: PrevTrack=amarok -r Play=amarok --play-pause Stop=amarok --stop Pause=amarok --pause NextTrack=amarok -f
PozdrawiaaaaaaaM
dracorp - 05-07-2007 08:57
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.
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.
! 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' - 05-07-2007 10:46
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 - 09-07-2007 14:45
Do obslugi klawiszy specjalnych w laptopach swietnie nadaje sie programik xbindkeys. Przykladowa konfiguracje opisalem o tu => klicken Sie bitte:)
dracorp - 10-07-2007 09:36
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 - 15-07-2007 16:41
dracorp,
Tylko że to kolejne programy działające w tle, dlaczego nie używać czegoś co już jest w systemie
tzn?
frantic - 15-09-2007 14:49
zrobilem sobie configa sam z czego jestem dumny :mrgreen: ale jednej rzeczy nie umiem sam zrobic mianowicie: jak dodac to do autostartu (gnome) ? probowalem hotkeys -t /usr/share/hotkeys/logitech-cfo
ale nie dziala :-(
ari - 16-09-2007 11:33
A jak zrobić aby nie wyskakiwał ten obrazek przy uruchamianiu hotkeys ?
dracorp - 17-09-2007 07:54
ale jednej rzeczy nie umiem sam zrobic mianowicie: jak dodac to do autostartu (gnome) ? probowalem hotkeys -t /usr/share/hotkeys/logitech-cfo
ale nie dziala :-(
http://gentoo-wiki.com/HOWTO_Autostart_Programs Może pomoże
frantic - 17-09-2007 21:24
tam jest ogolnie jak sie daje programy do autostartu a zeby wystartowac hotkeys musisz przejsc do /usr/share/hotkeys
a nastepnie wystartowac program czyli w moim przypadku hotkeys -t logitech-cfo
niestety jak juz pisalem hotkeys -t /usr/share/hotkeys/logitech-cfo
a jakiegos powodu nie dziala :->
Stawi - 18-09-2007 10:26
Troche obciachowo na forum o linuxie sie przyznac, ale... mam klawiature M$ Natural Ergonomic Keyboard 4000. Czy ktos moze tez ma i udalo mu sie zmusic tego "zooma" do pracy? `xev` nie zwraca keycode ani nic.. tak samo z dodatkowymi buttonami do szybkiego uruchamiania.
Juz pomijam idiotyzm producenta (a moze sie nie da inaczej?) ze dodatkowe przyciski przy klawiaturze numerycznej (znak rownosci, nawiasy okragle, backspace) nie dzialaja jako "te same" a wysylaja zupelnie inne keycode.. Jak na moj gust to jest troszke nie istotne czy wcisnolem backspace tego czy tamtego a efekt taki ze dziala tylko pod Windowsach... no ale to juz inna sprawa ;)
dracorp - 18-09-2007 11:18
Jak ci xev nie zwraca żadnych wartości najprawdopodobniej będziesz musiał zainstalować sterowniki do tej klawiatury. Piszę tak na własnym przykładzie, musiałem u siebie zainstalować pakiet omnibook aby używać dodatkowych przycisków z laptopa.
matiit - 18-09-2007 23:16
dracrop: nie prawda... trzeba kliknac w ten klawisz dmesg | tail bedzie kod klawisza i trza go czymś przypisać :) miałem gdzieś opis ale nie moge znaleźć
dracorp - 19-09-2007 08:19
Byś się zdziwił, ale u mnie nie wyświetla bez modułu omnibook
Stawi - 19-09-2007 13:33
dmesg nie wyswietla nic, nawet na te przyciski ktore xev zwraca ;) Wiec mysle ze trop bledny.. A u Ciebie moglo dzialac z tego wzgledu ze chyba mowisz o przyciskach ACPI ?
matiit - 19-09-2007 18:13
Stawi... Chodzi o przyciski na klawiaturze (do skype) xev nie wykrywał do win stery były wcisnąłem je dmesg i sypało błędami że nie było przypisane
Stawi - 20-09-2007 09:11
No to d*pa bo u mnie cisza..
frantic - 20-09-2007 13:41
odnosnie mojego starego problemu z dodaniem do autostartu to nie wiem jak na to nie wpadlem ale wystarczy taki skrypcik #!/bin/bash cd /usr/share/hotkeys hotkeys -t logitech-cfo
a sam dodalem do sygny bash-user co jest w sumie prawda... :-D oczywiscie trzeba ten skrypt dodac do autostartu ale to juz nie problem ;-)
[ Dodano: 2007-10-07, 20:02 ] w GNOME nie było problemu z dodaniem skryptu do autostartu....
a powie mi ktoś jak to zrobić w kde ?
kmieciu - 12-11-2007 23:45
[ Dodano: 2007-10-07, 20:02 ] w GNOME nie było problemu z dodaniem skryptu do autostartu....
a powie mi ktoś jak to zrobić w kde ?
W KDE należy wrzucić skrypt do katalogu ~/.kde/Autostart. Tylko jak wrzucałem tam skrypt ukryty to mi się nie uruchamiał :)
[ Dodano: 2007-11-12, 23:50 ]
#!/bin/bash cd /usr/share/hotkeys hotkeys -t logitech-cfo
Można też wywołać hotkeys bez parametru -t, ale wtedy trzeba w pliku konfiguracyjnym /etc/hotkeys.conf dodać wpis Kbd=nazwa_pliku_z_definicjami (w tym przypadku Kbd=logitech-cfo).
[ Dodano: 2007-11-12, 23:54 ]
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.
Do wyciszenia kanału PCM służy polecenie: amixer sset PCM toggle :) Wywołane jeszcze raz przywróci głośność kanału.
Akkon - 17-01-2008 12:01
Wie ktoś jak wyłączyć ten obrazek przy uruchamianiu się hotkeys? Nie dość, że zalatuje to windowsem, to jeszcze obrazek jest wyjątkowo ohydny.
W KDE należy wrzucić skrypt do katalogu ~/.kde/Autostart. Tylko jak wrzucałem tam skrypt ukryty to mi się nie uruchamiał :)
Co do autostaru w kde to należy to zrobić tak:
1. Najpierw tworzymy plik skryptu:
nano /home/user/.kde/Autostart hotkeys
2. Wklejamy do niego następujący kod:
#!/bin/bash hotkeys -t nazwa_naszego_pliku_konfiguracyjnego
Uwaga! Nazwę podajemy bez rozszerzenia .def
3. Skryptowi nadajemy odpowiednie prawa:
chmod +x hotkeys
i to wszystko.
bns - 17-01-2008 17:40
Wie ktoś jak wyłączyć ten obrazek przy uruchamianiu się hotkeys? Nie dość, że zalatuje to windowsem, to jeszcze obrazek jest wyjątkowo ohydny.
# mv /usr/share/hotkeys/splash.png /usr/share/hotkeys/splash.png.bak
:)
Akkon - 18-01-2008 10:51
Dzięki bns, teraz wiem nie tylko jak pozbyć się obrazka startowego, ale również jak go zmienić na lepszy :-D
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|