텍스트 문제 선택/강조표시

텍스트 문제 선택/강조표시

저는 백트랙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입니다.

누가 선택권을 갖고 있는지 알게 되면 무슨 일이 일어나고 있는지 더 명확해질 것입니다.

관련 정보