저는 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>
현재 Compton이 신디사이저로 사용되고 있는 것을 볼 수 있습니다. 신디사이저가 없으면 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
또는 pkill
PID 대신 프로세스 이름을 지정하여 프로세스를 종료할 수 있습니다.
$ pkill compton
일부 합성기(Xfce와 같은)는 비활성화하기 위해 다른 방법이 필요할 수 있습니다:
$ xfwm4 --compositor=off --replace