Есть ли способ определить, сфокусирован ли терминал, не спрашивая оконного менеджера? - PullRequest
0 голосов
/ 12 мая 2018

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

Эмуляторы терминала сами выставляют эту информацию вообще?

Я попытался запустить showkey -a, чтобы посмотреть, была ли отправлена ​​какая-либо escape-последовательность при потере фокуса, и она не выглядит так.

1 Ответ

0 голосов
/ 12 мая 2018

Я думаю, некоторые терминалы реализуют это, но не все, на основе этого комментария в трекере проблем для плагина vim-tmux-focus-events:

О вопросе «Я ожидал, что событие сработает при изменении фокуса между разными окнами в моем оконном менеджере»: да, я вижу, как это было бы очень полезно.Я думаю, что это может зависеть от приложения терминала, которое вы используете.Я только что проверил это на OSX, и вот несколько быстрых результатов:

  • это работает для iTerm, когда tmux работает внутри окна
  • не работает для iTerm, работающей в обычном режимеbash + vim внутри (без tmux)
  • не работает для Terminal.app (с или без tmux)

[...]

Итак, если яЯ не ошибаюсь, терминальные приложения должны реализовывать функции «усиление фокуса», «потеря фокуса».

У меня нечеткая память (хотя я точно не помню), что усиление фокуса/ loss мог бы сработать для меня при использовании этого плагина и gnome-терминала, поэтому стоит попробовать.

...