Vraag Hoe de Gnome-Terminal-titel te veranderen?


Ik heb verschillende exemplaren van terminals in mijn werkomgeving, wat ik zou willen is om een ​​specifieke titel voor elke terminal in te stellen, om een ​​duidelijk idee te hebben welk doel de specifieke terminal dient, namelijk Apache, editing_ini, postgres enz.

Natuurlijk vanaf de opdrachtregel.


141
2018-01-20 13:20


oorsprong


Verderop Ward's opmerking: vergeet niet om "PROMPT_COMMAND" uit te schakelen voor je stuurt de titelveranderings-escape-reeks, anders zal elke verandering die je aanbrengt verloren gaan zodra de volgende shell prompt wordt. - Jon Green
Zie voor een vergelijkbare vraag voor KDE stackoverflow.com/questions/8782159/... - naught101
Ik had dit probleem bij het overschakelen van OS X naar Ubuntu. Om aangepaste titels te verkrijgen binnen een opstelling met meerdere tabbladen, die ik heb gebruikt gnome-terminal --load-config samen met dit script Ik heb geschreven. - halfer
voeg het volgende toe aan uw .bashrc-bestand in uw thuismap # set title of current terminal setTerminalTitle(){ echo -ne "\033]0;${1}\007" } alias termttl=setTerminalTitle nu kun je termttl alias gebruiken voor het instellen van titel b.v. termttl askubuntu - urmalp


antwoorden:


  • De meest gebruiksvriendelijke manier is het uit het menu Terminal te kiezen -> "Titel instellen ...".

  • Er zijn echter ook andere manieren om dit te doen

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

    Dit geeft misschien niet het gewenste effect, want er is een grote kans dat uw .bashrc overschrijft dat gedrag.

  • We brachten ons naar de laatste methode, die ik schaamteloos uit mijn scheurde .bashrc.

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

Als een extra referentie, dit is de specifieke regel in mijn .bashrc

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

Je moet misschien ook deze code becommentariëren in je ~ / .bashrc

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

129
2018-01-20 13:51



Noodzaak om commentaar te leveren of te verwijderen zoals u al zei om effect te hebben! - topless
@Afdeling: PROMPT_COMMAND is een programma rennen. PS1 en PS1 zijn tekstuele strings die worden weergegeven. In het bovenstaande voorbeeld is de uitgevoerde opdracht echo, die dan gewoon een string uitprint. Zien man bash of manpages.ubuntu.com/bash voor meer details. - sladen
GNOME Terminal 3.16.2 zegt Option "--title" is no longer supported in this version of gnome-terminal. - Ivan Kozik
Op Gnome 3.18.3 is er geen item "Set title" in de menu's: / - shadi
Voor iemand anders die in de war wordt gebracht door de schurk in de snaren hierboven, zijn het ANSI escape-personages - zie b.v. lihaoyi.com/post/... - WillC


Het antwoord van Ward is geweldig als je je titel wilt instellen op basis van de host waar je bent, enzovoort, elke keer dat je een terminal opent. Als je echter snel een titel wilt instellen, kun je de echo gewoon zelf uitvoeren:

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

of bijvoorbeeld een eenvoudig bash-script maken termtitle

#!/bin/bash

echo -ne "\033]0;${1}\007"

waarmee je kunt hardlopen termtitle "some title here"


52
2018-05-29 02:20



Dit is het antwoord dat u zoekt - iondiode
of op dezelfde manier kunnen we toevoegen als bash alias door de onderstaande regels toe te voegen in ~ / .bash_aliases function set_title() { echo -ne "\033]0;${1}\007" } alias title=set_title en gebruik dan: $ title term_title - sumit
Helaas lijkt het niet voor mij te werken in GNOME-terminal 3.6.2. - austinmarton
Ook lijkt het niet te werken in xterm 322 of konsole 16.12 ... ik weet niet of er een nieuwe methode is, helaas :( - naught101
@ 3oceen maakt het in dit geval niet uit, ze zijn hetzelfde, maar het is een goede gewoonte om erin te komen, omdat bijvoorbeeld $var_log en ${var}_log zijn heel verschillende dingen, en het verschil kan fouten veroorzaken in scripts. - naught101


Als u de Vim-editor gebruikt, kunt u deze optie ook in uw vimrc inschakelen:

:set title

die standaard is uitgeschakeld. Het zal coole terminale titels instellen die de bestandsnaam tonen die je op dit moment aan het bewerken bent en een aantal andere dingen.


30
2018-01-20 14:40





Voor de volledigheid zou ik willen toevoegen dat je ook de gnome-terminal titel met deze opdracht:

wmctrl -r :ACTIVE: -N "MyWindowTitle"

U moet het pakket installeren wmctrl Install wmctrl eerste.


22
2018-01-23 00:57



MyWindowTitle verschijnt niet in de titel van terminal. Het verschijnt als ik wmctrl -m doe. - sureshvv
Houd er rekening mee dat wmctrl de venstertitel wijzigt en niet de tabtitel, terwijl de oplossing met de escaped-tekens de tabtitel wijzigt. Bovendien verandert de venstertitel weer in de oorspronkelijke tabbladtitel zodra u tussen tabbladen wisselt. - redochka


Argh, zoveel antwoorden ...

Ik heb wmctrl geprobeerd, wat bijna werkte, maar ik kon het niet krijgen om de pictogramtitel te veranderen, in ieder geval niet permanent.

De oplossing is dat PS1 in ubuntu de titel bepaalt.

De standaard PS1 is

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

... waarmee de titel in de eerste escape-reeks wordt geplaatst.

Er zijn dus twee oplossingen:

Oplossing 1: vereenvoudig PS1 en gebruik vervolgens PROMPT_COMMAND

Verander PS1 in iets eenvoudiger:

PS1="\u@\h:\w\$ "

... gebruik vervolgens het PROMPT_COMMAND:

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

Oplossing 2: wijzig PS1 rechtstreeks

Wijzig gewoon PS1 met een nieuwe titel:

PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

15
2018-02-07 03:36



Hallo, ik vind je antwoord best wel leuk. Zou je het erg willen uitleggen over de rol van ]0; in je code? Ik denk dat ik de betekenis heb gevonden van echo -e '\007 \033' met de ascii -o opdracht ... hoewel ik eerlijk gezegd niet zeker weet wat dat daar ook doet ... bedankt ... - isomorphismes


Als u een Ubuntu-gebruiker bent, kunt u de titel van een tabblad gnome-terminal wijzigen met behulp van de HUD.

Terwijl je in de kabouter-terminal bent, druk je op Alt om de HUD te openen, typ de eerste paar letters, bijvoorbeeld "tit", druk op enter en typ je nieuwe titel.

Dit is een zeer snelle methode en vermijdt het gebruik van de muis.


11
2018-06-18 06:55



Inderdaad. Houdt de handen op het toetsenbord. De bestaande titel wordt weergegeven, dus het is snel en eenvoudig om ook de bestaande te wijzigen met deze methode. - Brent Faust
mees is alleen voor Engelse Ubuntu. - törzsmókus
en de hele optie is verwijderd :( - törzsmókus
de F2 sleutel vermijdt ook de muis. - isomorphismes


Een andere manier om de titel van te veranderen gnome-terminal is door te gebruiken gconftool-2; dit verandert de initiële terminaltitel voor de profiel geselecteerd, zodat u verschillende profielen kunt gebruiken die zijn gekoppeld aan titels zoals 'Apache', 'Bewerken', enz. U zou dan starten gnome-terminal met het juiste profiel om de terminatietitel te krijgen die je hebt opgegeven. Dit staat in contrast met gnome-terminal --title "name" waarbij de titel per terminal wordt gewijzigd, maar dit heeft geen invloed op de oorspronkelijke titel die in het profiel is opgegeven.

U kunt de volgende opdracht in een script gebruiken om de naam van de terminal in te stellen voor een profiel en u kunt op bepaalde momenten van de dag de naam van de terminal wijzigen om u aan zaken te herinneren:

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

Dit is voor het standaardprofiel, maar u kunt ook de titel voor andere profielen instellen door bijvoorbeeld te wijzigen Default naar een ander profiel zoals Profile0:

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

Ik dacht dat deze manier om de titel te wijzigen van nut is vanwege de manier waarop het in scripts kan worden gebruikt, of gewoon als een snelle manier om de titel voor het profiel in te stellen. Merk op dat u soms de terminal opnieuw moet starten met het opgegeven profiel voor de gconftool-2 instellen om invloed te hebben. De volledige instellingen beschikbaar voor gnome-terminal kan worden vermeld bij gconftool-2 -R /apps/gnome-terminal.


4
2018-01-03 01:09





Een andere oplossing is om xdotool te gebruiken om toetsaanslagen te simuleren, misschien handig in scripts:

  1. Stel een sneltoets in gnome-terminal in:

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

    Bijvoorbeeld het bevestigen van de Shift+Ctrl+Y.

  2. Installeren xdotool als je het nog niet hebt:

    sudo apt-get install xdotool
    
  3. De volgende reeks opdrachten (die u ook in een bash-script kunt gebruiken) stelt de terminal / tabbladtitel in (ontsnap aan de spaties met \):

    xdotool key ctrl+shift+y 
    xdotool type My\ new\ fabulous\ title
    xdotool key Return
    
  4. [optioneel] U kunt ook xdotool gebruiken voor b.v. open een nieuw tabblad en stel de titel in met de bovenstaande opdrachten, met behulp van:

    xdotool key ctrl+shift+t
    

    Overweeg een slaaptijd toe te voegen voor en na het openen van een nieuw tabblad, bijvoorbeeld sleep 1 (om 1 seconde te wachten).

Dit is niet de meest elegante oplossing, maar het werkte voor mij! De vorige antwoorden werkten niet in mijn geval. Ik gebruik gnome-terminal in Ubuntu 14.04 en ik wilde een bash-script maken.


3
2017-11-12 17:55





Om alleen de huidige werkdirectory in de titel weer te geven, probeer dit in uw '.bashrc':

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

of

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

2
2018-03-16 05:47





In het geval dat arme zielen zoals ik gedwongen worden om tcsh te gebruiken, probeer dan zoiets in je .cshrc:

set prompt='%{\033]0;%n@%m\007%}%~%# '

Bron en meer details: http://tldp.org/HOWTO/Xterm-Title-4.html


0
2018-05-02 11:11





Dit werkte in mijn Gnome Terminal 3.18.3.

Bewerk je .bashrc bestand en voeg deze functie toe

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

Vergeet niet om source jouw .bashrc het dossier

$ source ~/.bashrc

En dan kun je gewoon updaten, dan kun je de titel van de terminal als volgt veranderen:

$ termtitle "MariaDB CLI"

0
2017-10-23 09:06