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」をバインドすると、起動しません (シェルで 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 に答える