Otóż mój problem polegał na niedziałających klawiszach funkcyjnych w moim laptopie (Compal HEL80, Ubuntu 7.10) w Fluxboxie. W Gnomie wszystko działało, ale to przez uruchomiome gnome-sound-properties czy gnome-power-manager. Mozna tego demona uruchomic i pod fluxem, wtedy większość klawiszy będzie Wam działać, jednak nie zawsze. Pozatym czasem warto zrobić cos samemu tak by uniezależnić się od Gnome'a(:
Aby odkryć jaki klawisz to jaki, użyjemy programu xev.
Kod: Zaznacz cały
aztec@aztec-laptop:~$ xev
Po naciśnięciu interesującego nas klawisza powinniśmy otrzymać mniej więcej takie coś:
Kod: Zaznacz cały
KeyRelease event, serial 29, synthetic NO, window 0x1200001,
root 0x186, subw 0x0, time 5012885, (-263,481), root:(269,613),
state 0x0, keycode 223 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Symbole nie są dowolne, bo są wcześniej zdefniowane w pliku /usr/share/X11/XKeysymDB
Kod: Zaznacz cały
cat /usr/share/X11/XKeysymDB
(...)
! The definitions here should match <X11/XF86keysym.h>
XF86ModeLock :1008FF01
XF86Standby :1008FF10
XF86AudioLowerVolume :1008FF11
XF86AudioMute :1008FF12
XF86AudioRaiseVolume :1008FF13
XF86AudioPlay :1008FF14
XF86AudioStop :1008FF15
XF86AudioPrev :1008FF16
XF86AudioNext :1008FF17
XF86HomePage :1008FF18
XF86Mail :1008FF19
XF86Start :1008FF1A
XF86Search :1008FF1B
(...)
Do przypisania klawiszowi keysym'a oraz symbolu uzyjemy programu xmodmap. Program ten wczytuje z pliku sekwencje przy starcie systemu, które mówią mu jaki klawisz ma mieć jaki symbol.
Składnia xmodmap'a:
keycode NUMER = KEYSYM
gdzie NUMER moze byc w dowolnym systemie(hex,bin,dec) liczbowym.
Aby xmodmap wczytał nasze ustawienia z pliku piszemy:
Kod: Zaznacz cały
touch ~/.xmodmap
Kod: Zaznacz cały
sudo emacs -nw ~/.xmodmap
Kod: Zaznacz cały
keycode 223 = XF86AudioLowerVolume
Teraz musimy przeladowac ustawienia:
Kod: Zaznacz cały
xmodmap ~/.xmodmap
Aby te ustawienia ładowały sie przy każdym uruchomieniu trzeba dodac polecenie xmodmap ~/.xmodmap aby było wykonywane przy każdym waszym zalogowaniu.
Teraz w przypadku fluxboxa mozna juz spokojnie użyć tego klawisz w pliku ~/.fluxbox/keys
Kod: Zaznacz cały
XF86AudioLowerVolume :ExecCommand amixer -q set PCM 10- unmute