작업 공간에 열려 있는 모든 응용 프로그램을 닫는 gnome 3 확장 또는 fedora 25 바로 가기가 있습니까? (예를 들어 X를 눌러 작업 공간 자체를 닫습니다.)
이 기능은 오래 전에 어딘가에서 본 적이 있는데, 어디서 왔는지는 잊어버렸지만, 기본적으로 Fedora에서는 사용할 수 없습니다.
답변1
아래 답변은 Gnome3/Ubuntu에서 작성되고 테스트되었습니다. Fedora/Gnome에서 실행하는 데 문제가 있는 경우 이를 언급해 주세요.
Gnome의 특정 작업공간에서 모든 애플리케이션 창을 닫는 스크립트
아래 스크립트는 특정 작업 공간의 모든 창을 닫습니다. 두 가지 옵션이 있습니다.
실행 시간아니요매개변수를 사용하면 모든 창이 닫힙니다.현재의작업공간 예:
python3 /path/to/script.py
특정 작업 공간을 인수로 사용하여 실행하면 해당 작업 공간의 모든 창이 닫힙니다. 예를 들면 다음과 같습니다.
python3 /path/to/script.py 0
작업공간 1의 모든 애플리케이션이 닫힙니다.첫 번째 작업 공간의 인덱스는 0입니다.
스크립트
#!/usr/bin/env python3
import subprocess
import sys
arg = sys.argv[1:]
def check_close(w_id):
w_data = get(["xprop", "-id", w_id])
if "_NET_WM_WINDOW_TYPE_NORMAL" in w_data:
subprocess.call(["wmctrl", "-ic", w])
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8")
wlist = [l.split() for l in get(["wmctrl", "-lG"]).splitlines()]
arg = arg[0] if arg else [
l.split()[0] for l in get(["wmctrl", "-d"]).splitlines() if '*' in l
][0]
for w in [w[0] for w in wlist if w[1] == arg]:
check_close(w)
사용하는 방법
- 스크립트에는 다음이 필요합니다.제어판, 시스템에 아직 소프트웨어가 없으면 소프트웨어를 설치해야 합니다.
- 스크립트를 빈 파일에 복사하고 다른 이름으로 저장하세요.
close_wins.py
이제 대상 작업 공간을 인수로 사용하여 터미널 창에서 스크립트를 테스트 실행해 보세요. 예를 들면 다음과 같습니다.
python3 /path/to/close_wins.py 2
모든 창을 정상적으로 닫습니다.작업 공간 3에서(0 = 작업공간 1)
모든 창을 닫습니다현재 작업공간, 인수 없이 실행:
python3 /path/to/close_wins.py
모든 것이 제대로 작동하면 바로가기에 추가하세요. 선택: 시스템 설정 > 키보드 > 바로가기 > 사용자 정의 바로가기. "+"를 클릭하고 다음 명령을 추가합니다.
python3 /path/to/close_wins.py
...또는 원하는 다른 방식으로 실행하세요.
설명하다
이 명령은 wmctrl -lG
현재 열려 있는 창에 대한 정보를 제공합니다. 출력은 다음과 같습니다.
0x018000f9 0 135 206 650 500 jacob-System-Product-Name pscript_6.py (1,6 GB Volume /media/jacob/6C08-F637) - gedit
0x01600a09 1 283 275 724 443 jacob-System-Product-Name jacob@jacob-System-Product-Name: ~
0x018018be 1 152 407 650 500 jacob-System-Product-Name Untitled Document 1 - gedit
0x0140008c 2 0 101 1280 960 jacob-System-Product-Name gnome - Can I have a countdown window show the time until next suspend? - Ask Ubuntu - Mozilla Firefox
0x01600a49 2 47 146 724 443 jacob-System-Product-Name jacob@jacob-System-Product-Name: ~
두 번째 열에서 창 위치를 검색할 수 있습니다.
0x0140008c 2 0 101 1280 960 jacob-System-Product-Name gnome - Can I have a countdown window show the time until next suspend? - Ask Ubuntu - Mozilla Firefox
이는 2
창이 0
첫 번째 작업 공간을 참조하므로 작업 공간 3에 있음을 의미합니다.
작업공간을 인수로 사용하여 스크립트를 실행하는 경우, 스크립트는 해당 창 ID를 구문 분석한 후 예를 들어 다음을 사용하여 정상적으로 닫습니다.
wmctrl -ic 0x0140008c
작업공간을 인수로 사용하지 않고 스크립트를 실행하는 경우, 스크립트는 다음 명령에서 현재 작업공간을 검색합니다.
wmctrl -d
그런 다음 내부적으로 현재 작업 공간을 매개 변수로 사용합니다.