3

私が解決しようとしている問題は、ワークスペースをフル レイアウトに設定してから、他のウィンドウを開いていることを忘れるという悪い習慣があることです。

私が使用したい解決策は、メイン ウィンドウのタイトルを ppTitle を介して黒地に白で表示し続けることですが、他のウィンドウも灰色で表示します (おそらく少しトリミングされますが、それは重要ではありません)。私は ppTitleUnfocused か何かを望んでいましたが、私が知る限り、ppTitle が唯一のタイトル書式設定オプションです。

箱から出してやりたいことをする方法はありますか? そうでない場合、どうすれば dynamicLog を拡張できますか? それが自明でない場合、魔法の文字を ppTitle に追加し、ppOutput 中に置き換えるのはどうですか? (私は追加と置換を処理できると思いますが、置換テキストを生成することは私の Haskell の能力を超えています。)

4

1 に答える 1

2

Loggerこれを次のように追加してみてくださいppExtras:

import qualified XMonad.StackSet as W
import XMonad.Util.NamedWindows ( getName )
import Data.Traversable ( traverse )
import Data.Maybe ( maybeToList )
import Data.List ( (\\) )

logTitles :: X (Maybe String) -- this is a Logger
logTitles = withWindowSet $ fmap (Just . unwords) -- fuse window names
                          . traverse (fmap show . getName) -- show window names
                          . (\ws -> W.index ws \\ maybeToList (W.peek ws))
                          -- all windows except the focused (may be slow)

これを好きなように追加できますPP

{
...
ppExtras = [logTitels]
ppOrder  = \(ws:l:t:ts:_) -> ws : l : t : [xmobarColor "gray" "" ts]
-- Use dzenColor if you use dzen and not xmobar
-- ts is the string of the unfocused window titles (seperated by spaces)
...
}
于 2014-04-03T20:16:45.857 に答える