2012-11-21 34 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)。