数日前に、またLinix Mint 20 Xfceの問題が発覚した。preloadを入れたら直ったと思って居た、パネルのアプリのメニュー(Whisker)が開くのがすごく遅くなる現象が再発したので、試しにxfwm4(ウインドウマネージャ)のcompositing(画面への描画の仕方)をoffにして使っていたら、いくつかのアプリのウインドウの周囲(枠)が赤くなるのだ。

最初は たまたまかと思ったが、そのままにしていても直らなかったし、もちろん原因は分からず、結構目立って嫌らしいから放置できないので、今日、起こる条件などを調べたら、どうやら古いGNOMEのアプリで起こるようだ。以下に例を示す。

  • dconf Editor 3.36.0
  • Archive manager 3.36.2
  • gThumb 3.8.0
  • Celluloid 0.19
  • Calculator 3.36.0
  • Disks 3.36.1
  • Fonts 3.34.0※

※Fontsには別の問題もある。頻繁にハングする上に、ひどい時はデスクトップ全体がハングする。クソだ。 → Font Manager (font-manager)なら大丈夫そうだ。ただ、先日気に入ったAvantGarde LTが出て来ないのが謎だ・・・ ← 忘れて居たが、2016年に自分で追加したようだ。どこから取って来て、なぜ入れたのだろうか??

不思議なのは、GNOMEでも大丈夫なものもあることだ。例えば、Rhythmbox 3.4.4とGNOME Screenshot 3.36.0は大丈夫だった。Rhythmboxのリリースは2019年なので、新しいものは大丈夫なのかと思う。

普通の設定では直らず、例によっていろいろ調べ・試行錯誤し、GTK3のCSS(gtk.css)に設定を追加したところ、全く完全ではないが まあ許せるようになった。※ ただ、中には上の角に赤が残るものもある。そこの処理が違うのだろうか。 → 更に調べて、赤が残らないようにできた。また、枠の明るさと太さを微調整して、普通のウインドウに近づけた。

※赤が消せたとはいえ、角ばっているところが昔のMotifみたいな感じで気に入らない。でも、頻繁に使わないから我慢する。

参考までに、gtk.css(~/.config/gtk-3.0/gtk.css)の修正(追加)内容を書く。

 decoration {  
    /* Necessary to avoid red border. */
    margin: 0;
    padding: 0;
 
    /* Outer border */    
    border-width: 6px;
    border-top-color: #e8e8e8; 
    border-left-color: #e0e0e0;
    border-right-color: #d0d0d0;
    border-bottom-color: #c8c8c8;
}

/* Remove red areas on top corners. */
headerbar:first-child,
headerbar:first-child:backdrop,
headerbar:last-child,
headerbar:last-child:backdrop {
    border-radius: 0px;
}

ウインドウの余白(margin, padding)をなくすと赤枠が消える。そして、ウインドウに枠(border-width)を追加してウインドウの周囲にサイズを調整する部分を付け、それらに今のテーマ(Mint-X-Sand)に近い色(border-*-color)を付けてそれらしく見せた。これが分かった切っ掛けは、検索して、decorationという要素でウインドウの装飾が設定できることが分かったことと、BreezeというテーマのCSS(/usr/share/themes/Breeze/gtk-3.0/gtk.css)を見て設定例が分かったことである。

なお、border-radiusを設定すると枠の角が丸くできるが、その外側に黒い部分が残るので止めた。

また、ウインドウ上部の角(枠の内側)が赤くなることがあるのを防ぐため、headerbar:*でその角の丸みをなくした。

原因を推測すると、問題の赤い枠はxfwm4がcompositingでウインドウの周囲に影を付ける部分で、compositingをoffにするとその部分が描画されなくなって、なぜか赤くなってしまうのではないか(実際、スクリーンショットを取るとウインドウの周囲が結構広く画像に入る)。ただ、大丈夫なものもあるのが不思議だ。Xfce4のバージョンが上がって互換性がなくなったのか。

更に調べたところでは、GTK3のテーマの未知の要素のデフォルトスタイルは、黄・マゼンタに太い赤枠(yellow-magenta with thick red border)とのことなので(→ 参照)、それなのだろう。だが、未知の要素とは何か、そのスタイルはどうやって指定するのか?? 余りにも謎が多く、いい加減にしろって感じだ。

それにしても、Mint 20に更新してから かなり多くの問題が起こっており、どれもMintが原因のような気がする。前の版(19)のように、"20.3"のような中間リリースでないと落ち着かないのだろうか。それにしても問題が多くて、さすがに嫌になってきた。※ リリースノートにそういうことが書いてあれば許せるが、なかったので頭に来る(ベースになっているUbuntuのを参照しろってことなのだろうか)。

それにしたって、そもそも標準・純正のアプリなのに、設定を変えただけでちゃんと動かないのはけしからんではないか!

※嫌いになった原因のもう一つに、Mintに寄付しようとしたらできなかったので、何か方法はないか問い合わせても返事がないことがある。PayPalの制限のせいだとは思うが、寄付したいと言っているのだから、代替策くらい考えてくれてもいいではないか。

そういう訳で、ちょっとディストリビューションも乗り換えたくなって来た・・・ ただ、他もベースは同じなので、やっぱり同じことなのかも知れない。MintというよりXfceが駄目なのかも知れない。だから、同じMintでもウインドウマネージャを変えるだけで良くなるかも知れない。

Xfce4で手軽に切り替えられるウインドウマネージャを試した(compositingがoffで、上記のgtk.cssの追加設定をしない場合)。

  • Metacity: Compton (compositingのモジュール)がありでもなしでも、すべてのアプリが赤枠になる。
  • xfwm4+Compton: 今まで(Compositor)と同様に赤枠が出る。 ← "compositing"はxfwm4のCompositorの設定のようで、これをonにするとComptonは起動しない。また、影の有無はComptonの設定で行うため、何も指定しないと赤枠になるようだ。
    • Comptonの設定で影を付けると、赤枠が出るアプリの影が大きくなって奇異。

結局、手軽にうまくは行かないようなので、いい方法が見付かるまでは上記の方法(xfwm4(compositingはoff)とgtk.cssの追加設定)でしのぐことにした。

 

(10/13 7:52 少し修正・加筆)

  •   1
  •   0

コメントを書く / Write a comment

名前 / Name    

メール / Mail 

URL