xmonadでxmobarなどに表示されるウィンドウタイトルがかなり短く省略されてしまうことの対策
問題
4Kディスプレイを買ってから気がついたのですが, xmonadが表示するウィンドウタイトルはかなり短く省略されてしまいます.
せっかく大きなディスプレイを買ったのにタイトルが省略されているのは勿体無い!
特にFirefoxのwebページのタイトルは長いのが多いですし, Emacsのマイナーモード群は下のステータスバーではウィンドウ分割されると読めなくなるので余ってる領域で全部閲覧したい.
ということで何故省略されているのか調べて解決させました.
原因
xmonadやxmonad-contribやxmobarのソースコードを読んで, 原因はxmonad-contribにあることがわかりました.
私のxmobar周りの設定は以下のようになっています.
main :: IO ()
main = statusBar "xmobar" myPP (\XConfig{modMask} -> (modMask, xK_u)) myConfig >>= xmonad
myPP :: PP
myPP = def
{ ppCurrent = wrap "[" "]"
, ppVisible = wrap "(" ")"
, ppSep = ":"
, ppWsSep = ""
}
ここで
XMonad.Hooks.DynamicLog
のPP
のdef
の実装が問題で,
ppTitle = shorten 80
となっています. つまり80文字に省略されるわけですね.
解決
myPP
のppTitle
をid
にすることで解決しました.
myPP :: PP
myPP = def
{ ppCurrent = wrap "[" "]"
, ppVisible = wrap "(" ")"
, ppSep = ":"
, ppWsSep = ""
, ppTitle = id
}