web-dev-qa-db-ja.com

Xクライアントは、動作するためにウィンドウマネージャーを必ずしも必要としますか?

Xクライアントは、動作するためにウィンドウマネージャーを必ずしも必要としますか? XクライアントはXサーバーのみで動作しますか?

Xクライアントにウィンドウがない場合 、それが機能するかどうかにはウィンドウマネージャーが必要ですか?

Xクライアントがウィンドウマネージャーなしで動作できる場合、Xクライアントには必ずしもウィンドウがありませんか?

ありがとう。

32
Tim

いいえ。適切に記述されたアプリにはウィンドウマネージャーは必要ありません。

しかし、一部の「モダンな」壊れたアプリは、ウィンドウマネージャーがないと正常に動作しません(たとえば、Firefoxとドロップダウンされないアドレスバーの提案[1])。

他の多くの劣ったアプリ想定ウィンドウマネージャーだけでなく、傷害に侮辱を加えるためにフォーカスするためにクリックウィンドウマネージャー。たとえば、以前は、Javaアプリが起動時のフォーカスを盗むだけでした。

テストする場合は、Xephyr(「ネストされた」X11サーバー)をインストールし、Xephyr :1で実行してから、環境でDISPLAY=:1を使用してアプリを起動します。

[1] Firefoxの「素晴らしいバー」は、ウィンドウマネージャーが実行されていない限り、入力したり履歴ボタンをクリックしたりしても、提案ペインを開きません。自動非表示メニューも機能しません。

26
mosvy

いいえ、Xクライアントが機能するためにウィンドウマネージャーを実行している必要はありません。一部のシステムには、起動時にターミナルを実行するオプションがあり、そこからウィンドウマネージャーを含む追加のプログラムを起動できます。 1つのアプリケーションのみを実行したいキオスクセットアップの中には、ウィンドウマネージャーを必要としないものがあります。 X for Microsoft Windowsの一部の実装では、OSにウィンドウを管理させることにより、Xウィンドウマネージャーを回避しています。

ウィンドウマネージャーがない場合、通常はプログラムにジオメトリを指定する必要があるため、すべてを左上隅に配置する必要はありません。

Xでは、ウィンドウマネージャーは単なるXクライアントです。これは当時としては珍しいことでしたが、さまざまなウィンドウマネージャーを簡単に使用できるようになりました。

質問を見る別の方法は、ウィンドウマネージャーをその場で変更できることを観察することです。そのため、最初のウィンドウマネージャーが停止してから2番目のウィンドウマネージャーが制御を取得するまでの時間がありますが、すべてのアプリケーションがクラッシュしないので、それらはできるはずですなしで動作します。

38
icarus

ウィンドウマネージャはユーザーにとって便利です。

良い^ Wbad昔、私は~/.Xclients読み取るファイル:

#!/bin/sh

Host=`uname -n | sed 's/\..*$//'`

xv -root -rmode 5 $HOME/misc/millennium/theme/Wallpaper.gif -quit &

xterm -geometry 80x24+0+85 \#52x71-104+0 -n $Host -T $Host &
xterm -geometry 80x24+510+429 \#52x71-52+0  -n $Host -T $Host &
xclock -digital -update 1 -geometry +1059+982 &
xscreensaver -nosplash &
exec /usr/local/lib/X11/fvwm/fvwm

このファイルは、Xをstartxで起動したときに実行されます。このスクリプトが完了すると、Xサーバーがシャットダウンします。

最後の行に注意してください:exec .../fvwm。これは、ウィンドウマネージャー(fvwm)を起動した行です。以前のすべてのアプリケーション(xvxtermxclockxscreensaver)は、ウィンドウマネージャーが起動する前に実行されていました。 fvwmへの呼び出しが最後の行であり、notがバックグラウンドに配置されていたため、fvwmが終了するとXが終了しました。

Xスタートアップにはデフォルトの「フォールバック」もありました...設定ファイルがない場合は、単一のxtermを実行してXを起動します。 xtermを閉じると、Xセッションが終了します。

7
Stephen Harris

他の回答に追加するために、ウィンドウマネージャーなしで機能する オープンソースアプリ を開発してリリースしました(つまり、xinitrcから直接起動できます)。この場合、ダイアログのジオメトリとZオーダーを管理する以外に、アプリケーションが実行する必要があるいくつかの追加の手順がありますが、これは完全に管理可能です。

6
George Y.

ここには詳細な答えがたくさんあります。これが簡単で明確な答えです。

Xクライアントは、動作するためにウィンドウマネージャーを必ずしも必要としますか?

いいえ:ただし、ウィンドウの管理(移動、サイズ変更、下げ、上げなど)に苦労する場合は必要ありません。あなたがそれを必要とするならば、これをすることができる他のツールがあります。

XクライアントはXサーバーのみで動作しますか?

はい

Xクライアントにウィンドウがない場合、それが機能するかどうかにはウィンドウマネージャーが必要ですか?

ウィンドウがない場合、ウィンドウマネージャーがないことのマイナス面はありません。

Xクライアントがウィンドウマネージャーなしで動作できる場合、Xクライアントには必ずしもウィンドウがありませんか?

いいえ:ウィンドウを持つことができます。

これを試して。

DISPLAY=:21
vncserver -localhost -geometry 1920x1080  -SecurityTypes None $DISPLAY &
ssvnc $DISPLAY
xterm &

次に、新しいxtermfvwmと入力します。

最初にvncserverssvnc、およびfvwmをインストールする必要がある場合があります。

1
ctrl-alt-delor

はい、XクライアントはXサーバーでのみ機能します。例として、このように、ホスト上の仮想マシンに独自の仮想コンソールを与えます。

# Press CTRL-ALT-F5, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system CentOS -- :4

# Press CTRL-ALT-F6, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system Windows -- :5

「startx」コマンドは、クライアントとしてvirt-viewerのみを使用して、ディスプレイ:4および:5でXorg Xサーバーを起動します。

「CentOS」と「Windows」は、仮想マシンをインストールしたときに付けた名前です。 virt-viewerの-kスイッチを使用すると、最小限のコントロールで全画面表示になるため、CTRL-ALT-Fnを押して別の仮想コンソールに切り替えるまで、各仮想マシンがそのマシンを所有しているように見えます。

もちろん、CentOSは仮想マシン内でディスプレイマネージャーとウィンドウマネージャーを実行していますが、ホスト上で実行されているXサーバーとは接続していません。

1
Ken Jackson