Могу ли я изменить имя вкладки guake, чтобы показать текущую команду?


13

Я очень активно использую guake и использую ssh на более чем 3 компьютерах в любой момент времени. У меня также есть демоны, работающие на некоторых вкладках (терминалах). Что я хочу знать, возможно ли иметь имя текущей команды в качестве имени терминала? Если щелкнуть правой кнопкой мыши вкладку и изменить ее имя, это будет выглядеть следующим образом: (посмотрите на вкладку после терминала 5)

Посмотрите на вкладку после терминала 5

Благодарю.


См. Мой ответ на связанный вопрос, чтобы показать сокращенное представление текущего каталога в качестве заголовка вкладки.
krlmlr

Что вы имеете в виду под "текущей командой"? всегда ли команда работает в каждом терминале? каким должен быть заголовок, когда ничего не работает?
rubo77

Ответы:


4

Это ошибка guake (0.4.1). Я просто вижу и решаю эту проблему с помощью этого сообщения об ошибке, хотя автор говорит, что это не лучший метод: https://github.com/Guake/guake/issues/205

я обнаружил, что перемещение кода уничтожения диалога (строка 983 guake.py) вниз после кода, который устанавливает метку вкладки (строка 986), фактически решает проблему. поэтому код, который работает для меня, выглядит следующим образом:

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

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

    dialog.destroy()

возможно есть какая-то проблема с gtk и диалогами, но я не нашел никаких изменений кода, связанных с gtk, в версии 0.4.1 diff.

РЕДАКТИРОВАТЬ : Guake 0.4.2 может изменить имя вкладки правильно


1
это не отвечает на вопрос
phil294

3

Я не уверен, что это работает для guake, это работает для большинства эмуляторов терминала. Вы можете включить эхо в свои скрипты, чтобы изменить заголовок терминала:

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

это не сработало, когда я набрал его в терминале.
theTuxRacer

1
Это потому, что приглашение вашей оболочки обычно устанавливает его в текущий рабочий каталог. Проверьте переменную PS1.
ak2

Это не работает на моем Ubuntu 15.10 либо. Я проверил, echo $PS1что показывает что-то вроде \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$того, что это помогает мне решить эту проблему?
rubo77

3

Немного хак, но это переименует текущий терминал в то, для чего вы ssh'ed.

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

Также, если вы обновите свой PROMPT_COMMAND, у вас может быть функция для обновления имени терминала каждый раз. Хотя это не сработает для вашей проблемы с ssh, так как она меняет имя только после выполнения команды.

например

export PROMPT_COMMAND=renameTerminal

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

2

Когда я хочу изменить имя вкладки в guake, я просто щелкаю правой кнопкой мыши по имени вкладки и щелкаю левой кнопкой мыши по переименованию. Откроется всплывающее окно для ввода нового имени.


конечно, но как вы можете добавить это в скрипт?
rubo77

1

Вы можете просто изменить имя табуляции с помощью

guake -r newtabname

Если вы хотите получить последнюю запущенную команду, используйте, например,

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

!!расширяется bash при вводе. Это не расширяется путем замены псевдонима. Поэтому вы должны использовать historyвстроенное расширение, чтобы сделать его псевдонимом:

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

когда твоя последняя команда была

echo this is a test

потом звоню

setguaketitle

установит название на "эхо".


0

Если вы измените свою оболочку на zsh, вы можете добавить это в ~/.zshrc:

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

и он покажет текущую команду и текущий рабочий каталог. Это работает для всех терминальных эмуляторов, а не только для guake.

Чтобы установить zsh:

sudo apt-get install zsh

чтобы попробовать это просто сказать

zsh

чтобы сделать его по умолчанию для новых терминалов:

chsh -s /bin/zsh 

1
zsh вообще не работает с guake :(
theTuxRacer

О, хорошо, я помню, как сталкивался с этой проблемой раньше Но, по крайней мере, некоторые ошибки, связанные с этим, теперь исправлены, например, < guake.org/ticket/49 >.
пул
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.