XMobar隐藏在第一个XMonad工作区中

6 linux haskell xmonad xmobar

我使用配置的设置安装了XMonad和XMobar.当我启动XMonad时,任何没有第一个工作区的XMobar都停靠,并且打开的程序位于XMobar下面,但是当我打开任何程序时,第一个工作区上的XMobar变为隐藏状态.这些是我的XMonad和XMobar配置:

--XMonad:
import XMonad
import XMonad.Util.Run(spawnPipe)
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.EZConfig(additionalKeys)
import System.IO
main = do
    xmproc <- spawnPipe "xmobar ~/.xmobarrc"
    xmonad $ defaultConfig
        {  manageHook = manageDocks <+> manageHook defaultConfig
        , layoutHook = avoidStruts $ layoutHook defaultConfig
        , logHook = dynamicLogWithPP xmobarPP
                        { ppOutput = hPutStrLn xmproc
                        , ppTitle = xmobarColor "green" "" . shorten 50 
                        }
        , borderWidth = 2
        , terminal = "terminator"
        , normalBorderColor = "#cccccc"
        , focusedBorderColor = "#cd8b00"        
        }
--XMobar:
Config { font = "-misc-fixed-*-*-*-*-33-*-*-*-*-*-*-*"
    , bgColor = "black"
    , fgColor = "grey"
    , position = TopW L 90
    , commands = [ Run Cpu ["-L","3","-H","50",
                               "--normal","green","--high","red"] 10
                     , Run Memory ["-t","Mem: <usedratio>%"] 10
                     , Run Swap [] 10
                     , Run Com "uname" ["-s","-r"] "" 36000
                     , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
                     , Run Com "~/.xmonad/batt" [] "" 300
                     , Run StdinReader
                     ]
    , sepChar = "%"
    , alignSep = "}{"
    , template = "%StdinReader% }{ %cpu% | %memory% | %.xmonad/batt% | <fc=#ee9a00>%date%</fc>"
    }
Run Code Online (Sandbox Code Playgroud)

Ste*_*ski 6

我在xmobar v0.24和xmonad v0.12中遇到了相同的问题。快速重新编译两次(meta-q)时,我也在所有工作区上遇到了问题。我通过在.xmobarrc中设置overrideRedirect为来解决此问题False

OverrideRedirect

如果在平铺窗口管理器中运行xmobar,则可能需要将此选项设置为False,以便其表现为停靠的应用程序。默认为True。

  • 我刚刚发现overrideRedirect可能被认为是不好的做法?该解决方案同样有效:http://unix.stackexchange.com/a/303242/24690 (4认同)