编辑:原来我的问题只是 Xmobar 中的一个临时错误。请参阅已接受的答案。
谷歌上有很多解决方案,但几乎没有一个对我有用。我正在建立一个 Arch 系统,所以我的第一个倾向是使用Arch wiki 上的配置。这是我的:
import XMonad
import XMonad.Hooks.DynamicLog
main = xmonad =<< xmobar defaultConfig { terminal = "gnome-terminal" }
Run Code Online (Sandbox Code Playgroud)
如果没有 xmobarrc(或我尝试复制的任何),xmobar 在空工作区中是可见的,但打开任何应用程序都会将其完全覆盖。尝试使用 Alt-b 切换栏空间不会将其恢复。我也试过逐字复制John Goerzen 的配置文件,但这也不起作用。
一个有效的 hack(来自 John Goerzen)是在我的 xinitrc 中启动托盘。当托盘运行时,它以某种方式成功地在屏幕顶部保留了空间,xmobar 也可以使用。但我想让 xmobar 自己工作。感谢您的任何建议。
由 OODavo 在 #xmonad IRC 频道上解决。事实证明,Arch (0.16-3) 上最新的 xmobar 包只是有一个错误,它破坏了 avoidStruts 布局。解决方法是降级到以前的版本,或者从 git 构建最新版本。
以前版本的软件包:http : //arm.konnichi.com/2012/12/02/community/os/x86_64/xmobar-0.16-1-x86_64.pkg.tar.xz
Arch 中的包降级说明:https : //wiki.archlinux.org/index.php/Downgrading_Packages#How_to_downgrade_a_package