web-dev-qa-db-ja.com

gnome-terminalでプロファイルを切り替えるコマンドライン

Gnome-terminalの新しいプロファイルを作成し、下の画像に示すように、「Implicit」プロファイルと新しく作成したプロファイルを切り替えることができます。

Switch between profiles in gnome-terminal

今、コマンドライン/スクリプトを使用して、またはこのショートカットを使用してプロファイルを切り替える方法はありますか?.

注:次のようなソリューション:

gnome-terminal --tab-with-profile=Implicit && exit 

プロファイルを変更するこのプロセスでは、別の端末を閉じて開いたり、別の端末ウィンドウを取得したりしないため、除外されます。

20
Radu Rădeanu

「暗黙の」プロファイルに切り替えるには:

xdotool key Alt+t p Return

2番目のプロファイルに切り替えるには:

xdotool key Alt+t p Down Return

xdotool Install xdotool はデフォルトではUbuntuにインストールされないため、最初にインストールする必要があります。

もちろん、これらのコマンドには カスタムキーボードショートカットの追加 を使用できます。

8
Radu Rădeanu

GUIを使用せずに、ターミナル内でプロファイルを変更できるショートカットはありません(コメントで述べたようにメニューをナビゲートすることなく)。マニュアルを引用( stabledevelopment 3.9 ):

現在の[ターミナル]タブまたはウィンドウでプロファイルを変更するには、[ターミナル]▸[プロファイルの変更]からプロファイルを選択します。

バグトラッカーで提案として提案できます

4
Braiam

すでに多くの素晴らしい答えがありますが、xdotoolを使用して、メニューバーを必要としないを表示するバリエーションをもう1つ追加したいと思います...

キーコンボシフト+ F10キーを押すと、ポップアップメニュー(ターミナルを右クリックするのと同じ)が開き、そこからプロファイルを変更できます。

例えばxdotool key shift+F10 r 3は3番目のプロファイルを取得します

また、この方法ではxdotoolの遅延を設定する必要がないこともわかりました(メニューバーの方法に必要であることがわかりました)。そのため、少し速くなります。

プロファイルを頻繁に変更する傾向があるため、これを関数にラップします。

function chp(){
      xdotool --clearmodifiers key Shift+F10 r $1
}

したがって、chp Nを呼び出して、N番目のプロファイルに切り替えることができます。

私のセットアップのいくつかのヒントと特異性:

  • chpコマンドを.bashrcに追加することで、新しいタブを常にデフォルトプロファイルに強制的に切り替えることができます

  • ホストに基づいてsshセッションを色分けしますが、sshエイリアスで新しいタブまたはウィンドウを開き、sshを終了するときにプロファイルをデフォルトに戻したいとは思いません。私の解決策:alias somehost="chp 2; ssh user@somehost; chp 1"

  • Xdotoolにフラグ--clearmodifiersを付けると、修飾キーを保持している場合(タブ/ウィンドウを開くとき、sshを終了するときなど)、xdotoolに干渉しません。

  • プロファイル名に数字を追加して、新しいプロファイル名を追加しても、プロファイルメニューのアルファベット順になっているために他のすべての名前が移動しないようにします

3
brotherJ4mes

私も同じことをしようとしていましたが、ついにスクリプトが機能するようになり、それを GitHub に配置しました。

README.mdで説明したように、実際には切り替わりませんが、プロファイル構成をデフォルトプロファイルにロードします。これを行うために、各プロファイルの構成は、スクリプトの最初の実行時にファイルに保存されます。このスクリプトにより、プロファイルを切り替えているように見えますが、これで十分です。それが誰にも役立つことを願っています...

3
SigiSang

頻繁にアクセスするサーバーのリストがある場合、最も簡単な解決策は、そのボックスのセッションのためだけに2番目のウィンドウを呼び出すことです。

最初に、頻繁に使用するリモートロケーションごとに個別のgnome-terminalプロファイルを作成します。次に、各プロファイルで、端末がプレーンシェルではなく、そのボックスに対してSSHログインコマンドを実行するように指定します。

ssh alice@athena

最後に、プロファイルIDを指定して新しいリモートウィンドウを開始する短いスクリプトを作成します。

#!/bin/bash
if [[ $# -ne 1 ]] ; then
  echo "Give me a server/profile name!"
  exit 1
fi
gnome-terminal --window-with-profile=$1
exit 0

この戦略を使用すると、各ボックスのターミナルウィンドウの外観を「無限に」変更でき、単一の「コントロール」ターミナルからキックオフできます。たとえば、このスクリプトを「rlv」と呼ぶと、プロファイル名でスクリプトを呼び出すだけでリモートウィンドウを生成できます。

>> rlv athena

ホスト名を太らせたり、そのホストのプロファイルを設定し忘れたりした場合、ローカルボックスに別のデフォルトプロファイルウィンドウが表示されます。これを回避するために、gnome-terminalではなくスクリプト自体にログインすることで、スクリプトをコーディングする方法があります。

#!/bin/bash
if [[ $# -ne 1 ]] ; then
  echo "Give me a server/profile name!"
  exit 1
fi
gnome-terminal --window-with-profile=$1 -e "ssh $1"
exit 0

...しかし、そのボックスのログインユーザー名を定義する柔軟性が失われます。スクリプトの追加機能は、読者への演習として残します。

2
zerobandwidth

目的によっては、このスクリプトが役立つ場合があります。 https://github.com/xyrix/gnome-terminal-profile-switcher

ある種のモンキーパッチを実行し、各ターミナルの新しいプロファイルを生成し、いくつかの環境変数を設定して、現在のターミナルのプロファイルのテーマを切り替えるためのプログラムを公開します。

Safe_sshスクリプトの例が物事を明確にすることを願っています:-)。私はもう1年以上使っていますが、会社のライブデータベースを破壊することはありませんでした^ _ ^

2
xyrix

私は、元の解決策が既に質問で拒否されていることに気づきました。プロファイルを変更する簡単な方法はないようですが、settermコマンドを使用して背景/前景色を変更できます。

したがって、このsetterm -term linux -background black -foreground greenは、黒い背景に緑色のテキストを表示します。唯一の問題は、lsの出力が色付けされているため、lsの色付けをオフにしたい場合があることです。それ以外の場合は、以前の配色にリセットされます

元の投稿:回避策があります。 man gnome-terminalから:

--window-with-profile = PROFILENAME

             Open a new window containing a  tab  with  the
             given profile.  More than one of these options
             can be provided.

これが私のマシンの例です。 3つのプロファイルがあります:B&G(緑に黒)、ForPrinting(黒のフォント、白の背景)、およびデフォルト。だから私は、現在のウィンドウタイプでgnome-terminal --window-with-profile=ForPrintingと入力します。その後、コマンドラインから古いウィンドウを強制終了するか、切り替えてグラフィカルに閉じることができます。

B&Gプロファイルが機能しません。おそらく&が有効な文字ではないため、プロファイルに名前を付けるときはそのことに留意してください。

1

Gnome-terminalが提供する「次のプロファイル」コマンドとショートカットは素晴らしいでしょう。残念ながら、そうではありません。

Alt+Tが無効になっている([編集]> [設定]> [ニーモニックを有効にする-チェックなし])場合の回避策はF10 left left down rightで、プロファイルを選択します。痛い。

0
Mario

私が使用してしまった非常にveryい解決策は

unset x y
eval $(xwininfo -id $(xdotool getactivewindow) |
       sed -n -e 's/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p' \
              -e 's/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p')
xdotool mousemove $(($x + 50)) $(($y + 50))
xdotool click 3; xdotool key --repeat 3 Up; xdotool key Right; xdotool key --delay 50 Down; xdotool key --delay 50 Return

(これにより、2番目のプロファイルが選択されますが、2番目の「キーダウン」コマンドをxdotool key --delay 50 --repeat 2 Downに変更することにより、htirプロファイルを言うように変更できます。

これは何をしているのですか:

  1. 現在のウィンドウの左上の座標(例:使用中のgnome端末)を見つけます。
  2. その端末の上にマウスを移動します
  3. 右クリックしてコンテキストメニューをナビゲートし、2番目のプロファイルを選択します。

Xdotoolをインストールする必要がありますSudo apt install xdotool

ターミナル自体がターミナルを介した設定を許可しないという種類の異常です!

0
SColvin