我想要实现:
- 仅从覆盖整个屏幕的浮动窗口(如 mplayer)中删除边框,并且
- 在工作区中只有一个窗口时使用不同的边框颜色(normalBorderColor)。
目前,我正在使用 XMonad.Layout.NoBorders 中的 smartBorders 来删除 mplayer 的边框,并在窗口是工作区中唯一的窗口时删除边框。然而,当我在两个工作区之间切换并且这两个工作区都有单个非浮动窗口时(无论是哪种模式(tall/mirror/full)),那么我会看到窗口(在我改变到的工作区中)“跳”了一下,因为它的边框被绘制,然后在短暂的时间内被删除(如果您将 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
}
你们知道我如何实现这个效果吗?(第二部分是否可能?)非常感谢对能够实现类似效果的扩展和/或现有配置的建议和指针。