Чи можна встановити за замовчуванням назву для вікна tmux?


38

Зараз за заголовком за замовчуванням reattach-to-user-namespace(OS X), що досить дратує. Чи є опція, яку я можу вкласти в свою, tmux.confщоб отримати ще одну титульну заголовок

Якщо ні, то як би я зробив прив'язку клавіш, яка створює нове вікно, а потім запрошує мене на ім’я?


Дивіться відповідь тут superuser.com/questions/306028/…
Fredrik Pihl

Це про відключення автоматичного перейменування (що я вже робив), а не про імена за замовчуванням, правда?
js-coder

Я думаю, ти маєш рацію, вибач!
Фредрік Піль

Я використовую set-option -g default-command "reattach-to-user-namespace -l zsh", і більшу частину часу закінчую вікном, названим zshза бажанням. З невідомих причин іноді ім'я не змінюється, і викликається вікно reattach-to-user-namespace. Я досі не помітив схему, коли / чому це відбувається, але, здається, може бути непомітна помилка чи щось у моїй конфігурації.
Джим Стюарт

Який найкращий спосіб вказати номер вікна в імені?
DanCat

Відповіді:


43

Не існує глобального імені вікна за замовчуванням, яке застосовується до всіх нових вікон; вони за замовчуванням складають (частина) першого "слова" команди (або оболонки за замовчуванням, якщо немає команди). Можливо, у ваших вікнах дефолт, reattach-to-user-namespaceтому що для вас це перший цікавий біт default-command.

Це було б трохи навкруги, але ви можете помістити свою команду за замовчуванням в сценарій оболонки і вказати default-commandна цей сценарій. З цією конфігурацією ім'я вікна за замовчуванням (для вікон, створених без явної команди) буде таким, яким ви назвали скрипт оболонки.

Інакше існує кілька способів вручну назвати / перейменувати вікно:

  • На час створення з -n:

    new-window -n 'some name'
    

    Ви можете повторно прив’язати c(ключ за замовчуванням, який використовується для створення вікна), щоб включити "ім'я за замовчуванням" на ваш вибір:

    bind-key c new-window -n 'default name'
    
  • Перейменуйте наявне вікно:

    rename-window 'new name'
    

    Існує також прив'язка за замовчуванням (префікс ,), яка запропонує вам нове ім’я та перейменує вікно.

  • Перейменуйте вікно за допомогою "послідовності втечі", надісланої tty панелі:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

Ваше "підкажіть мені ім'я для нового вікна" можна зробити так (запит до або після створення вікна):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"

2
Ого, це справді епічна відповідь, велике спасибі! :)
js-coder

7
Я знайшов спосіб встановити титул за замовчуванням: set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh"встановлює титул за замовчуванням base. Ви можете додати це до своєї відповіді. :)
js-coder

ваше рішення ламає менеджерів tmux, таких як tmuxinator. У цьому випадку вкладки не будуть перейменовані
SystematicFrank

4

tmux вибирає першу команду як ім'я вікна.

Скажімо, ви хочете, щоб "я" був титулом за замовчуванням, ви можете це зробити так.

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

Це краще, ніж

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

тому що якщо ви створите панель після того, як ви вручну встановите заголовок вікна, заголовок буде перейменований знову на "i".


1

На додаток до відповіді Кріса про встановлення заголовка вікна new window -n 'somename', ви можете також вказати порожню рядок ''як назву вікна. Таким чином, я можу використовувати ярлик за замовчуванням (префікс + c) і мені не потрібно придумувати ім'я для тимчасових вікон, але все ж можу перейменувати їх, коли це необхідно:

bind-key c new-window -n ''


1

Насправді відповідь не більше, ніж хак:

Я створив симпосилання з

sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash

А тепер він відображається як pbashзаголовок за замовчуванням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.