그놈 (우분투) : 터미널에서 명령 줄을 사용하여 프로그램 창을 앞으로 가져 오는 방법?


14

수십 개의 개방형 Windows가있는 특정 작업 환경이 있습니다. 프로그래밍 방식으로 또는 명령 줄을 사용하여 알려진 이름 / 제목이있는 창을 전면으로 가져 오려면 어떻게해야합니까?

답변:


12

예전 wmctrl -a <name>에는 잘 작동했지만 최근에로 전환했습니다 xdotool.

xdotool search --name <name-or-regex-for-name> windowraise

다른 많은 기능들도 있습니다.

설치하기 위해서:

sudo apt-get install xdotool


5
xdotool windowraise창을 앞으로 가져 오지만 창에 초점을 맞추거나 창으로 바탕 화면으로 전환하지 않습니다. 대신 windowactivate세 가지를 모두 수행합니다.
jozxyqk

6

음, sudo apt-get install wmctrl-ing 후에 는이 bash 스크립트를 사용할 수 있습니다.

#! /bin/bash

WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird

# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:

if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0

내가 여기서 찾은


4
괄호와 백틱이 필요하지 않습니다.if ! wmctrl -l | grep -q "$WINTITLE"
추후 공지가있을 때까지 일시 중지되었습니다.

wmctrl-i16 진 식별자로 창 작업을 지원 하는 옵션이 있습니다. 그리고 당신은 이것을 할 수 있습니다 wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai– 비슷한 일을 할 것입니다
vlad-ardelean

0

를 사용할 때 하나의 명령을 사용하여 주어진 응용 프로그램이나 클래스의 모든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 (원래 저자)은 과거처럼 활동적이지 않으므로 주저하지 말고 프로젝트에 참여하십시오.


이것은 AskUbuntu에 게시답변 의 사본 이지만 Linux-flavor와 독립적이므로 여기에서도 유용 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.