Czy mogę zmienić nazwę zakładki guake, aby wyświetlić bieżące polecenie?


13

Używam guake bardzo intensywnie i ssh na więcej niż 3 komputerach w dowolnym momencie. Mam również demony działające na niektórych kartach (terminalach). Co chcę wiedzieć, czy można podać nazwę bieżącego polecenia jako nazwę terminala? Kliknięcie karty w prawo i zmiana jej nazwy powoduje: (Spójrz na kartę po Terminalu 5)

Spójrz na zakładkę po terminalu 5

Dzięki.


Zobacz moją odpowiedź na powiązane pytanie, aby pokazać skróconą reprezentację bieżącego katalogu jako tytuł karty.
krlmlr

Co masz na myśli przez „bieżące polecenie”? czy w każdym terminalu zawsze działa polecenie? jaki powinien być tytuł, gdy nic nie działa?
rubo77

Odpowiedzi:


4

Jest to błąd typu guake (0.4.1). Widzę i rozwiązuję ten problem za pomocą tego raportu o błędzie, chociaż autor twierdzi, że nie jest to najlepsza metoda: https://github.com/Guake/guake/issues/205

Dowiedziałem się, że przeniesienie kodu niszczenia okna dialogowego (guake.py linia 983) w dół po kodzie, który ustawia etykietę tabulacji (linia 986), faktycznie rozwiązuje problem. więc kod, który działa dla mnie, wygląda następująco:

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

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

    dialog.destroy()

może jest jakiś problem z gtk i oknami dialogowymi, ale nie znalazłem żadnych zmian kodu związanych z gtk w wersji 0.4.1 diff.

EDYCJA : guake 0.4.2 może poprawnie zmienić nazwę zakładki


1
to nie odpowiada na pytanie
phil294

3

Nie jestem pewien, czy to działa na zasadzie guake, działa na większość emulatorów terminali. Możesz dołączyć echo do swoich skryptów, aby zmienić tytuł terminala:

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

to nie zadziałało, kiedy wpisałem to w terminalu.
theTuxRacer

1
Wynika to z tego, że podpowiedź powłoki zwykle ustawia ją na bieżący katalog roboczy. Sprawdź zmienną PS1.
ak2

To również nie działa na moim Ubuntu 15.10. Sprawdziłem, echo $PS1które pokazuje coś takiego, \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$co pomaga mi to rozwiązać?
rubo77

3

Trochę włamania, ale zmieni to nazwę bieżącego terminala na cokolwiek, o co prosiłeś.

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

Również jeśli zaktualizujesz swój PROMPT_COMMAND, możesz mieć funkcję aktualizowania nazwy terminala za każdym razem. Chociaż to nie zadziała w przypadku problemu z ssh, ponieważ zmienia nazwę tylko po uruchomieniu polecenia.

na przykład

export PROMPT_COMMAND=renameTerminal

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

2

Kiedy chcę zmienić nazwę karty w guake, po prostu kliknij prawym przyciskiem myszy nazwę karty i kliknij lewym przyciskiem myszy zmień nazwę. Zostanie otwarte okno podręczne, w którym można wpisać nową nazwę.


jasne, ale jak możesz dodać to do skryptu?
rubo77

1

Możesz po prostu zmienić nazwę tabulacji za pomocą

guake -r newtabname

Jeśli chcesz uzyskać najnowsze uruchomione polecenie, użyj na przykład

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

!!jest rozwijany przez bash podczas pisania. Nie jest rozszerzany przez podstawienie aliasu. Musisz użyć historywbudowanego rozszerzenia, aby umieścić je w aliasie:

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

kiedy było twoje ostatnie polecenie

echo this is a test

potem dzwonię

setguaketitle

ustawi tytuł na „echo”.


0

Jeśli zmienisz powłokę na zsh, możesz dodać to do ~/.zshrc:

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

i pokaże bieżące polecenie i bieżący katalog roboczy. Działa to dla wszystkich emulatorów terminali, nie tylko guake.

Aby zainstalować Zsh:

sudo apt-get install zsh

wypróbować to po prostu powiedzieć

zsh

aby ustawić go jako domyślny dla nowych terminali:

chsh -s /bin/zsh 

1
zsh w ogóle nie działa z guake :(
theTuxRacer 11.01.11

No tak, pamiętam, że wcześniej napotkałem ten problem. Ale przynajmniej niektóre związane z tym błędy wydają się teraz naprawione, np. < Guake.org/ticket/49 >.
poolie
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.