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