私はしたいと思います
- 全画面を覆うフローティング ウィンドウ (mplayer など) から境界線 (のみ) を削除します。
- ワークスペースにウィンドウが 1 つしかない場合は、別の境界色 (normalBorderColor) を使用します。
現在、XMonad.Layout.NoBorders の smartBorders を使用して、mplayer から境界線を削除し、そのウィンドウがワークスペース内の唯一のウィンドウである場合にウィンドウの境界線を削除しています。ただし、(モード (トール/ミラー/フル) に関係なく) 単一の非フローティング ウィンドウを持つ 2 つのワークスペースを切り替えると、ウィンドウが表示されます (私が変更しているワークスペースで) 少し「ジャンプ」します。その境界線が描画され、その後少しの間削除されます (borderWidth を大きな数値に設定すると、効果がより顕著になります)。
~/.xmonad/xmonad.hs の関連部分を以下に示します。
import XMonad.Hooks.ManageDocks
import XMonad.Layout.NoBorders
myLayout = tiled ||| Mirror tiled ||| Full
where
tiled = Tall 1 (3/100) (3/5)
main = xmonad $ defaultConfig
{ layoutHook = avoidStruts $ smartBorders $ myLayout
, borderWidth = 4
, normalBorderColor = "#000000" -- black
, focusedBorderColor = "#ff3f3f" -- reddish
}
私がこの効果をどのように達成するか知っていますか?(パート 2. は可能ですか?) 同様の効果を実現する拡張機能や既存の構成への提案やポインタは大歓迎です。