特定のターミナル構成ファイルをロードする方法と、ターミナルが読み取る構成ファイルをロードする方法を知っていますが、ヘッダーを設定して構成ファイルを保存しようとすると、常にデフォルト値が返されます。
そのセッションのウィンドウのタイトルのみを変更でき、メニューからのみ変更できます。このような操作をしよgnome-terminal --title="MyTerminal"
うとすると端末が開きますが、タイトルはまだデフォルトです。
コマンドラインと設定ファイルでヘッダを変更するには?
答え1
gome-terminalがどのように機能するかを見ると、次のようないくつかのことを行う必要があるようです。
- 新しい設定ファイルを作成し、編集 - >現在の設定ファイル - >タイトルとコマンドに移動します。
- シェル提供のヘッダーを保持/前に追加/追加するオプションを選択します(適切に)
- gnome-terminal --title="Wheeee" --profile="New profile" コマンドを実行します。
プロファイルの保存は実際にはセッションを保存するように見えます(つまり、開いているすべてのウィンドウを保存します)。 。
私はGTのsave-configスイッチに欠落しているコマンドラインオプションの保存を報告しました。https://bugzilla.gnome.org/show_bug.cgi?id=645207
答え2
以下は私がずっと前に書いたスクリプトで、今日でもまだ使っているスクリプトです。 Nx動的タイトルバー。構成ファイルを動的に変更する方法はまだわかりません。たぶんこれは役に立ちます。最もうまく機能するには、スクリプトのタイトルを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;
}
答え3
ここで非常に似た質問に答えました。https://askubuntu.com/questions/30988/how-do-you-set-the-title-of-the-active-gnome-terminal-from-the-command-line/31004#31004
デフォルトでは〜/ .bashrcファイルでタイトルを設定できますが、タイトル/アイコン名自体を自動的に設定して上書きしないようにPS1環境変数を変更する必要があります。投稿した手順を確認し、そこで理解できない場合や問題が発生した場合は、お知らせください。ご案内いたします。
答え4
私はUbuntu 14.04を実行しており、ここで読んだMiGrievesが提案したように1つの追加手順を実行する必要がありました。https://askubuntu.com/a/387313 つまり、編集 - >プロファイル設定 - >タイトルとコマンドに移動し、ドロップダウンから「初期タイトルを保持」を選択する必要がありました。ただし、「初期タイトル」欄には「ターミナル」を残しました。