특정 터미널 구성 파일을 로드하는 방법과 터미널이 읽는 구성 파일을 로드하는 방법을 알고 있지만 헤더를 설정하고 구성 파일을 저장하려고 할 때마다 여전히 기본값이 반환됩니다.
해당 세션의 창 제목만 변경할 수 있으며 메뉴에서만 변경할 수 있습니다. 이와 같은 작업을 시도하면 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 즉, 편집->프로필 기본 설정->제목 및 명령으로 이동하여 드롭다운에서 "초기 제목 유지"를 선택해야 했습니다. 다만, "초기제목" 란에는 "터미널"을 남겨두었습니다.