web-dev-qa-db-ja.com

gnome-terminalプロファイルのタイトルを変更する方法

特定の端末プロファイルをロードする方法と、端末が読み取る構成ファイルをロードする方法を知っていますが、タイトルを設定して構成ファイルを保存しようとするたびに、デフォルトに戻ります。

そのセッションのウィンドウタイトルを変更できるのは、メニュー内のみです。 gnome-terminal --title="MyTerminal"のようなものを試してみると、ターミナルが表示されますが、タイトルはデフォルトのままです。

コマンドラインから設定ファイル内でタイトルを変更するにはどうすればよいですか?

4
user5881

これは私がずっと前に書いたスクリプトで、今日でも使用されており、* n * xタイトルバーをその場で変更します。私はまだその場でプロファイルを変更する方法を理解していません。多分これは役立つでしょう。このスクリプトは、最適に機能するようにwlabelというタイトルを付ける必要があります。例を見る


#!/usr/bin/Perl
## Copyright (c) 1995, Tim McCoy, Santa Barbara, CA 93111
## Free use and distribution is granted.  Please retain Credits & history
## hplabel (Original name. So named because it was originally created
## for hpterm windows; later modified for Sun and linux)
## V 1.0 simple Perl script to change an hpterm, xterm, or openlook title
## and icon name to the current directory or as offered on command line.
## V 1.1 Add dtterm, same as xterm (Thanks to Bill Bennett HP-USA)
## V 1.2 renamed to wlabel for Company/personal use.
## V 1.3 Added environmental variable THISWINDOWLABEL detect to retain
##       a window variable regardless of movement 5/1/2000 TAM
## V 1.4 Finally got around to testing openlook; it doesn't work. Commented
## V 1.5 Fix for openbook supplied by Bill Wagner (ecad.rsc.raytheon.com)
## V 1.6 Cool one line addition to permit/use backticks in THISWINDOWLABEL syntax
&usage if ("@ARGV" =~ /\-[(h|H)]+/);

# print "@ARGV\n";
use Cwd;
my $cwd = &cwd();
$text = (@ARGV) ? "@ARGV" : ($ENV{THISWINDOWLABEL}) ? $ENV{THISWINDOWLABEL} : $cwd ; 
$text =~ s/\n//g; # avoid chomp by converting '\n' to nil (why ??)
$text = `/bin/echo "$text"` if ($text =~ /\`/);  # cool one line change
chomp $text;
exit if (! $text);
## print STDERR "text='$text' cwd='$cwd'\n";
$term = $ENV{"TERM"};                           # determine term type
if ($term =~ /^(xterm|dtterm)$/i)
  {
  printf "%c]2;%s%c", 27, $text, 7;             # modify the window name
  printf "%c]1;%s%c", 27, $text, 7;             # modify the icon name
  }
elsif ($term eq "hpterm")
  {
  $len = length($text);                         # determine length
  printf "%c&f0k%dD%s", 27, $len, $text;        # modify the window name
  printf "%c&f-1k%dD%s", 27, $len, $text;       # modify the icon name
  }
elsif ($term =~/^(openlook|Sun-cmd)$/i)
  {
  printf "%c]l%s%c\\", 27, "$text", 27 ;        # modify the window name
  printf "%c]L%s%c\\", 27, "$text", 27;         # modify the icon name
  }

## This script doesn't need anything else but I use the following alias
## to automatically generate my location to the current window.
## alias cd 'cd \!* ; wlabel'

sub usage
  {
  print '
  Simple little script to put the current working directory in
  the window banner and icon titles.  Replaces the useless
  "Terminal" or "Xterm" text to useful information.  When used
  with a cd alias, it performs this function automatically.

  usage: wlabel [{string}]

  Without arguments wlabel generates the current working directory
  name into the banner/icon.  When followed by a plain text string 
  the string is placed in the banner/icon name.  Additionally, if
  the environmental variable THISWINDOWLABEL is set to a value then
  THAT variables contents will be used for the label.  V1.6 adds
  permitting backticks in the THISWINDOWLABEL string. (i.e.; 
  setenv THISWINDOWLABEL '."'`hostname`:`pwd` `date +\"%T\"`'".'
  will yield something like: "myhost:/net/myhome/dir 08:40:07"

  examples:

  % wlabel
  # banner/icon is "/your/current/working/directory"
  % wlabel verilog
  # banner/icon is "verilog"
  % setenv THISWINDOWLABEL "common window"
  # banner/icon still says "verilog"
  % wlabel
  # banner/icon is "common window"

  bugs:

  Telnet windows to other machines will NOT update the banners.
  In fact if the cd alias (described below) is used during a telnet
  session it may generate errors if the wlabel utility is not in the path.
  ( If so then just "unalias cd" )

  alias:

  put this alias in your .cshrc file to automate wlabel:
  % alias cd "cd \!* ; ~/bin/wlabel";

  And, if the icon text does NOT expand to the full label name when
  the cursor passes over it, try adding this to your .Xdefaults file:
  Dtfile*desktopIcon:     large
  I think this is the one I set to make it work right.  (TAM 7/3/01)
  ';
  exit 0;
}
2
user32872

Gome-terminalの動作を見ると、いくつかのことを行う必要があるようです。

  1. 新しいプロファイルを作成し、[編集]-> [現在のプロファイル]-> [タイトルとコマンド]に移動します
  2. シェルが提供するタイトルを保持/追加/追加するオプションを選択します(適切に)
  3. コマンドgnome-terminal--title = "Wheeee" --profile = "The NewProfile"を実行します

設定ファイルの保存は実際にはセッション保存用であるように見え(つまり、開いているすべてのウィンドウを保存します)、コマンドラインで提供されるタイトルは保存されないため、コマンドライン+プロファイルを介して必要なものを取得できます、ただし構成ファイル経由ではありません。

https://bugzilla.gnome.org/show_bug.cgi?id=645207 で、G-Tに対するsave-configスイッチにコマンドラインオプションが保存されていないことを報告する自由を取りました。

2
James Cape

私はここで非常によく似た質問に答えました: https://askubuntu.com/questions/30988/how-do-you-set-the-title-of-the-active-gnome-terminal-from-the -コマンドライン/ 31004#31004

基本的に、〜/ .bashrcファイルでタイトルを設定できますが、タイトル/アイコン名自体を自動的に設定してオーバーライドされないように、PS1環境変数を変更する必要があります。私がそこに投稿した指示を見てください。そこから理解できない場合、または問題が発生した場合は、お知らせください。手順を説明します。

1
J. Taylor

私は同じものを探していて、(幸運にも)試したときに明らかな解決策に行き着きました。ケースは、セッションを構成ファイルに保存した場合です。次に、gnome-terminal --load-config = mysetup.txtで開始します

設定ファイルはわかりやすい形式で、各タブは次のような異なる「段落」タイトルにあります。[Terminal0x24db600]変更するタブを検索し、単純な:Title = myタブ名を追加します。

それはすべての人々です!このようにして、ウィンドウレベルまたはタブごとにすべてを制御します。タブごとに異なるプロファイルを配置し、ここで結果を調整できます。

0
MiGrieves

私はUbuntu14.04を実行していて、MiGrievesの提案に加えてさらに1つのステップを実行する必要がありました。これについては、ここで読みました- https://askubuntu.com/a/387313 要するに、私は[編集]-> [プロファイル設定]-> [タイトルとコマンド]に移動し、ドロップダウンで[最初のタイトルを保持する]を選択する必要がありました。ただし、「初期タイトル」フィールドに「ターミナル」を残しました。

0
stratzoomer