그놈 터미널 구성 파일에서 제목을 변경하는 방법

그놈 터미널 구성 파일에서 제목을 변경하는 방법

특정 터미널 구성 파일을 로드하는 방법과 터미널이 읽는 구성 파일을 로드하는 방법을 알고 있지만 헤더를 설정하고 구성 파일을 저장하려고 할 때마다 여전히 기본값이 반환됩니다.

해당 세션의 창 제목만 변경할 수 있으며 메뉴에서만 변경할 수 있습니다. 이와 같은 작업을 시도하면 gnome-terminal --title="MyTerminal"터미널이 열리지만 제목은 여전히 ​​기본값입니다.

명령줄 및 구성 파일에서 헤더를 변경하는 방법은 무엇입니까?

답변1

gome-terminal이 어떻게 작동하는지 살펴보면 다음과 같은 몇 가지 작업을 수행해야 하는 것처럼 보입니다.

  1. 새 구성 파일을 생성하고 편집->현재 구성 파일->제목 및 명령으로 이동합니다.
  2. 쉘 제공 헤더를 유지/앞에 추가/추가하는 옵션을 선택하십시오(적절하게)
  3. 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 즉, 편집->프로필 기본 설정->제목 및 명령으로 이동하여 드롭다운에서 "초기 제목 유지"를 선택해야 했습니다. 다만, "초기제목" 란에는 "터미널"을 남겨두었습니다.

관련 정보