どのポートフォリオ管理者が稼働しているかを確認する方法

どのポートフォリオ管理者が稼働しているかを確認する方法

私はArch Linuxを使用しており、Gnomeとi3ウィンドウマネージャがインストールされています。 i3の実行中に複合管理者であるComptonを起動しようとしています。しかし、これをしようとすると、次のエラーが発生します。

$ compton
[ 04/11/2019 22:32:36.443 register_cm FATAL ERROR ] Another composite manager is already running

私はこれがComptonがすでに実行されているか、Muttが実行されていることを意味すると思いますが、どちらかはわかりません。

現在実行中の複合マネージャを確認するために使用できるコマンドはありますか?

答え1

あなたはそれを使用することができますインシ

inxi -Gxx | grep compositor

出力は次のとおりです

           alternate: ati,fbdev compositor: compton resolution: <xdpyinfo missing> 

現在コンプトンがシンセサイザーとして使用されていることがわかります。シンセサイザーがなければ、grepマッチングは不可能です。

スイッチ:

  • -Gグラフィック情報(カード、ドライバ、ディスプレイプロトコル(利用可能な場合)、ディスプレイサーバ、解像度、レンダラ、OpenGLバージョン)を表示します。
  • -xx追加の追加データを表示します。 (使用-G、ディスプレイチップサプライヤー:各グラフィックカードの製品ID、OpenGL互換バージョン、シンセサイザー(実験的)代替Xorgドライバ。

答え2

ComptonやMutterはインストールされていませんが、xcompmgrXCompositeRedirectSubwindows()XSetErrorHandler

static int
error (Display *dpy, XErrorEvent *ev)
{
    ...
    if (ev->request_code == composite_opcode &&
        ev->minor_code == X_CompositeRedirectSubwindows)
    {
        fprintf (stderr, "Another composite manager is already running\n");
        exit (1);

これが唯一の可能な方法のようです:XCompositeGetOverlayWindow()いつも成功します。地図すでに使用中かどうかにかかわらず、ウィンドウをオーバーレイします。

CompositeGetOverlayWindow

この要求は、クライアントがその画面で複合オーバーレイウィンドウを使用しようとしていることを示します。複合カバレッジウィンドウがまだマッピングされていない場合は、この要求によってマッピングされます。

メモ:

Mutterは、別のプロセスではなく動的ライブラリ(通常はgnome-shellによってロードされます)として実装されています。

grep -sl mutter /proc/*/maps

Linuxでは、それを使用するすべてのプロセスを見つけることができます。

答え3

あるかどうかを知るコマンドはありません。どの私が知っている限り、シンセサイザーは現在実行中です。しかし、これを使うpgrepとわかります。与えられたシンセサイザーが現在実行中です。

$ pgrep compton
18169

pgrep以下を使用してプロセスを終了できるように、PIDが提供されますkill

$ kill 18169

あるいは、PIDの代わりpkillにプロセス名を指定してプロセスを終了することもできます。

$ pkill compton

一部のシンセサイザ(Xfceなど)では、無効にするために他の方法が必要な場合があります。

$ xfwm4 --compositor=off --replace

関連情報