web-dev-qa-db-ja.com

ユーザーインターフェイスサブシステム、それらのコンポーネント、および責任は何ですか?

私は、ユーザーインターフェイスを担当するさまざまなサブシステム、それらを参照するための用語、およびそれらがどのように構成されているかを理解しようとしています。これまでのところ、次のことがわかっています。

トップレベル:

デスクトップ? (kde、gnomeなど)

次に、次のようになります。

  • ディスプレイマネージャー(デスクトップマネージャーまたはデスクトップ環境とも呼ばれます)
  • ウィンドウマネージャー
  • 他に何か?

私はこれをコミュニティウィキにしています。これを、Linuxのユーザーインターフェイスサブシステムに関して(ユーザーの観点から)知っておくべきすべてのことの中心的な場所にしたいと思います。私が知りたいのは、それぞれのコンポーネントとは何か、そしてそれぞれの責任は何かです。つまり、次のようなことを知りたいのです。

  • グローバルショートカットキーを正確に担当しているのは、「アプリケーションの実行」ダイアログを開いたとき、それを実行しているとき、キーを押してデスクトップを表示したとき、ターミナルを実行したとき、ウィンドウを最大化したときなどです。それを右のウィンドウに送信します。
  • デスクトップやワークスペースなどの描画を担当しているのは誰か。
  • これらのコンポーネントに関する情報を私に与えることができる環境変数は何ですか
  • 「メインメニュー」はサブシステムですか、それともサブシステムのコンポーネントですか。

最も人気のあるデスクトップ/サブシステムのリストを編集して、それぞれの下で実行するのもいいでしょう。デスクトップ/デスクトップ環境/ウィンドウマネージャーなどを組み合わせることができますか?

最後に、システム上で実際に実行されている(アクティブな)デスクトップ/サブシステムを確認するにはどうすればよいですか?異なるユーザーがそれぞれ異なるサブシステムを持つことができますか?

8
BlackTigerX

まず第一に、ディスプレイマネージャー(またはDM、たとえばxdm、gdm、kdm)はデスクトップ環境(またはDE、たとえばGNOME、KDE、XFCE)と同じではありません。

表示マネージャはグラフィカルログインを処理し、実行するセッションを決定(または選択できるようにします)します。または、「ユーザーの切り替え」メニューオプションを選択した場合のセッション* s *。

デスクトップ環境は基本的に、プログラム(ディスプレイマネージャー、ウィンドウマネージャー、セッションマネージャー、パネル、構成ツールなど)とライブラリ(Gtkなど)のコレクションであり、一貫性のある統合された環境で作業することを目的としています。

ウィンドウマネージャーはウィンドウを管理します:ウィンドウの配置、移動、サイズ変更、最小化/最大化、タイル化など)。また、それらのことを行うためのショートカットも処理します。ウィンドウマネージャがウィンドウの境界線もペイントする場合もあれば、このタスクが「ウィンドウデコレータ」に渡される場合もあります。

GNOMEの[アプリケーションの実行]ダイアログはgnome-panelの一部ですが、別のDEでは環境の別の部分である可能性があります。

窓などの塗装は誰が担当するかによります。使用中の「コンポジター」がある場合(多くの場合、Compizなどのウィンドウマネージャーの一部)、コンポジターは画面にウィンドウをペイントします。それ以外の場合は(以前は通常どおり)Xサーバーがそれを行います。

メインメニューはgnome-panelの一部によって画面に表示されますが、使用されるデータは/usr/share/applications/内の一連のファイルから取得されます(個人的な変更のために自宅の同等のディレクトリと組み合わされる可能性があります)。これらのファイルは、FreeDesktop.org(異なるDEが共通のインフラストラクチャでコラボレーションするためのプラットフォーム)によって定義された構造を持っているため、GNOMEとKDEは同じプログラムについて認識します(ただし、表示方法が異なり、場合によっては「ネイティブ」プログラムを優先します) 「外国の」ものより)。

もちろん、ユーザーごとに異なるセッション構成を使用できます(さらに、独自の構成を定義することもできます)。 GDMで、使用可能な選択肢について[セッション]ドロップダウンを試してください。

さらに、複数のコンポーネントを組み合わせて組み合わせることができますが、その結果、連携が低下し、動作の「スムーズさ」が失われることがあります。物事が交換される非常によく知られている例の1つは、もちろんCompizです。これは、派手なデスクトップ効果が必要な場合にMetacityを置き換えます。しかし、他にも多くの変更が可能です。

5
JanC

デスクトップマネージャーは主にハードウェアを管理し、ウィンドウマネージャーはソフトウェアを管理します。たとえば、電力管理、スクリーンセーバー、システムパフォーマンス、ログイン画面などは、デスクトップマネージャーによって管理されます。テーマ、ウィンドウの配置、ウィジェットとアイコンのセット、フォントなどは、ウィンドウマネージャーによって管理されます。

デスクトップマネージャーなしでウィンドウマネージャーをインストールすることができます。仮想端末にログインしてから、ログインスクリプトでウィンドウマネージャーを実行して「デスクトップ」を起動するのが一般的です。

デスクトップマネージャーは、GNOME、KDE、CDEです。ウィンドウマネージャーは、Metacity、Openbox、Enlightenment、Awesomeなどです。

いくつかの質問に直接答えるには:

  • ウィンドウマネージャーは主にデスクトップキーボードショートカットを担当します。
  • ウィンドウマネージャーは、前述のように、デスクトップ、ワークスペース、ウィンドウの配置などの描画を担当します。
  • gUIの環境変数はそれほど多くありません。これらは通常、端末の背後にあるシェルにのみ適用できます。ただし、setおよびenvを実行して、何が設定されているかを把握することができます。
  • サブシステムまたはサブシステムのコンポーネントとしての「メインメニュー」が何を意味するのかわからない。メニューはウィンドウマネージャーの一部です。

いくつかの人気のあるデスクトップマネージャーとウィンドウマネージャーについてはすでに説明しました。 Googleを使用すると、さらに多くの情報を見つけることができます。

オペレーティングシステムによっては、優先デスクトップを定義したASCII構成ファイルが存在する可能性があります。たとえば、Debian GNU/Linuxでは、これは/etc/X11/default-display-manager構成で定義されます。 'ps -ef | grep user'を実行することもできます。ここで、 'user'はシステム上の一部のユーザーのログインの名前であり、リストされているプロセスと、実行中のグラフィカルデスクトップを確認します。私にとっては 'metacityです。 '。

2
Aaron Toponce