소스 응용 프로그램 (컨텐츠가 복사 된 위치)을 닫으면 클립 보드 내용을 사용할 수없는 경우가 있습니다.
이것은 소스 어플리케이션이 무엇인지 (예를 들어 PID에 의해) 알 수 있는지 궁금하게 만듭니다.
왜? 소스 응용 프로그램이 터미널 인 경우 복사 된 내용이 상대 경로 인 경우 파일의 전체 경로를 구성하기 위해 터미널의 작업 디렉토리를 찾고 싶습니다.
참고로, 현재 클립 보드 내용을 결정하기 위해 xclip을 사용하고 있습니다.
xclip -selection primary -t STRING -o 2> /dev/null
@ StéphaneChazelas가 말한 것. 그러나 X11에서 다른 클라이언트의 신뢰할 수있는 PID를 얻을 수는 없습니다. X 클라이언트는 일반 네트워크 연결 (UNIX 소켓 또는 TCP 소켓)을 통해 X 서버에 연결한다는 것을 기억하면 PID가 응용 프로그램이 로컬이 아니기 때문에 의미가 없을 수 있습니다. TCP (요즘 더 이상 사용되지 않음) 또는 SSH 전달 X11 연결 (보다 일반적)을 통해 연결되었을 수 있습니다.
—
Celada
메모 주셔서 감사합니다-XGetSelectionOwner에 액세스하려면 C 코드를 작성해야한다고 가정합니까? 아마 그렇게 할 수 있습니다-해결책에 도달하면 다시 게시 할 것입니다.
—
Jeff Ward
XGetSelectionOwner(3)
선택 소유자의 창 ID를 가져옵니다. 여기에서 창 트리를 걸어 _NET_WM_PID 속성을 가진 창을 찾아보십시오xprop
(해당 창은 해당 속성을 설정하는 로컬 클라이언트에서 온 것으로 가정).xwininfo -root -tree | less +/0x<that-id>
응용 프로그램을 식별하기에 충분할 수 있습니다.