コンテンツにスキップ

このWebサイトは、管理人が個人的に書き留めている備忘録です。それ以上でもそれ以下でもありません。
誤記・誤解・誤謬を含め、記述内容の確度を一切保証しません。責任を負いません。問い合わせ等を受け付けません。
This Mediawiki is a personal memorandum written by Administrator, nothing more, nothing less.
Administrator do NOT guarantee accuracy of content, including any errors, misunderstandings, fallacies, take NO responsibility, do NOT accept inquiries anything of the sort.

KDE Plasma Transparent

提供:Memorandum

Linuxのデスクトップ環境としてKDEを使用しているとき、アプリケーションウィンドウやタスクバー(パネル)を半透明にするには何をどう設定すべきか、というメモ。

グローバルな視点では「KDEといえば半透明」なのだが、あまりにマニアックだなぁ。

「デスクトップ環境」とは

現代のコンピュータはCLI (Command-Line Interface)が基本だ。キーボードなどの入力装置からOSを経由してCPUに演算命令(コマンド)をキャラクタ(文字列)で入力し、演算結果はディスプレイやプリンタに文字列で出力される。よって、コマンドや演算結果の読み方を知らなければ、そのコンピュータは使えないことになる。スーパーコンピュータや組込コンピュータはCLIのみの場合が多く、これらは専任のエンジニアしか扱えない。

このままでは市井の人々はコンピュータを使えないので、コマンドの入力と演算結果の出力を文字列ではない方法で提供する方法が考案された。それがGUI (Graphical User Interface)である。ディスプレイに表示されるボタンや画像を視覚から選択することでOSを経由してCPUにコマンドを文字列で入力でき、それから得られた演算結果である文字列を適切に映像化してディスプレイに表示するものだ。これが実用化されてはじめて、市井の人々でも(ある程度は)使えるようになった。PCはもちろん、スマートフォンが最たる例だろう。

この「GUIを実現するためのソフトウェアパッケージ」がデスクトップ環境である。

Linuxではデスクトップ環境が変更できる

WindowsやmacOSのデスクトップ環境は、WindowsならMicrosoftの、macOSならAppleの、御仕着せのもの以外に変更できない[1]。彼らにとってOSとデスクトップ環境は一体化された不可分の商品で、彼等が考えた組合せが所謂ユーザエクスペリエンスを提供するにあたってベストだと考えているからだが、これが原因でインストールできるハードウェアに制限が掛かる。一般にGUIはCLIよりハードウェアが高性能でなければならないうえ、CPU以外に映像を処理・表示するためのGraphics Processing Unit (GPU)でも、彼らが開発したデスクトップ環境を支障なく機能させるために最低限のスペックを規定しなければならないからだ。

それに対して、Linuxのデスクトップ環境は多種多様な選択肢があり、ユーザの好みやハードウェアのスペックに応じていくらでも変更できる。Linuxは(基本的に)商品ではないうえ、その核心たるKernelは『OS機能を提供することに徹して』おり、デスクトップ環境とは無関係だからだ。もっと言えば、Kernelとデスクトップ環境の作者はまったくの別人で、Kernelから見たデスクトップ環境は「OS上で動いているソフトウェアのひとつ」でしかない。Kernelとデスクトップ環境をどう組合せるかはユーザの自由だ[2]。これがWindowsやmacOSと決定的に違う点であり、個人が日常生活で使うPCはこうでなければ面白くない。

ただ、その挙動もいくらでも変更できるため、いったん変更し始めると沼に嵌るため要注意である。

世に数多あるLinuxディストリビューションでデスクトップ環境を構築する際にデフォルトで選択されるのは、軽快な動作で有名なGNOMELXDEだ。これらは実装されているハードウェアが比較的ロースペックなノートPCでも問題なく機能することを目標に開発されているため、余程古くなければ、大抵の市販PCで問題なく機能する。謂わば「Windowsの対抗馬」であろう。それ以外では、Linux Kernel産みの親であるLinus TorvaldsがGNOMEのバグに嫌気が差して一時使用していたことで知られるXfceも軽快さで人気がある。

が、KDEは、それらとは対極の美麗さで夙に知られる。実用一辺倒なWindowsにはない開発指向[3]で、さりとてmacOSとも異なる美麗さの演出に、管理人を含む根強いファンが多いが、美麗さを演出するためにCPUの演算量やグラフィック用メモリの消費量が多くなることから、KDEに実装されている様々な効果(エフェクト)を使うにはGNOMEやLXDEよりハイスペックなハードウェアが必要[4]になる。しかし、ここ最近のハードウェアは安価なモデルでも高性能なので、KDEの様々なエフェクトを同時に有効にしたとて、描画でモタついたりコマ落ちしたりすることはほぼ無くなった。「時代がようやくKDEに追い付いた」だけなのかもしれないが、いずれにしろ、良い時代になったものだ。

「KDEならTransparentでしょ」

そんなKDEで代表的なエフェクトがTransparent:透過だ。即ち、文字はそのままだが、アプリケーションウィンドウだけを半透明に設定するエフェクトで、ユーザの目に応じて透明度を調整すると、アプリケーションウィンドウに表示される文字の可読性を維持しつつ、背景や、背後のアプリケーションウィンドウの文字だけが鮮やかに浮かぶ環境が構築できる。

これは実に有用なエフェクトで、例えばWebブラウザで調べた複数のコマンドラインを順番にコンソールに入力する際、いちいち ALT + Tab を押下してWebブラウザとターミナルエミュレータのウィンドウを行き来してコマンドラインをコピペするのではなく、ターミナルエミュレータの背景として透けて見えているWebブラウザのコマンドラインをそのまま確認しながら入力できるので便利なのだ。

また、副次的な効果だが、画面の一部を無粋に占拠しているタスクバー(KDEではパネルという)をも完全に透明化できるため、壁紙に設定した画像をディスプレイの隅々まで鑑賞できるようになる。

ではなぜ「KDEならTransparentでしょ」と謂われるのか。それは、画像透過処理がCPUリソースを莫迦食いする、かなりの演算量だからだ。よって、カラフルな背景を設定した状態で半透明を維持したウィンドウを動かそうものなら、それに連れてリアルタイムで透過処理を走らせる必要があるためCPU演算量が跳ね上がり[5]、貧弱なCPUでは処理が追い付かずフリーズする[6]。つまり、ハイスペックなハードウェアが必須となり、先述の目標と真っ向から対立するため、GNOMEやLXDEでは意図的に実装しておらず、Xfceでは設定できるものの正面切ってユーザに勧めていないが、KDEは当初からある程度ハイスペックなハードウェアで使用することを想定しているため、Transparentを公式にサポートしている。このあたりは「鶏が先か、卵が先か」の関係といえなくもないが、GNOMEやLXDEの初心者がユーザコミュニティに「ウィンドウをTransparentにできないの?」と質問しようものなら、開発者や古参のユーザから「TransparentにしたいならKDEに乗り換えてくれ!」と呆れられたり、Transparentを設定していないKDEユーザが、設定済のKDEユーザから「折角のKDEなんだから、Transparentを設定しないと勿体無いよ」とまで謂われる所以がここにあるのは間違いない。

下記は、管理人なりのKDE Plasma 5でのTransparentの設定である。なお、画面が白色で明るいと目が疲れる[7]ため、管理人のデスクトップ環境はデフォルトでダーク(黒色)設定、ターミナルエミュレータも黒色透け背景に信頼と伝統のアンバー(琥珀色)文字で設定している。

  1. タスクバーのウィジェットにPanel Transparency Buttonを追加後、ノブをONに倒して、タスクバー(パネル)を完全に透明化する
  2. Kvantumをインストールする
    # apt install kvantum
  3. Kvantum用テーマのBlack-ColorsからBlack-BlueBerry.tar.gzをダウンロードし解凍する
  4. アプリケーションランチャーから[設定]→[Kvantum マネージャー]を起動し、解凍したBlack-BlueBerry.tar.gzをインストールする
  5. 同じウィンドウで[アクティブなテーマの設定]を選択、[Compositing & General Look]タブにあるReduce window opacity by40に、Reduce menu opacity by40に、それぞれ設定する。

脚注

  1. いちおうWindowsはレジストリを弄れば多少変更できるものの、とてもではないが一般ユーザ向けではない。裏を返せば、デスクトップ環境が妙に変わっている場合は、外部から侵入したコンピュータウィルスが(自身の存在をアピールするため)変更させたとを疑うべきですらある。特に、タスクバーが突然(半)透明になった場合は、ウィルス感染を疑って問題ない。
  2. これには当然「デスクトップ環境をインストールしない自由」も含まれる。というか、数十億台のAndroidスマートフォンが普及する以前は、Linuxをインストールしたコンピュータにデスクトップ(GUI)環境をインストールすること自体が珍しがられた。それまでLinuxの主戦場だったサーバ用途ではデスクトップ環境は不要だからだ。管理人も自宅でLinuxサーバを運用し始めて20年ほど経つが、サーバにデスクトップ環境なんぞインストールしたことは無い。あくまで日常使用するクライアントPCでの話だ。
  3. 操作体系はWindowsデスクトップ環境の影響が大きい。これはGNOMEやLXDEでも同じだ。
  4. 使用しているディスプレイが大画面だったり複数枚だったりすると描画のスピードが追い付かずフリーズする場合があるようだが、それでも、Windowsが要求するハードウェアスペックよりは低性能でまったく問題無い。
  5. 管理人の手許の環境では、ウィンドウを半透明に設定したDolphinをぐりぐり動かすだけで、ディスプレイサーバとクライアント間の通信プロトコルであるWaylandのCPU使用率が2%台から30%台まで急騰する。これは、半透明なウィンドウがぐりぐり動く → 半透明の領域がディスプレイのリフレッシュレートに応じて変わる → 該当する領域を透過処理させる画像をリフレッシュレートに応じた枚数だけ演算・作成し続ける → 作成した画像がディスプレイサーバとクライアントの間で送信され続ける、という因果関係に依る。ディスプレイの解像度がWQHD(2560×1440)、RGBレンジがFull(16,777,216色)、リフレッシュレートが60Hzなので、秒間60枚、大きさがWQHDで16,777,216色を使用している画像の一部に透過処置を実行後、1枚も欠けることなく連続してディスプレイサーバに送信しているのだから至極当然だろう。30%台で収まっていることのほうが不思議なぐらいだが、これはひとえにハードウェアの進歩の賜物だろう。
  6. そのため現在でもKDEの半透明を設定するオプションに「移動中のウィンドウは半透明にしない」という項目がある。これをONに倒すと、移動しているウィンドウの背景は直前の状態から変更されず、移動し終わった位置で背景の透過処理が走る。つまり、移動中のウィンドウに透過処理を実行しないため、CPUに優しい。
  7. ディスプレイの色温度は6500Kだが、明度は40%まで減光している。