[英]How can xmonad's dynamicLog format the titles of unfocused windows?
我要解决的问题是我有一个坏习惯,那就是将工作区设置为完整布局,然后忘记打开其他窗口。
我想使用的解决方案是通过ppTitle将主窗口的标题继续显示为黑底白字,同时还以灰色显示我的其他窗口(可能会修剪一些,但这不重要)。 我希望ppTitleUnfocused之类的东西,但据我所知ppTitle是唯一的标题格式设置选项。
有什么方法可以开箱即用地做我想做的事吗? 如果没有,如何扩展dynamicLog? 如果这不是很简单的话,那么在ppTitle后面添加魔术字符并在ppOutput期间替换它会怎么样? (我认为我可以处理附加和替换,但是生成替换文本超出了我的haskell能力。)
您可以尝试在ppExtras
添加此Logger
:
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)
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.