デスクトップを書いています。Qt と GTK+ の基本は Python で理解していますが、完成したデスクトップを表示する方法がわかりません。Window Manager のルート ウィンドウにする方法、またはよく知らないデスクトップを表示する方法はありますか?
1 に答える
ルートウィンドウにはしません。X には、変更できないルート ウィンドウが 1 つあります。あなたがやりたいことをする方法はたくさんあります
- X ルート ウィンドウ
古いやり方では、デスクトップは単なる標準の X ルート ウィンドウでした。アイコンは、個々のボーダーレス ウィンドウに過ぎませんでした。
- デスクトップ ウィンドウ
現在、ほとんどのシステムは大きなウィンドウを開き、デスクトップ ウィンドウとしてマークします。ほとんどのウィンドウ マネージャは、それを他のウィンドウより上に上げてはならないことを知っています。X root ウィンドウはまだ背後にありますが、隠されています。これは、このウィンドウで好きなことをしたり、描画したり、アイコンやウィジェットを含めたり、ツールキットでできることなら何でもできることを意味します。
Gtk+ を使用している場合、関連情報はGdkWindowTypeHint
列挙型、具体的にはGDK_WINDOW_TYPE_HINT_DESKTOP
. ドキュメントはここにあります: GdkWindow
- コンポジター
ただし、Gnome3 や Unity などのデスクトップが使用する、Compositor Overlay Window と呼ばれる新しい方法があります。コンポジターの実行中は、システム上のすべてのウィンドウを覆うオーバーレイ ウィンドウがあります。このオーバーレイ上にウィンドウの実際のコンテンツを描画するのは、コンポジター次第です。ただし、オーバーレイは、このオーバーレイ ウィンドウに好きなように描画できます。たとえば、Gnome3 では、ウィンドウ セレクターに入り、ウィンドウがグリッドに配置されると、ウィンドウは実際には移動したり縮小したりしません。コンポジターは、ウィンドウをそのように描画することを決定しただけです。実際には、ウィンドウは以前と同じ位置にありますが、このオーバーレイの下に隠されています。
これは物事を行うための非常に高度な方法であり、初心者の開発者向けではありません。おそらく、2 番目の方法に焦点を当てたいと思うでしょう。