저는 백트랙5를 사용하고 있습니다. Ubuntu 10.04를 기반으로 하기 때문에 여기에 질문을 올리기로 결정했습니다.
마우스를 사용하여 텍스트를 선택하는 데 문제가 있습니다. 예를 들어, 폴더 이름을 바꾸려고 할 때 텍스트를 성공적으로 강조 표시할 수 있지만 마우스 버튼을 놓으면 더 이상 강조 표시되지 않습니다. 가끔은 내가 원하는 텍스트 부분을 성공적으로 강조표시조차 할 수 없는 경우도 있습니다. 실제 선택한 텍스트를 어느 정도 강조 표시합니다.
처음에는 내 마우스에 문제가 있는 줄 알았으나 다른 마우스를 사용해 보았지만 문제가 지속되었습니다. 이 문제는 온라인에서 나를 정말 괴롭힌다. 저 좀 도와 주 시겠어요?
답변1
X 선택을 계속 훔치는 것이 있을 수 있습니다. 와서 그게 누구인지 알아보세요. 다음과 같이 컴파일할 수 있습니다.
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
int main() {
printf("%#lx\n", XGetSelectionOwner (XOpenDisplay(0), XA_PRIMARY));
return 0;
}
그리고:
gcc that-file.c -lX11
이 코드는 X 선택 소유자의 창 ID를 반환하는 데 사용됩니다 PRIMARY
. 그런 다음 다음을 사용하여 창을 소유하는 프로세스의 PID를 얻을 수 있습니다 xdotool
. (창이 로컬 클라이언트에서 제공되고 창 관리자가 해당 PID를 알 수 있다고 가정):
ps -fp "$(xdotool getwindowpid "$(./a.out)")"
해당 창 ID가 없으면 xdotool
어려운 방법으로 수행할 수 있습니다. 출력에서 해당 창 ID를 찾을 수 있습니다 xwininfo -root -all
.
xwininfo -root -all | less "+/$(./a.out)"
선택 항목을 소유한 창에는 이름이 없을 수 있지만 해당 창의 상위 또는 조상을 보면 더 많은 단서를 얻을 수 있습니다. 창 관리자가 관리하는 상위 항목을 찾으면 다음을 사용하여 프로세스 ID를 얻을 수 있습니다(창이 로컬 프로세스에서 온다고 가정).
xprop -id that-id _NET_WM_PID
예:
$ xwininfo -root -wm -tree | grep -B3 "$(./a.out)"
24 children:
0x2800024 "Sun 12 May - 21:40 - zsh (2)": ("xterm" "XTerm") 1920x1059+0+19 +0+19
1 child:
0x280002f (has no name): () 1920x1059+0+0 +0+19
0x280002f에는 PRIMARY 선택이 있고 그 상위는 "xterm"입니다(0x2800024는 창 관리자에 의해 관리됩니다).
$ xprop -id 0x2800024 _NET_WM_PID
_NET_WM_PID(CARDINAL) = 9707
$ ps -fp 9707
UID PID PPID C STIME TTY TIME CMD
chazelas 9707 1 0 08:50 ? 00:00:02 xterm
이것이 pid입니다.
누가 선택권을 갖고 있는지 알게 되면 무슨 일이 일어나고 있는지 더 명확해질 것입니다.