1

我正在尝试在没有任何 Haskell 知识的情况下再次配置 xmonad ...

我想找到一种在开始时没有任何状态栏的方式来启动 xmonad。我想避免在后台运行 xmobar 并耗尽电池。然后,当按下 meta-b xmobar 时应该启动。有谁知道启动 xmobar 并连接管道的 xmonad 配置文件的键盘快捷键定义?

  ...  
  xmproc <- spawnPipe "xmobar ~/.xmonad/xmobar.hs"
  xmonad $ defaults  {
      logHook = dynamicLogWithPP $ xmobarPP {
            ppOutput = hPutStrLn xmproc
          , ppTitle = xmobarColor xmobarTitleColor "" . shorten 100
          , ppCurrent = xmobarColor xmobarCurrentWorkspaceColor ""
          , ppSep = "   "
      } 
  ...

是标准的,但我如何将其定义为键盘快捷键?当绑定一个简单的“spawn xmobar”时,它不会启动(当在 shell 中启动 xmobar 时,它会出现状态栏)。然而,简单的“spawn xmobar”可能不会有来自 xmonad 的文本显示连接的工作空间。

4

1 回答 1

0

从 xmonad(-contrib) 0.9 开始,XMonad.Hooks.DynamicLog 中有一个新的 statusBar 函数。它允许您将自己的配置用于:

  • 用于执行栏的命令
  • 决定写入栏的内容的 PP
  • 用于切换条形间隙的键绑定

以下是如何使用它的示例:

~/.xmonad/xmonad.hs

-- Imports.
import XMonad
import XMonad.Hooks.DynamicLog

-- The main function.
main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig

-- Command to launch the bar.
myBar = "xmobar"

-- Custom PP, configure it as you like. It determines what is being written to the bar.
myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" }

-- Key binding to toggle the gap for the bar.
toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)

-- Main configuration, override the defaults to your liking.
myConfig = defaultConfig { modMask = mod4Mask }

有关更多信息,请参阅以下链接: 来源

于 2016-07-28T08:43:09.053 回答