En el post donde hablé de XMonad no puse el script que uso para mostrar información de XMMS2 con dzen en XMonad. Aquí lo agrego:
/usr/local/bin/dzen-xmms2
#!/bin/bash ICONS=/home/mmedina/Images/Icons/xbm8x8 FONT=-sazanami-*-*-*-*-*-11-10-0-0-p-*-*-* while true; do check=`xmms2 current | tr -d "\n" | wc -m` if [ $check == 0 ]; then echo "^i(${ICONS}/note.xbm) No songs being played" else current=`xmms2 current` totalsongs=`xmms2 list | grep / | wc -l` cursongstr=`xmms2 list | grep "\->" | cut -d"/" -f1 | tr -d "\->["` cursongnum=`gcalctool -s "${cursongstr} + 1"` echo "^i(${ICONS}/note.xbm) ($cursongnum/$totalsongs) $current" fi sleep 3 done | dzen2 -x 1350 -y 0 -w 350 -h 11 -ta r -fg white -fn $FONT
Dando como resultado:
En el xmonad.hs tengo ligadas las funciones principales de XMMS2 a una combinación de teclas que me permiten controlar la reproducción de audio sin tener que abrir algún programa o escribir comandos en una terminal. Nota: éste no es el xmonad.hs completo:
dzproc <- spawnPipe myStatusBar dateproc <- spawnPipe myDateBar xmms2proc <- spawnPipe myMusicBar xmonad $ defaultConfig { terminal = "urxvt -fg white -bg black -tr -sh 10 -fn 'xft:Dejavu Sans Mono:pixelsize=10' +sb" , modMask = mod4Mask , startupHook = setWMName "LG3D" , manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig , layoutHook = myLayout , logHook = dynamicLogWithPP $ myDzenPP dzproc , workspaces = ["term","web","ide","emacs","mail","ooffice","acroread","VB","misc"] } `additionalKeys` [ ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") , ((0, xK_Print), spawn "scrot") , ((mod1Mask, xK_Shift_L), spawn "chkblayout") , ((mod4Mask .|. shiftMask, xK_w), spawn "setwallpaper") , ((mod4Mask .|. shiftMask, xK_q), spawn "gnome-session-save --gui --kill") , ((mod4Mask .|. shiftMask, xK_l), spawn "gnome-screensaver-command -l") , ((mod4Mask .|. shiftMask, xK_z), spawn "xmms2 prev") , ((mod4Mask .|. shiftMask, xK_x), spawn "xmms2 pause") , ((mod4Mask .|. shiftMask, xK_c), spawn "xmms2 play") , ((mod4Mask .|. shiftMask, xK_v), spawn "xmms2 next") , ((mod4Mask .|. shiftMask, xK_b), spawn "xmms2 stop") , ((mod4Mask, xK_Up), spawn "amixer set Master 3%+") , ((mod4Mask, xK_Down), spawn "amixer set Master 3%-") ] myBgcolor = "#000000" myStatusBar = "/usr/bin/dzen2 -x 0 -y 0 -h 11 -w 800 -ta l -fn -sazanami-*-*-*-*-*-11-10-0-0-p-*-*-*" myDateBar = "/usr/local/bin/miscbarinfo" myMusicBar = "/usr/local/bin/dzen-xmms2"
Estoy buscando una forma de revisar si el daemon de XMMS2 está siendo ejecutado o no. La idea es que si no lo está, ni me canso en parsear la salida de xmms2 current.
Un simple ‘pgrep xmms’ o algo asi y listo, no?