Não específico do xmonad, mas você pode iniciar o xmobar por meio de um script de shell que verifica um processo xmobar existente. Veja, por exemplo, link
Este é apenas um pequeno incômodo, mas eu fiz o arquivo de configuração do XMonad carregar o xmobar usando este código:
xmproc <- spawnPipe "/use/bin/xmobar ~/.xmobarrc"
Funciona bem, mas gera um novo processo xmobar toda vez que o XMonad é recarregado. Eu me pergunto se há uma maneira fácil de matar o antigo?
update : Como sugerido por entropo, criei um script bash como este:
#!/bin/bash
for PID in 'pgrep xmobar'; do
kill ${PID} > /dev/null &
done
/usr/bin/xmobar &
e chame esse script do arquivo de configuração do XMonad.
Não específico do xmonad, mas você pode iniciar o xmobar por meio de um script de shell que verifica um processo xmobar existente. Veja, por exemplo, link
Se você tem um shell script para iniciar o XMobar, então está "fazendo errado". Você deve iniciar o xmobar usando as funções Haskell corretas no arquivo de origem de configuração xmonad.hs. Dê uma olhada na minha função principal de configuração:
-- put it all together
main = do
nScreens <- countScreens -- just in case you are on a laptop like me count the screens so that you can go
xmonad =<< xmobar myBaseConfig
{ modMask = myModMask
, workspaces = withScreens nScreens myWorkspaces
, layoutHook = myLayoutHook nScreens
, manageHook = myManageHook
, borderWidth = myBorderWidth
, normalBorderColor = myNormalBorderColor
, focusedBorderColor = myFocusedBorderColor
, keys = myKeys
, mouseBindings = myMouseBindings
, logHook = myLogHook
}
where
myLogHook = dynamicLogXinerama
myBaseConfig = gnomeConfig
A linha saliente é esta:
xmonad =<< xmobar myBaseConfig
Isso executa o xmobar como ele deve ser executado, mesmo quando você recarrega o xmonad. Você obtém a função 'xmobar' da declaração:
import XMonad.Hooks.DynamicLog (xmobar)
Que, por sua vez, vem do pacote xmonad-contrib .
Então você vê, a maioria das coisas que você quer fazer com o XMonad já são um problema resolvido, você só precisa saber onde procurar. Basicamente, apenas abandone seu script e use isso. Espero que isso ajude.
Tags xmonad