Ubuntu 14.04を使用していて、ランチャーから実行中のプログラムを削除しようとしています。
具体的には、2つの端末を起動したいと思います。 1つは複数のタブを使用する通常の作業用で、もう1つは実行中のssh接続に必要です。ランチャーから2つ目を非表示にして、「トレイに最小化」します(Windowsではこれを呼び出します)。
これを行う方法はありますか?
あなたが回答として選択したソリューションを受け入れる能力を与えるために、私は上から私のコメントを繰り返します。これは単なる回避策であり、@ JacobVlijmの印象的な answer !
したがって、私のヒントは、システム設定パネルでさまざまなワークスペースを使用できるようにすることでした。 1つのワークスペースでウィンドウを開いている場合、他のワークスペースには表示されません。
しかしUnityでは、開いているウィンドウが別のワークスペースにある場合でも、ランチャーのアイコンがハイライト表示されます。
他のDE(XFCEとLXDEは知っています)では、これは当てはまりません。パネル/タスクバーには、非アクティブなワークスペースの実行中のプログラムは表示されません。
以下のスクリプトを使用して(キーの組み合わせで)表示を切り替えると、最小化されたときに1つのターミナルウィンドウを(完全に)非表示にして、存在しないかのようにして、最小化されたときに別のターミナルウィンドウをランチャーに表示したままにすることができます。
トリックは、gnome-terminal
設定で個別のプロファイルを作成し、ウィンドウタイトルに特徴的な名前を付けることです。これは、wmctrl -l
コマンドとnmapでターミナルウィンドウを識別することをxdotool
の- windowunmap コマンドで識別することを可能にします、ランチャーで非表示にします。
ランチャーには表示されないため、ターミナルウィンドウの表示を切り替えるには、キーの組み合わせを設定する必要があります(以下を参照)。
スクリプトには、xdotool
とwmctrl
の両方をインストールする必要があります。
Sudo apt-get install xdotool
Sudo apt-get install wmctrl
次に:
gnome-terminal
設定で個別のプロファイルを作成します。[編集]> [プロファイル]を選択し、[新規]をクリックします。
[タイトルとコマンド]タブで、ウィンドウタイトルを(正確に) "Hidden_Profile"に設定し、ウィンドウタイトルの前に配置します。
N.B。プロファイルを「ロード可能」にするには、ログアウト/ログインする必要がある場合があります
次のコマンドを実行して、プロファイルが機能するかどうかをテストします。
gnome-terminal --window-with-profile=Hidden
ウィンドウがポップアップし、ウィンドウタイトルに「Hidden_profile」が表示されます。
以下のスクリプトを空のファイルにコピーし、run_hidden.py
として保存します
次のコマンドでテスト実行します。
python3 /path/to/run_hidden.py
それが何をすべきか:
すべてが正常に機能する場合は、(実行するコマンド)スクリプトをショートカットの組み合わせに追加します。[システム設定]> [キーボード]> [ショートカット]> [カスタムショートカット]を選択します。 「+」をクリックして、コマンドを追加します。
python3 /path/to/run_hidden.py
#!/usr/bin/env python3
import subprocess
import os
home = os.environ["HOME"]
hidden_windowid = home+"/.window_id.txt"
get = lambda cmd: subprocess.check_output(cmd).decode("utf-8")
def execute(cmd):
subprocess.check_call(cmd)
try:
w_id = [l.split()[0] for l in get(["wmctrl", "-l"]).splitlines() if "Hidden_Profile" in l][0]
execute(["xdotool", "windowunmap", w_id])
with open(hidden_windowid, "wt") as out:
out.write(w_id)
except IndexError:
try:
with open(hidden_windowid) as read:
w_id = read.read()
execute(["xdotool", "windowmap", w_id])
except subprocess.CalledProcessError:
execute(["gnome-terminal", "--window-with-profile=Hidden"])
この目的のために別に作成したプロファイルで指定したように、スクリプトはwmctrl
を使用して(window-)名でウィンドウを識別します。 id
を取得したら、xdotool
のwindowunmap
コマンドを使用してマッピングを解除できます。
ウィンドウを再表示できるようにするために、id
は隠しファイルに保存されています。再マッピングが失敗した場合、スクリプトは特別なプロファイルから開かれたウィンドウがないと結論付け、次のコマンドでウィンドウを開きます。
gnome-terminal --window-with-profile=Hidden
私は過去にこれに Tilda を使用しました。 DoomやQuakeと同じ名前のように表示されたり非表示になったりする素晴らしい機能があります。 Pythonバージョンの方がよければ、そこにもあります。名前は Guake です。
それは基本的には別の端末アプリであり、キーコンボにバインドし、そのキーコンボを押したときにのみ表示されます(もちろん、その上で非表示になります)。
Sudo apt-get install guake
-Tildaのページをご覧ください。
さて、あなたは明らかにwantanother端末アプリではないかもしれません。ただし、次の理由から、複数を好む人もいます。
そのための組み込みオプションがありますが、少しバグがあります。
非表示のターミナルを元に戻すには、ランチャーのターミナルアイコンをクリックします。
この方法の問題は、バグのために、非表示のターミナルが再び表示されるように、最初にすべての表示されているターミナルを閉じる必要がある場合があることです。