Linux se dnes již hodí na mnoho míst včetně desktopu. A s přílivem tzv. netbooků zažívá Linux úplný boom. Je to především proto, že Linux se hodí i na starší, přesněji pomalejší resp. slabší hardware. U notebooků a netbooků se v některých prostředí konečně objevují funkce, které jsou známé u konkurence, ale odlehčená prostředí tímto netrpí, jak tedy i tam dostat pěkné osd ukazatele hlasitosti?
Zprovoznění osd ukazatele se skládá z několika kroků, ten první a hlavní, bývá často právě ten nezbytný a nenahraditelný, a bez něj to prostě nejde. První věc co je třeba aby vše fungovalo podle nejlepších představ je odchycení multimediálních kláves. Většina i starších notebooků a dnes i starších klávesnic, obsahuje tzv. multimediální klávesy. Těmto klávesám se často říká multimediální, i když s médii nesouvisí. Ty které nás budou nejvíce zajímat jsou klávesy na ovládání hlasitosti, ale můžou to být i klávesy (tlačítka) play a stop, nebo také různé programové tlačítka se znakem internetového prohlížeče a emailu.
Pokud se bavíme o "volume", tedy o hlasitosti, pak nás zajímají zejména tlačítka na zesílení, zeslabení případně ztišení reproduktorů. Tyto klávesy pokud je systém (kernel) zná, po stisknutí posílají stejně jako jiné klávesy nějaké kódy. Kódy těchto kláves se mohou odchytnout v různých programech, např. xev. Po jeho puštění se objeví okýnko a na standardní výstup (do konzole) se začnou vypisovat všechny odchycené události. Je tedy nutné vysledovat události požadovaných multimediálních kláves. Mohou nastat celkem tři situace.
Což je nejhorší ze tří variant, v takovém případě systém o klávese vlastně neví. Pak máme ještě možnost operovat s ovladači klávesnice přímo v jádře, nebo se zapomenout na multimediální klávesy, a hlasitost ovládat vlastními klávesovými zkratkami, např. ctrl + a ctrl -.
Program začne vypisovat kódy kláves, např. "keycode 176". To znamená, že jádro klávesy umí odchytit, ale X server je nemá namapovány. Pak stačí vytvořit soubor .Xmodmap v domovském adresáři, a do něj na jednotlivé řádky napsat např. takto:
keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume
keycode 160 = XF86AudioMute
Po znovu-přihlášení do X serveru by měla nastat třetí ideální možnost, a to ta, že program xev začne vypisovat přímo názvy mačkaných kláves. Seznam možných X serverem podporovaných kláves najdete v souboru XKeysymDB nalézajícího se někde u ostatních souborů X.org (/usr/share/X11, /usr/lib/X11 a pod.).
Zde už je to jednoduché, stačí nastavit klávesové zkratky vašeho oblíbeného správce oken. V případě Xfce je nastavení pohodlné pomocí nástroje Nastavení klávesnice (menu -> nastavení -> nastavení klávesnice). Po vytvoření nového profilu klávesových zkratek, stačí jen přiřadit klávese program, který chceme aby se spustil při jejím zmáčknutí. Teoreticky by nám toto mohlo stačit, na Linuxu máme k dispozici celou škálu konsolových nástrojů, pomocí kterých můžeme změnit hlasitost. Ale co ten zelený ukazatel tolik známý z televize ?
screenshot nastaveni klávesových zkratek v Xfce
Jedním z mnoha programů, který můžeme použít je xosd. Jde o konzolový příkaz, který se správnými parametry vytvoří na displayi onen ukazatel. Nemusí být dokonce jen zelný. Pro ovládání hlasitosti a zobrazení osd ukazatele najednou poslouží následující script volume.sh:
#!/bin/bash
case $1 in
+)
amixer -c 0 set Master 5dB+ > /dev/null
;;
-)
amixer -c 0 set Master 5dB- > /dev/null
;;
m)
amixer -c 0 set Master toggle > /dev/null
;;
*)
exit
;;
esac
VOLUME=`amixer get Master | sed -ne '/Front Left/s/.*\[\(.*\)%\].*/\1/p'`
osd_cat --font -*-terminus-*-*-*-*-*-*-*-*-*-*-*-* --colour=Green --shadow 1 \
--pos bottom --align center --offset 80 --delay=1 -b percentage \
-P $VOLUME -T Master\ Volume
Tento script se používá s parametry + (zesílení o 5dB), - (zeslabení o 5db) nebo m (vypnutí / zapnutí zvuku). Ke svému chodu potřebuje nástroj amixer, což je standardní nástroj z programového balíčku alsa-utils a osd_cat, ten se nachází v balíčku xosd. Program osd_cat má mnoho parametrů a uvedený script zobrazí 80 pixelů od spodního kraje obrazovky, vycentrovaný procentuální baner v zelené barvě se stínem a popiskem Master Volume. Více o parametrech programu se dovíte z jeho manuálové stránky. Script tedy umístíme do nějakého výstižného místa, např. do /usr/bin/ nebo ~/bin/, ze které ho jej voláme skrze multimediální klávesy.
Je třeba podotknout, že zmíněné nástroje nejsou jediné a je např. možné, že vaše distribuce (BSD) nepoužívá alsa ovladače ale OSS. Pak je třeba upravit script tak, aby používal jiné nástroje. Těch je celá řada a nechám pro ně místo v diskuzi. Popsaný návod lze použit pro jiné správce oken než je Xfce, např. Fluxbox, nebo IceWM. Jiné je pouze spojení klávesových zkratek a vyvolání nějaké operace.
© 2023 Ondřej Tůma McBig. Ondřej Tůma | Based on: Morias | Twitter: mcbig_cz | RSS: články, twitter