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

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

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

Благодарю.

6 ответов

Решение

Это ошибка 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 может изменить имя вкладки правильно

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

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

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

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

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

например

export PROMPT_COMMAND=renameTerminal

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

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

Вы можете просто изменить имя вкладки с помощью

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

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

Если вы измените свою оболочку на 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 
Другие вопросы по тегам