Можно ли установить цвет окна в зависимости от другого параметра окна?
Когда в Windows включена synchronize-panes
, я не хочу случайно нажать C-d
, или все панели будутзакрыто.
Итак, я пытаюсь изменить цвет окна в строке состояния на основе synchronize-panes
: (хотя следующая конфигурация не работает)
bind-key S setw synchronize-panes \; \ # toggles the option
set -w window-status-bg '#{?pane_synchronized,yellow,default}' \; \ # error: bad color
set -w window-status-current-fg '#{?pane_synchronized,yellow,default}' # error: bad color
Наиболее вероятное решение, о котором я могу подумать, - это использовать if-shell
, но я предпочитаю не разбивать оболочку, чтобы по возможности прочитать саму опцию.
РЕДАКТИРОВАТЬ: Это решение if-shell
работает дляme на tmux 2.7
Моя строка состояния голубого цвета, если включен synchronize-panes
, голубой становится желтым.
bind-key S setw synchronize-panes \; \
if-shell '[ #{pane_synchronized} -eq 1 ]' \
'set -w window-status-style fg=black,bg=yellow ; set -w window-status-current-style fg=yellow,bg=black' \
'set -w window-status-style fg=black,bg=cyan ; set -w window-status-current-style fg=cyan,bg=black'
РЕДАКТИРОВАТЬ: проблема решена, мои настройки теперь изменены на эту:
bind-key S setw synchronize-panes
sync_ind_colour="#{?pane_synchronized,yellow,cyan}"
set -g window-status-format "#[fg=black,bg=${sync_ind_colour}][#I#{?#{!=:#W,},:,}#W]"
set -g window-status-current-format "#[fg=${sync_ind_colour},bg=black][#I#{?#{!=:#W,},:,}#W]"
Выглядит немного страшно, но все равно читается.