15

私はしたいと思います

  1. 全画面を覆うフローティング ウィンドウ (mplayer など) から境界線 (のみ) を削除します。
  2. ワークスペースにウィンドウが 1 つしかない場合は、別の境界色 (normalBorderColor) を使用します。

現在、XMonad.Layout.NoBorders の smartBorders を使用して、mplayer から境界線を削除し、そのウィンドウがワークスペース内の唯一のウィンドウである場合にウィンドウの境界線を削除しています。ただし、(モード (トール/ミラー/フル) に関係なく) 単一の非フローティング ウィンドウを持つ 2 つのワークスペースを切り替えると、ウィンドウが表示されます (私が変更しているワークスペースで) 少し「ジャンプ」します。その境界線が描画され、その後少しの間削除されます (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. は可能ですか?) 同様の効果を実現する拡張機能や既存の構成への提案やポインタは大歓迎です。

4

2 に答える 2

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
                 }

私はptに対処していません。2.さらに、ワークスペースに切り替えると、フォーカスされたウィンドウの境界線の色が「ちらつき」ます。これは、最初はウィンドウがフォーカスされていないためです (したがって、その境界線は normalBorderColor に従って色付けされます)。その後、ウィンドウはフォーカスされます (したがって、そのボーダーは色 focusedBorderColor を取得します)。

于 2012-11-22T14:50:12.573 に答える
0

パート 2 について: xmonad-contrib パッケージのバージョン 0.17.0では、XMonad.Layout.NoBorders と同じように境界線を削除する新しいXMonad.Layout.VoidBordersレイアウト修飾子が導入されましたが、一種の永続的なものです (ウィンドウはゼロ幅の境界線を保持します)。 VoidBorders 制御のワークスペースから移動した場合でも)。この副作用は契約を破る場合としない場合がありますが、ワークスペースを切り替えるときの「ジャンピング」ウィンドウの問題を解決します。

于 2022-02-02T23:46:18.130 に答える