it-swarm.dev

Jak změnit název Gnome-Terminal?

Mám několik instancí terminálů běžících v mém pracovním prostředí. Chtěl bych nastavit pro každý z nich konkrétní název, abych měl jasnou představu, k jakému účelu konkrétní terminál slouží, tj. Apache, editace_ini, postgres atd. ...

Samozřejmě z příkazové řádky.

181
topless

Alternativy:

  • Existují však i jiné způsoby, které můžete vydat

    gnome-terminal --title="SOME TITLE HERE"
    

    To nemusí mít požadovaný účinek, protože existuje velká šance, že vaše .bashrc toto chování přepíše.

  • Přivedl nás k poslední metodě, kterou jsem nehanebně vytrhl z mé .bashrc.

    Prompt_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'
    

Jako další odkaz, toto je konkrétní řádek v mém .bashrc

Prompt_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'

Možná budete muset tento kód také okomentovat ve svém ~/.bashrc

case "$TERM" in
xterm*|rxvt*)
    # JEFFYEE REMOVED because it makes commands to title() not work
    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\[email protected]\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac
159
Ward Muylaert

Wardova odpověď je skvělá, pokud chcete nastavit název podle toho, na jakém hostiteli jste, atd. Při každém otevření terminálu. Pokud ale chcete rychle nastavit název, můžete echo spustit sám:

echo -ne "\033]0;SOME TITLE HERE\007"

nebo provést jednoduchou funkci (uvnitř vašeho ~/.bashrc), řekněte termtitle

termtitle() { printf "\033]0;$*\007"; }

které můžete spustit s termtitle some title here.

70
naught101

Pokud používáte editor Vim, můžete tuto volbu povolit také ve svém vimrc:

:set title

což je ve výchozím nastavení zakázáno. Nastaví skvělé názvy terminálů zobrazující název souboru, který právě upravujete, a některé další věci.

32
ulidtko

Pro úplnost bych dodal, že můžete také nastavit gnome-terminal název pomocí tohoto příkazu:

wmctrl -r :ACTIVE: -N "MyWindowTitle"

Budete muset nainstalovat balíček wmctrl Install wmctrl první.

27
Isaiah

Argh, tolik odpovědí ...

Zkusil jsem wmctrl, který téměř fungoval, kromě toho, že jsem to nemohl přimět, aby změnil název ikony, alespoň ne natrvalo.

Problém je v tom, že PS1 v Bash v Ubuntu nastavuje název.

Výchozí hodnota PS1 je

\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ 

... který nastaví název v první sekvenci escape: \e]0;\[email protected]\h: \w\a

Existují tedy dvě řešení:

Řešení 1: zjednodušte PS1 a poté použijte Prompt_COMMAND

Změňte PS1 na něco jednoduššího:

PS1="\[email protected]\h:\w\$ "

Potom použijte Prompt_COMMAND:

Prompt_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'

Řešení 2: přímo upravte PS1

Jednoduše upravte PS1 novým názvem:

PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ '
24
Hugh Perkins

Pokud jste uživatelem Ubuntu, můžete změnit název karty gnome-terminal pomocí HUD .

V terminálu gnome stiskněte Alt a vyvolejte HUD, zadejte několik prvních písmen, např. "tit", stiskněte Enter a zadejte nový název.

Jedná se o velmi rychlou metodu a vyhnete se použití myši.

10
Tom

Další způsob, jak změnit název gnome-terminal je pomocí gconftool-2; toto změní počáteční název terminálu pro profil vybraný, takže můžete mít různé profily spojené s tituly jako 'Apache', 'Editace' atd. Pak byste spustili gnome-terminal s příslušným profilem pro získání názvu terminálu, který jste zadali. To je na rozdíl od gnome-terminal --title "name" které mění název na terminálu, ale neovlivní počáteční název uvedený v profilu.

Můžete použít následující příkaz ve skriptu k nastavení názvu terminálu pro profil a můžete mít název terminálu změnit v určitých časech dne, abyste vám připomněli věci:

gconftool-2 --set /apps/gnome-terminal/profiles/Default/title --type=string "Apache"

Toto je pro výchozí profil, ale můžete také nastavit název pro jiné profily, například změnou Default na jiný profil, například Profile0:

gconftool-2 --set /apps/gnome-terminal/profiles/Profile0/title --type=string "Editing"

Myslel jsem, že tento způsob změny názvu je užitečný kvůli způsobu, jakým by mohl být použit ve skriptování, nebo jen jako rychlý příkazový řádek pro nastavení názvu profilu. Všimněte si, že někdy musíte terminál znovu spustit se specifikovaným profilem pro gconftool-2 nastavení se projeví. Kompletní nastavení dostupné pro gnome-terminal lze uvést pomocí gconftool-2 -R /apps/gnome-terminal.

3
user76204

Dalším řešením je použití xdotoolu pro simulaci úhozů kláves, možná užitečné ve skriptech:

  1. Nastavení klávesové zkratky v terminálu gnome:

    Edit > Keyboard Shortcuts... > Terminal > Set Title
    

    Například zadáním Shift+Ctrl+Y.

  2. Nainstalujte xdotool, pokud jej ještě nemáte:

    Sudo apt-get install xdotool
    
  3. Následující posloupnost příkazů (které můžete použít také v bash skriptu) nastaví název terminálu/karty (uniknout mezerám s \):

    xdotool key ctrl+shift+y 
    xdotool type My\ new\ fabulous\ title
    xdotool key Return
    
  4. [volitelné] xdotool můžete použít například k otevřete novou kartu a nastavte název pomocí výše uvedených příkazů pomocí:

    xdotool key ctrl+shift+t
    

    Zvažte přidání času spánku před a po otevření nové karty, např. sleep 1 (počkat 1 sekundu).

Toto není nejelegantnější řešení, ale fungovalo to pro mě! Předchozí odpovědi v mém případě nefungovaly. V Ubuntu 14.04 používám terminál gnome a chtěl jsem vytvořit bash skript.

3
MakisH

To fungovalo v mém Gnome Terminal 3.18..

Upravte svůj . Bashrc soubor a přidejte tuto funkci

# Update gnome terminal title
function termtitle() {
    # take argument
    TITLE=$1
    shift
    # update title
    Prompt_COMMAND='echo -ne "\033]0; $TITLE \007"'
}

Nezapomeňte source svůj . Bashrc soubor

$ source ~/.bashrc

A pak můžete jednoduše aktualizovat, budete moci změnit název terminálu takto:

$ termtitle "MariaDB CLI"
1
RousseauAlexandre

Chcete-li v názvu zobrazit pouze aktuální pracovní adresář, zkuste to ve svém '.bashrc':

Prompt_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'

nebo

Prompt_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' 
1
Sriram

Moje odpověď je podobná novější odpovědi, která pro mě nefungovala. Nejstarší odpovědi již nefungují. Středně stará odpověď je příliš velká, takže jsem vytvořil funkci ve svém ~/.bashrc file:

function termtitle() { PS1="${PS1/\\[email protected]\\h: \\w/[email protected]}"; }

Po přidání nebo změně funkce nebo, pokud chcete titul resetovat podruhé, použijte:

. ~/.bashrc
termtitle Special Projects

Jinak jednoduše denně použijte termtitle s novým názvem.

0
WinEunuuchs2Unix

Pokud používáte gnome 3, byla odstraněna výhodná položka nabídky Terminal > Set Title. Můžete nainstalovat vidlicový terminál gnome 2, který má stále tuto možnost nabídky „Nastavit název“, a místo toho ji spustit:

Sudo apt-get install mate-terminal

Namísto spuštění "Terminal", spusťte "MATE Terminal". Pravděpodobně byste také měli vybrat mate-terminál v Sudo update-alternatives --config x-terminal-emulator.

0
JDiMatteo

V případě, že jsou jakékoli ubohé duše jako já nuceny používat tcsh, zkuste něco podobného ve svém .cshrc:

set Prompt='%{\033]0;%[email protected]%m\007%}%~%# '

Zdroj a další podrobnosti: http://tldp.org/HOWTO/Xterm-Title-4.html

0
spookypeanut