web-dev-qa-db-ja.com

ランチャーで2つのターミナルの1つを非表示にしますか?

Ubuntu 14.04を使用していて、ランチャーから実行中のプログラムを削除しようとしています。

具体的には、2つの端末を起動したいと思います。 1つは複数のタブを使用する通常の作業用で、もう1つは実行中のssh接続に必要です。ランチャーから2つ目を非表示にして、「トレイに最小化」します(Windowsではこれを呼び出します)。

これを行う方法はありますか?

3
Feroc

あなたが回答として選択したソリューションを受け入れる能力を与えるために、私は上から私のコメントを繰り返します。これは単なる回避策であり、@ JacobVlijmの印象的な answer

したがって、私のヒントは、システム設定パネルでさまざまなワークスペースを使用できるようにすることでした。 1つのワークスペースでウィンドウを開いている場合、他のワークスペースには表示されません。

しかしUnityでは、開いているウィンドウが別のワークスペースにある場合でも、ランチャーのアイコンがハイライト表示されます。
他のDE(XFCEとLXDEは知っています)では、これは当てはまりません。パネル/タスクバーには、非アクティブなワークスペースの実行中のプログラムは表示されません。

3
Byte Commander

以下のスクリプトを使用して(キーの組み合わせで)表示を切り替えると、最小化されたときに1つのターミナルウィンドウを(完全に)非表示にして、存在しないかのようにして、最小化されたときに別のターミナルウィンドウをランチャーに表示したままにすることができます。

非表示のターミナルウィンドウに個別のプロファイルを作成する

トリックは、gnome-terminal設定で個別のプロファイルを作成し、ウィンドウタイトルに特徴的な名前を付けることです。これは、wmctrl -lコマンドとnmapでターミナルウィンドウを識別することをxdotoolの-​​ windowunmap コマンドで識別することを可能にします、ランチャーで非表示にします。

表示の切り替え/キーの組み合わせで「非表示」ウィンドウを開く

ランチャーには表示されないため、ターミナルウィンドウの表示を切り替えるには、キーの組み合わせを設定する必要があります(以下を参照)。

設定方法

スクリプトには、xdotoolwmctrlの両方をインストールする必要があります。

Sudo apt-get install xdotool
Sudo apt-get install wmctrl

次に:

  1. gnome-terminal設定で個別のプロファイルを作成します。[編集]> [プロファイル]を選択し、[新規]をクリックします。

    • 新しいプロファイルに(正確に)「非表示」という名前を付けます
    • [タイトルとコマンド]タブで、ウィンドウタイトルを(正確に) "Hidden_​​Profile"に設定し、ウィンドウタイトルの前に配置します。

      enter image description here

      N.B。プロファイルを「ロード可能」にするには、ログアウト/ログインする必要がある場合があります

  2. 次のコマンドを実行して、プロファイルが機能するかどうかをテストします。

    gnome-terminal --window-with-profile=Hidden
    

    ウィンドウがポップアップし、ウィンドウタイトルに「Hidden_​​profile」が表示されます。

    enter image description here

  3. 以下のスクリプトを空のファイルにコピーし、run_hidden.pyとして保存します

  4. 次のコマンドでテスト実行します。

    python3 /path/to/run_hidden.py
    

    それが何をすべきか:

    • 別のプロファイルのターミナルウィンドウが実行されていない場合に実行します。新しい端末は別の(「非表示」)プロファイルから開く必要があります。
    • もう一度実行します。ウィンドウはランチャーからも(完全に)非表示になります
    • 3回実行します。ウィンドウが再表示されます。
  5. すべてが正常に機能する場合は、(実行するコマンド)スクリプトをショートカットの組み合わせに追加します。[システム設定]> [キーボード]> [ショートカット]> [カスタムショートカット]を選択します。 「+」をクリックして、コマンドを追加します。

    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を取得したら、xdotoolwindowunmapコマンドを使用してマッピングを解除できます。

ウィンドウを再表示できるようにするために、idは隠しファイルに保存されています。再マッピングが失敗した場合、スクリプトは特別なプロファイルから開かれたウィンドウがないと結論付け、次のコマンドでウィンドウを開きます。

gnome-terminal --window-with-profile=Hidden
3
Jacob Vlijm

私は過去にこれに Tilda を使用しました。 DoomやQuakeと同じ名前のように表示されたり非表示になったりする素晴らしい機能があります。 Pythonバージョンの方がよければ、そこにもあります。名前は Guake です。

それは基本的には別の端末アプリであり、キーコンボにバインドし、そのキーコンボを押したときにのみ表示されます(もちろん、その上で非表示になります)。

Sudo apt-get install guake-Tildaのページをご覧ください。

さて、あなたは明らかにwantanother端末アプリではないかもしれません。ただし、次の理由から、複数を好む人もいます。

  • それは別の目的のための別のアプリです
  • 滑り落ちるときは涼しく、不要なときは隠されたままで涼しい
  • 彼らはQuakeが好きだった

そのための組み込みオプションがありますが、少しバグがあります。

  1. 次のコマンドを使用して、最初のターミナル(表示したいターミナル)を開きます Ctrl+Alt+t
  2. を使用して2番目のターミナル(非表示にするターミナル)を開きます。 Ctrl+Alt+t
  3. 2番目のターミナルをアクティブウィンドウにして、 Ctrl+Alt+s 他の場所をクリックします。

非表示のターミナルを元に戻すには、ランチャーのターミナルアイコンをクリックします。

この方法の問題は、バグのために、非表示のターミナルが再び表示されるように、最初にすべての表示されているターミナルを閉じる必要がある場合があることです。

0
kos