仅从全屏浮动窗口中删除边框(XMonad配置)

时间:2012-11-21 17:40:27

标签: haskell window-managers xmonad

我想

  1. 从覆盖整个屏幕的浮动窗口(如mplayer)和
  2. 中删除边框(仅限)
  3. 当工作区中只有一个窗口时,使用不同的边框颜色(normalBorderColor)。
  4. 目前,我正在使用XMonad.Layout.NoBorders中的smartBorders从mplayer中删除边框,并在该窗口是工作区中唯一的窗口时删除窗口的边框。但是,当我在两个工作区之间切换时,这两个工作区都有一个非浮动窗口(无论模式(高/镜像/满)),然后我看到窗口(在我正在改变的工作空间中)“跳”了一下,绘制边框,然后删除一小段时间(如果将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部分。甚至是可能的吗?)对扩展和/或现有配置的建议和指针,以达到类似的效果,非常感谢。

1 个答案:

答案 0 :(得分:9)

我解决了pt。 1使用来自XMonad.Layout.NoBorders的名为OnlyFloat的Ambiguity构造函数。

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 = lessBorders OnlyFloat $ avoidStruts $ myLayout 
                 , borderWidth = 4
                 , normalBorderColor  = "#000000" -- black
                 , focusedBorderColor = "#ff3f3f" -- reddish
                 }

我没有解决过这个问题。 2.此外,当我切换到工作区时,聚焦窗口的边框颜色“闪烁”,因为最初,窗口没有聚焦(因此其边框按照normalBorderColor着色),此后窗口变得聚焦(因此它的边框得到颜色focusedBorderColor)。