osd volume v xfce

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?

15.9.2009 00:00 | Ondřej Tůma | přečteno 12722×

Multimediální klávesy

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.

Nic se nestane

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 -.

keycode XXX

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

XF86xxxxxxxx

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.).

Klávesové zkratky

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 ?



osd - xosd

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.>/p>

Závěrem

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.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1646