Я пытаюсь обнаружить наличие iTerm2, и если я запускаю следующее в iTerm2 (echo -n $'\e[5n'; read -s -t 0.1 line; printf '%q\n' "$line"), терминал отвечает: $'\033'\[ITERM2\ 3.2.1n$'\033'\[0n
iTerm2
echo -n $'\e[5n'; read -s -t 0.1 line; printf '%q\n' "$line"
$'\033'\[ITERM2\ 3.2.1n$'\033'\[0n
Однако, если я запускаю сеанс tmuxв терминале tmux отвечает и ничего мне не дает.
Есть идеи, как попросить tmux запросить у физического терминала отчет о его состоянии?
Вот описание [5n в источнике tmux: https://github.com/tmux/tmux/blob/486ce9b09855ae30a2bf5e576cb6f7ad37792699/tools/ansicode.txt#L577
[5n
Это может быть только iTerm2, поскольку я не видел ответа ни на одном другом терминале
В соответствии с ft в #tmux freenode (и, как видно из этого ответа супер пользователя ), вы можете использовать:
'\ePtmux;\e" STUFF_FOR_THE_TERMINAL_HERE "\e\\'
Итак, это будет что-то вроде:
echo -n $'\ePtmux;\e\e[5n\e\\'