Ask Ubuntu에 대답했습니다 . 명령 을 gnome-terminal
통해 모든 인스턴스를 종료하십시오. 모두 읽을 수있는 gnome-terminal
것처럼 SIG
이 “닫기”이벤트를 시뮬레이트하는 데 사용할 수 있는 전화 가없는 것 같습니다 . GNOME / KDE / LXDE / {창 / 데스크톱 관리자 / 환경을 여기에 넣는} 방법으로 “닫기 버튼 클릭”이벤트를 시뮬레이트하는 방법이 있습니까? 나는 이것과 관련이있을 수있는 다른 질문 을 읽었 지만 이것에 대답하지는 않습니다.
내가 찾고있는 것은 다른 시나리오 에서이 작업을 수행 하는 전역 명령 (있는 경우)입니다. 존재하지 않는 경우 “닫기”버튼의 작동 방식을 설명하십시오.
가능한 용도 :
- 결정된 작업을 위해 일련의 응용 프로그램을 열고 단일 스트로크 / 명령으로 모든 응용 프로그램 (더 이상 사용하지 않는 경우)을 닫지 않고 작업을 저장하고 싶습니까? 경고.
- 모든
gnome-terminal
인스턴스를 닫고 하위 프로세스가 여전히 실행 중이면 경고합니다. - 지금 내 마음 속에는 아무것도 없습니다 …
답변
관련 매뉴얼 페이지는 XKillClient 입니다. xdotool
터미널에서 클릭되는 닫기 버튼을 시뮬레이션하는 데 사용할 수 있습니다 .
예
내가 gnome-terminal
열려 있고 이름이 “saml @ grinchy : / home”이라고 가정합니다.
-
창 ID를 얻으십시오
$ xdotool search --name "saml@grinchy:/home" 96488188
-
보내 Alt+F4
$ xdotool windowactivate --sync 96488188 key --clearmodifiers \ --delay 100 alt+F4
첫 번째 명령을 두 번째 명령에 포함시켜 함께 묶을 수 있습니다.
$ xdotool windowactivate --sync $( ...1st command...) key --clearmodifiers \
--delay 100 alt+F4
xdotool
동시에 두 가지를 모두 수행하여 자신을 구할 수 있습니다 .
$ xdotool search --name "saml@grinchy:~" key alt+f4
전 세계적으로
동일한 이름의 창에서 실행하도록 제공 한 내용을 조정할 수 있습니다.
$ xdotool search --name "saml@grinchy:~"
96488779
96468996
또는 다른 속성으로 창에서. xwininfo
특정 창에 대해 자세히 알아볼 수 있습니다 . 그것을 실행하고 관심있는 창을 클릭하십시오.
$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x5c04d4b "saml@grinchy:~"
Absolute upper-left X: 14
Absolute upper-left Y: 74
Relative upper-left X: 14
Relative upper-left Y: 74
Width: 941
Height: 361
Depth: 32
Visual: 0x62
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x5c00003 (not installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +14+74 -485+74 -485-465 +14-465
-geometry 132x24+14+74
X11 창을 다룰 때 유용한 도구는 xdpyinfo
& xprop
입니다. xdpyinfo
X 서버에 대한 정보를 찾는 데 사용할 수 있습니다. 따라서 어떤 창에 포커스가 있는지 알아낼 수 있습니다.
$ xdpyinfo |grep focus
focus: window 0x5c00005, revert to Parent
xprop
및 xwininfo
테이크 수 있습니다 -id
당신이 그들에게 당신이 대신 클릭해야하는에 관심이있는 창 ID를 제공 할 수 있도록 스위치를 :
$ xprop -id 0x5c00001|grep -i class
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
참고 문헌
답변
나는 xdotool
색다른 / 버기 인 것을 발견 했다. 때로는 닫혀 져야하는 것이 아니라 전경 창을 닫는다. 이것은 창 이벤트를 직접 보내는 대신 창을 전경으로 가져온 후 키가 전송되는 방식으로 인한 것으로 보이며 매우 성가신 문제입니다. wmctrl
키 입력을 보내지 않고 창을 직접 닫는을 사용 하는 것이 좋습니다 .
이름을 일치시켜 창을 직접 닫을 수 있습니다. 예를 들어 둘 다 “제목없는 문서 1-gedit”창을 닫습니다.
wmctrl -c "gedit"
wmctrl -c "Untitled"
이 -F
옵션을 사용하면 정확히 일치하는 항목 만 고려할 수 있습니다 .
wmctrl -F -c "Untitled Document 1 - gedit"
또는 ID를 직접 제공 할 수 있습니다.
wmctrl -i -c "121634821"
더 많은 사용 예 / 문서는 여기 에서 찾을 수 있습니다 .
내가 매우 유용하다고 생각하는 것 중 하나 xdotool
는 --sync
인수를 사용하여 결과가 나올 때까지 기다리는 기능 입니다. 두 명령을 하나의 명령으로 결합하면 다음과 같이 수행됩니다.
xdotool search --sync --name "gedit" | xargs wmctrl -i -c
Mac을 사용하는 경우 -I{}
매개 변수 가 필요할 수 있습니다.
xdotool search --sync --name "gedit" | xargs -I{} wmctrl -i -c {}
여러 창을 지원 하려면 옵션을 사용하여 매번 최대 1 개의 인수 xargs
를 호출 wmctrl
하도록 지시 해야합니다 -n
. wmctrl
여러 창을 인수로 명시 적으로 지원하지 않습니다.
xdotool search --sync --name "gedit" | xargs -I{} -n 1 wmctrl -i -c {}
이것은 적어도 하나의 그러한 창이 나타날 때까지 기다린 다음 모든 창을 닫습니다.
답변
pkill (1)이 필요한 것이어야합니다.