2012-11-21 30 views
13

Tôi muốnDi biên giới từ toàn màn hình chỉ cửa sổ nổi (cấu hình Xmonad)

  1. loại bỏ biên giới (chỉ) từ cửa sổ nổi bao gồm toàn màn hình (như mplayer), và
  2. sử dụng một màu biên giới khác nhau (normalBorderColor) khi chỉ có một cửa sổ trong vùng làm việc.

Hiện tại, tôi đang sử dụng smartBorders từ XMonad.Layout.NoBorders để xóa đường viền khỏi trình phát và xóa viền của cửa sổ khi cửa sổ đó là cửa sổ duy nhất trong không gian làm việc. Tuy nhiên, khi tôi chuyển đổi giữa hai không gian làm việc mà cả hai đều có một cửa sổ không nổi (bất kể chế độ nào (cao/gương/đầy đủ)), thì tôi thấy cửa sổ (trong không gian làm việc mà tôi đang thay đổi) "nhảy" một chút, như biên giới của nó được rút ra, và sau đó loại bỏ một thời điểm ngắn sau đó (hiệu ứng có thể nhìn thấy rõ hơn nếu bạn đặt borderWidth của bạn thành một số lớn).

Phần liên quan của ~/.xmonad/xmonad.hs của tôi được đưa ra dưới đây.

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 
       } 

Bạn có biết làm cách nào để đạt được hiệu ứng này không? (là phần 2. thậm chí có thể?) Gợi ý và gợi ý cho các phần mở rộng và/hoặc cấu hình hiện có mà đạt được một hiệu ứng tương tự rất nhiều đánh giá cao.

Trả lời

8

Tôi đã giải quyết pt. 1 bằng cách sử dụng hàm tạo Ambiguity có tên OnlyFloat từ XMonad.Layout.NoBorders.

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 
       } 

Tôi chưa đề cập đến pt. 2. Hơn nữa, khi tôi chuyển sang không gian làm việc, màu đường viền của cửa sổ lấy nét "nhấp nháy", vì ban đầu, cửa sổ không được lấy nét (do đó đường viền của nó được tô màu theo normalBorderColor), sau đó cửa sổ trở nên tập trung (và do đó biên giới của nó được màu sắc tập trungBorderColor).

Các vấn đề liên quan