Установите заголовок окна терминала на текущее время UTC

Я задаюсь вопросом, существует ли способ установить строку заголовка окна терминала на текущее время UTC, вероятно, без секунд (слишком много высвечивания). Я делаю большую облачную работу и надеющийся минимизировать взгляды о математике вычитания :)

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

2
задан 3 February 2017 в 04:20

2 ответа

Насколько я понимаю, Вы ожидали бы, что заголовок всегда регулярно обновит, независимо от того, что происходит в терминале; то есть, даже если нет никакого действия (например, подсказка отображена, и Вы ничего не вводите), или когда долгий процесс работает.Я прав?

заголовок может быть обновлен путем испускания определенной escape-последовательности под названием OSC 0, например,

echo -ne '\e]0;newtitle\a'

, Если Вы не видите, что эта команда изменяет заголовок, поэтому последующая подсказка переопределяет его снова. Необходимо удалить установку заголовка от подсказки. Как подтверждение концепции, можно попробовать это, чтобы удостовериться, что оно действительно устанавливает заголовок:

echo -ne '\e]0;newtitle\a'; sleep 5

Вы могли записать сценарий, который испускает и регулярно обновляет заголовок подобным образом и запускает тот скрипт в фоновом режиме.

существует одна свойственная проблема с этим подходом, все же. Если Вы запускаете другое приложение в терминале, то приложение могло бы также распечатать escape-последовательности. Особенно с другими промежуточными слоями, такими как ssh, существует небольшой шанс, что данное приложение печатает escape-последовательность на двух последовательных шагах (например, escape-последовательность, которая переключается, передний план к красному "\e [31 м", который мог бы быть распечатан как символы "\e [3" в одноэтапном, и вскоре после этого "1 м"). Существует небольшой шанс, что Ваш фоновый сценарий вмешается и распечатает свой материал в середине, потенциально повреждая достижение дисплея (никакая предназначенная игра слов).

нет никакого простого способа предотвратить это. Возможно, tmux или подобный слой могут быть настроены для обновления заголовка для содержания времени. Я не знаю, поддерживает ли скажем, tmux это, но ему потребовали, чтобы знание удостоверилось, что этот маленький шанс повреждения дисплея устраняется. Ну, это уже показывает время по умолчанию (не в заголовке, а на фактическом холсте, хотя).

я рекомендую выполнить единственный графический апплет часов или приложение куда-нибудь на рабочем столе, независимо от эмуляторов терминала. Тем путем та же информация (время) не отображена в нескольких местоположениях, только в одном месте. Кроме того, Вы сохраняете заголовок терминала (доступная недвижимость) для немного фактических больше значимой информации, это характерно для того конкретного терминала.

2
ответ дан 2 December 2019 в 02:48

У меня нет testet, это, но удар имеет $PROMPT_COMMAND, который должен быть выполнен прежде, чем показать подсказку.

, Если Вы помещаете

PROMPT_COMMAND="echo -ne '\e]0;$(date)\a'"

в Вашем .bashrc, дата будет назначена как заголовок и обновила каждый раз, когда подсказка отображена.

1
ответ дан 2 December 2019 в 02:48

Другие вопросы по тегам:

Похожие вопросы: