ワークスペースで開いているすべてのアプリケーションを閉じるgnome 3拡張機能またはfedora 25ショートカットはありますか? (たとえば、Xを押してワークスペース自体を閉じます。)
この機能はずっと前にどこかで見たことがありますが、どこから来たのか忘れましたが、基本的にFedoraでは使用できません。
答え1
以下の回答はGnome3 / Ubuntuで書かれてテストされました。 Fedora / Gnomeで実行できない場合はこれに言及してください。
Gnomeの特定のワークスペースですべてのアプリケーションウィンドウを閉じるスクリプト
以下のスクリプトは、特定のワークスペースのすべてのウィンドウを閉じます。 2つのオプションがあります。
実行時間いいえパラメータを使用すると、すべてのウィンドウが閉じます。現在のワークスペースの例:
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: ~
2番目の列でウィンドウの場所を検索できます。
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
その後、内部的に現在のワークスペースをパラメータとして使用します。