
私は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はインストールされていませんが、xcompmgr
例XCompositeRedirectSubwindows()
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