나는 Ask Ubuntu에 대답했다gnome-terminal
명령을 통해 모든 인스턴스를 종료하십시오.그러나 여러분 모두가 읽을 수 있듯이 이 "오프" 이벤트를 시뮬레이션하는 데 사용할 수 있는 전화 통화 gnome-terminal
는 없는 것 같습니다 . SIG
그래서 질문이 생깁니다. GNOME/KDE/LXDE/{여기에 창/데스크탑 관리자/환경을 입력하세요}에서 "닫기 버튼 클릭" 이벤트를 시뮬레이션할 수 있는 방법이 있습니까? 나는 가지고있다읽다 다른 질문 저것이것과 관련이 있을 수 있지만 이 질문에는 대답하지 마세요.
내가 찾고 있는 것은글로벌다양한 시나리오에서 이 작업을 수행하는 명령(있는 경우)입니다. 존재하지 않는 경우 "닫기" 버튼이 어떻게 작동하는지 설명해 주세요.
가능한 용도:
- 정의된 작업을 위해 일련의 앱이 열려 있고 앱을 숨기지 않고 단일 스트로크/명령으로 모든 앱을 닫고 싶습니다(더 이상 사용하지 않을 때).작업 내용을 저장하시겠습니까?경보.
- 모든
gnome-terminal
인스턴스를 닫지만 하위 프로세스가 아직 실행 중이면 경고합니다. - 지금은 다른 생각이 하나도 안 나네요...
답변1
관련 매뉴얼 페이지는 다음과 같습니다.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
전 세계적으로
내가 제공한 내용을 수정하여 Windows에서 동일한 이름으로 실행할 수 있습니다.
$ xdotool search --name "saml@grinchy:~"
96488779
96468996
또는 Windows의 다른 속성을 통해. 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
그리고 클릭하지 않고도 관심 있는 창 ID를 제공할 수 있는 토글이 xwininfo
있습니다 .-id
$ xprop -id 0x5c00001|grep -i class
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
인용하다
답변2
나는 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 {}
여러 창을 지원하려면 호출 xargs
당 wmctrl
최대 1개의 인수를 알려야 합니다 -n
. wmctrl
여러 창은 인수로 명시적으로 지원되지 않습니다.
xdotool search --sync --name "gedit" | xargs -I{} -n 1 wmctrl -i -c {}
해당 창이 하나 이상 나타날 때까지 기다렸다가 모두 닫습니다.
답변3
pkill(1)이 필요한 것입니다.