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


20

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

gnome-terminalでプロファイルを切り替える

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

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

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

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


1
gconftool-2を使用すると、変更がすぐに反映されるプロファイルを設定できます。これを確認しましたか-> stackoverflow.com/questions/660442/…–
Stormvirux

@Stormviruxいいえ...では、gconftoolまたはgconftool-2を使用してプロファイルを切り替える方法を説明できますか?そこには良い答え/説明が見当たりません。
ラドゥラディアナヌ

回答:


9

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

xdotool key Alt+t p Return

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

xdotool key Alt+t p Down Return

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

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


それは近道ではありません。キープレスをシミュレートするだけで、アプリケーションのニーモニックのみです。
Braiam

1
@ブライアムはい、それは近道ではありません、私は見ることができます。それはですコマンドライン(参照man xdotool私は希望と何かが良く現れるまで、私はこの答えに満足していたとおりに働いている私は尋ねたとして詳細は)、。;)
ラドゥラデアヌ


@Braiamあなたが言ったように、私はこのソリューションで大丈夫です、それは魅力のように働いています。あなたの提案については、2002年からこの意味で1つがあります(2010年に修正:「ちょうど2つのキーストロークを使用して自分の選択したプロファイルを開くことができれば非常にいいでしょう。」- このコメントを参照)。それで、なぜ私は新しいものを追加すべきだと思いますか?重複が好きですか?
ラドゥラデアヌ

残念ながら動作しなくなりました
RobAu

5

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

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

たとえばxdotool key shift+F10 r 3、3番目のプロファイルを取得するには

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

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

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

chp NN番目のプロファイルに切り替えるために電話するだけです。

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

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

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

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

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


...この方法では、ターミナル設定でメニューアクセラレータキーを有効にする必要があることに注意してください>全般
brotherJ4mes

私のxdotoolのFYIは--clearmodifiers後に来る必要がありますkey
lilydjwg

4

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

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

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


実際には、ショートカットがあります:Alt + Tの後にP上矢印または下矢印、そしてEnterが続きます。しかし、これは...少し長いです
ラドゥRădeanu

@RaduRădeanuAlt + Tは私のターミナル3.8.3では機能しません:/
Braiam

1
@RaduRădeanualt + t 実際にはGUIを使用していると思います、マウスを使用していないだけです。
moon.musick

@Braiamの英語以外のバージョンを使用している場合はgnome-terminal、押してalt、「Terminal」の言語バージョンで強調表示されている文字を確認します(ポーランド語版では5番目の項目、「Help」のすぐ左)、その文字を使用しますでalt
moon.musick

@ moon.musick Debianバージョンのgnome-terminal 3.8.3を使用していますが、メニューにアクセスするためのAlt修飾子がないようです。
ブライアム

3

私は同じことをしようとしていて、ついにスクリプトが動作するようになり、それをGitHubに載せました。

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


2

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

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

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


2

頻繁にアクセスするサーバーのリストがある場合、最も簡単な解決策は、そのボックスのセッションのためだけに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

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


そのアイデアを提供してくれてありがとう。:-) .desktopファイルを簡単に記述でき、その方法で(ダブル)クリックするだけでお気に入りの場所を開くことができます。
ヒンズ

1

私は、元の解決策が既に質問で拒否されていることに気づきました。プロファイルを変更する簡単な方法はないようですが、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プロファイルが機能しません。おそらく&が有効な文字ではないため、プロファイルに名前を付けるときはそのことに留意してください。


0

私が使用してしまった非常に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番目の「キーダウン」コマンドをに変更することにより、htirプロファイルを言うように変更できますxdotool key --delay 50 --repeat 2 Down

これは何をしていますか:

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

xdotoolがインストールされてsudo apt install xdotoolいる必要があります。

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


0

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

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


これにはメニューバーを表示する必要があることに注意してください。
ゴーティエ

0

これはかなり古い記事ですが、この同じ問題を解決するために検索している間も頻繁に投稿されるので、自分の解決策を投稿すると思いました。

これには、小さなpythonスクリプトと、Ctrl + Alt + Tボタンを再マッピングして、単にターミナルを起動する代わりにスクリプトを実行することが含まれます。

テキストファイルを作成し、mine terminal.pyという名前を付けて、それが実行可能であることを確認します。その中に次のコードを配置します。これにより、利用可能なすべてのプロファイルを順番に使用してターミナルウィンドウが開き、「デフォルト」とマークされたプロファイルがリストの最初に表示されます。

#!/usr/bin/python
#
# Launch a gnome-terminal window trying to assign each new window 
# to a different profile.
# 
import json
import os
import commands

profiles=[]

try:
    profileList = commands.getoutput("gsettings get org.gnome.Terminal.ProfilesList list").replace("'",'"')
    profileDefault = commands.getoutput("gsettings get org.gnome.Terminal.ProfilesList default").replace("'",'"')

    profiles.append(json.loads(profileDefault))
    ls = json.loads(profileList)
    ls.remove(profiles[0])
    profiles+=ls

    # find the next available terminal number
    # when terminals are closed, gaps in the numbers can happen
    # terminals are numeric and the lowest slot is filled first
    terminals = commands.getoutput("ls /dev/pts/  | grep -E '^[0-9]+$'").split("\n")
    next = 0
    try:
        while terminals.index(str(next))>=0:
            next += 1
    except:
        pass

    # determine the profile to use
    prof = next % len(profiles)

    # launch the terminal with the specific profile
    cmd="gnome-terminal --window-with-profile='%s'" % (profiles[prof])
    os.system(cmd)
except:
    # if anything fails, launch a default terminal
    print("error")
    os.system("gnome-terminal")

キーボード設定ユーティリティを使用して、このスクリプトに新しいショートカットを割り当てます。私にとっては、Ctrl + Alt + Tを再割り当てしました。これは、ターミナルウィンドウを開くために使用するショートカットだからです。

端末で複数のプロファイルを作成してください。このスクリプトは、すべてのプロファイルを使用します。したがって、作成するほど、ウィンドウのバリエーションも増えます。背景色を除いてすべて同じものがいくつかあります。これにより、Alt-Tabキーを押しながらそれらを認識できます。

ターミナルウィンドウの例

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.