Posso cambiare il nome della scheda Guake per mostrare il comando corrente?


13

Uso molto il guake e ssh in più di 3 computer in qualsiasi momento. Ho anche demoni in esecuzione su alcune schede (terminali). Quello che voglio sapere, è possibile avere il nome del comando corrente come nome del Terminale? Fare clic con il pulsante destro del mouse su una scheda e modificarne il nome provoca questo: (Guarda la scheda dopo il Terminale 5)

Guarda la scheda dopo il Terminal 5

Grazie.


Vedi la mia risposta a una domanda correlata per mostrare una rappresentazione abbreviata della directory corrente come titolo della scheda.
krlmlr,

Cosa intendi con "comando corrente"? c'è sempre un comando in esecuzione in ciascun terminale? quale dovrebbe essere il titolo quando non c'è nulla in esecuzione?
rubo77,

Risposte:


4

Questo è un bug guake (0.4.1). Ho appena visto e risolto questo problema tramite questo bug report sebbene l'autore affermi che questo non è il metodo migliore: https://github.com/Guake/guake/issues/205

ho scoperto che spostare il codice di distruzione della finestra di dialogo (riga 983 guake.py) dopo che il codice che imposta l'etichetta della scheda (riga 986) risolve effettivamente il problema. quindi il codice che funziona per me è simile al seguente:

    response = dialog.run()
    # dialog.destroy() 

    if response == gtk.RESPONSE_ACCEPT:
        self.selected_tab.set_label(entry.get_text())

    dialog.destroy()

forse c'è qualche problema con gtk e dialoghi, ma non ho trovato nessuna modifica al codice connessa con gtk nella versione 0.4.1 diff.

EDIT : guake 0.4.2 può cambiare correttamente il nome della scheda


1
questo non risponde alla domanda
phil294

3

Non sono sicuro che funzioni per falso, funziona per la maggior parte degli emulatori terminali. È possibile includere un'eco negli script per modificare il titolo del terminale:

echo -ne "\033]0;your_title_here\007"

che non ha funzionato, quando l'ho digitato nel terminale.
theTuxRacer il

1
Questo perché il prompt della shell in genere lo imposterà nella directory di lavoro corrente. Controlla la variabile PS1.
ak2,

Non funziona neanche sul mio Ubuntu 15.10. Ho controllato echo $PS1che mostra qualcosa di simile a \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$cosa mi aiuta a risolverlo?
rubo77,

3

Un po 'un trucco, ma questo rinominerà il terminale corrente con qualunque cosa tu abbia richiesto.

function ssh() {
    guake -r "$@";
    /usr/bin/ssh $@
}

Inoltre, se aggiorni PROMPT_COMMAND, puoi avere una funzione per aggiornare il nome del terminale ogni volta. Anche se questo non funzionerà per il tuo problema ssh in quanto cambia il nome solo dopo l'esecuzione del comando.

per esempio

export PROMPT_COMMAND=renameTerminal

function renameTerminal() {
    guake -r "$SOMENAME";
}

2

Quando voglio cambiare il nome della scheda in modo falso, faccio semplicemente clic con il pulsante destro del mouse sul nome della scheda e clic con il pulsante sinistro del mouse su Rinomina. Viene visualizzata una finestra pop-up in cui digitare il nuovo nome.


certo, ma come puoi aggiungerlo a uno script?
rubo77,

1

Puoi semplicemente cambiare il nome della scheda con

guake -r newtabname

Se si desidera ottenere l'ultimo comando in esecuzione, utilizzare ad esempio

echo "!!" | cut -f 1 -d " "

!!viene espanso da bash quando lo si digita. Non è espanso dalla sostituzione di alias. Quindi devi usare il historybuilt-in per fare l'espansione per metterlo in un alias:

alias setguaketitle='guake -r $(echo "$(history -p !! )"| cut -f 1 -d " ")'

quando è stato il tuo ultimo comando

echo this is a test

poi chiamando

setguaketitle

imposterà il titolo su "eco".


0

Se cambi la shell in zsh, puoi aggiungerla a ~/.zshrc:

preexec() {
    echo -n '\e]0;'
    echo -nE "$1"
    print -nP '  (%~)'
    echo -n '\a'
}

e mostrerà il comando corrente e la directory di lavoro corrente. Funziona con tutti gli emulatori di terminali, non solo con il falso.

Per installare zsh:

sudo apt-get install zsh

per provarlo basta dire

zsh

per renderlo predefinito per i nuovi terminali:

chsh -s /bin/zsh 

1
zsh non funziona affatto con guake :(
theTuxRacer l'

Oh, giusto, mi ricordo di aver toccato quel problema prima. Ma almeno alcuni dei bug relativi ad esso sembrano ora risolti, ad esempio < guake.org/ticket/49 >.
poolie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.