프로그램 창을 다른 창 앞에 가져 오는 쉘 명령?


12

이미 시작된 프로그램을 다른 그놈 앞에 가져 오기위한 쉘 명령이 있습니까?

즉 :

Gedit과 노틸러스가 시작되었습니다. 노틸러스는 배경에 있고 Gedit는 전경에 있습니다.

쉘 명령으로 노틸러스를 앞으로 가져 오려면 어떻게해야합니까?


답변:


14

노트 :


물론 내 글을 작성하는 것처럼 게시물을 편집하십시오 ... :()
frabjous

wmctrl -l을 사용하여 창 이름을 찾을 수 있습니다. 이름은 마지막 대시 다음의 텍스트입니다. <window ID> <desktop ID> <client machine> <window title>
jorfus

8

또 다른 옵션은 xdotool입니다 .

xdotool search --class Nautilus windowactivate


2
나를 위해 실패XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
Tino

아마 버그 여기 - --class하지 않는 경우 내 경험 --classname 또는 (알려진 경우) --name에서 때때로 작동합니다.
frabjous

필자의 경우 ID를 사용하고 xwininfo몇 가지 추가 xdotool명령을 실행 하여 창을 올리는 것이 가능했습니다 (더 이상 기억하지 못합니다). 내가 그것을 없애기 위해 자동화하려고 할 때 xwininfo숨겨진 숨겨진 창으로 인해 시각적 인 인공물이 생겼습니다. 임의의 창을 올바르게 처리하는 일반적인 방법을 찾지 못했습니다. wmctrl -a모든 항목으로 전환 한 후에 는 추가 조정없이 즉시 상자에서 완벽하게 작동했습니다. 내가 좋아 xdotool하지만 정확한 창을 올리는 것은 어려워 보입니다.
Tino

2

를 사용할 때 하나의 명령을 사용하여 주어진 응용 프로그램이나 클래스의 모든xdotool을 가져 오는 것이 어려워 보입니다 . 쉘 수준에서 루프로 감싸서 더 나은 결과를 얻습니다 . 배쉬 사용 :for

for WINDOW in $(xdotool search --desktop 0 Firefox); do
   xdotool windowactivate ${WINDOW}
done

몇 가지 언급 :

  • 기본적 으로 창 이름, 클래스 및 클래스 이름에서 xdotool search패턴 (여기서는 Firefox)을 검색합니다 . 당신이 당신의 검색 공간을 제한 할 경우, 관련 사용 --class, --name또는 --classname옵션.
  • --desktop 0옵션은 검색을 첫 번째 데스크톱으로 제한합니다. 이것은 XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)일부 의견 에서 언급 을 피하기위한 해결 방법 인 것 같습니다 .
  • 이 글을 쓰는 시점에서이 xdotool프로젝트는 2015 년부터 중단되었습니다. 그래도 여전히 제가 선택한 도구입니다. 개인적인 이유로, Jordan Sissel (원본 저자)은 그다지 활발하지 않으므로 프로젝트에 기여하는 것을 망설이지 마십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.