이것은 작은 성가심이지만이 코드를 사용하여 XMonad 구성 파일이 xmobar를로드하도록했습니다.
xmproc <- spawnPipe "/use/bin/xmobar ~/.xmobarrc"
잘 작동하지만 XMonad를 다시로드 할 때마다 새로운 xmobar 프로세스를 생성합니다. 오래된 것을 죽일 쉬운 방법이 있는지 궁금합니다.
업데이트 : entropo에서 제안한 것처럼 다음과 같은 bash 스크립트를 만들었습니다.
#!/bin/bash
for PID in `pgrep xmobar`; do
kill ${PID} > /dev/null &
done
/usr/bin/xmobar &
XMonad 구성 파일에서 해당 스크립트를 호출하십시오.
답변
xmonad는 아니지만 기존 xmobar 프로세스를 확인하는 쉘 스크립트를 통해 xmobar를 시작할 수 있습니다. 예를 들어 http://bash.cyberciti.biz/web-server/restart-apache2-httpd-shell-script/를 참조하십시오.
답변
XMobar를 시작하는 쉘 스크립트가 있다면 ‘잘못하고 있습니다’입니다. xmonad.hs 구성 소스 파일에서 올바른 Haskell 기능을 사용하여 xmobar를 시작해야합니다. 내 구성 기본 기능을 살펴보십시오.
-- 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
두드러진 선은 다음과 같습니다.
xmonad =<< xmobar myBaseConfig
xmonad를 다시로드하더라도 xmobar가 실행되어야합니다. 명령문에서 ‘xmobar’함수를 얻습니다.
import XMonad.Hooks.DynamicLog (xmobar)
이것은 xmonad-contrib 패키지 에서 나온 것입니다 .
XMonad와 관련하여하고 싶은 대부분의 문제는 이미 해결 된 문제이므로 어디를보아야하는지 알아야합니다. 기본적으로 스크립트를 버리고 대신 사용하십시오. 이게 도움이 되길 바란다.