2012-11-21 63 views
13

我想从全屏只浮动窗口(XMonad配置)删除边框

  1. 删除边框(仅)由覆盖整个屏幕(如mplayer)中的浮动窗口,并
  2. 使用不同的边框颜色(normalBorderColor)当工作区中只有一个窗口时。

目前,我使用XMonad.Layout.NoBorders中的smartBorders从mplayer中删除边框,并在该窗口是工作区中唯一的窗口时删除窗口边框。然而,当我在两个工作空间之间切换时,这两个工作空间都有一个非浮动窗口(无论模式(tall/mirror/full)),然后我看到窗口(在我正在更改的工作空间中)“跳转”作为其边框绘制,然后在此后的一小段时间移除(如果将边框宽度设置为很大,效果更明显)。

我的〜/ .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部分,甚至可能?)建议和指向扩展和/或现有配置,以达到类似的效果,不胜感激。

回答

8

我解决了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 
       } 

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