web-dev-qa-db-fra.com

Puis-je définir un titre par défaut pour une fenêtre tmux?

À l'heure actuelle, le titre par défaut est reattach-to-user-namespace (OS X), ce qui est plutôt gênant. Existe-t-il une option que je peux mettre dans mon tmux.conf pour obtenir un autre titre par défaut?

Sinon, comment pourrais-je créer une liaison de clé qui crée une nouvelle fenêtre et qui me demande ensuite un nom?

33
js-coder

Aucun nom de fenêtre global par défaut n'est appliqué à toutes les nouvelles fenêtres. ils utilisent par défaut le premier "mot" de la commande (ou le shell par défaut s'il n'y a pas de commande). Vos fenêtres sont probablement par défaut sur reattach-to-user-namespace car c'est le premier bit intéressant de votre valeur default-command.

Ce serait un peu rond, mais vous pourriez mettre votre commande par défaut dans un script Shell et pointer votre default-command sur ce script. Avec cette configuration, le nom de fenêtre par défaut (pour les fenêtres créées sans commande explicite) serait celui que vous ayez appelé le script Shell.

Sinon, il existe plusieurs façons de nommer/renommer manuellement une fenêtre:

  • Au moment de la création avec -n:

    new-window -n 'some name'
    

    Vous pouvez relier c (la clé par défaut utilisée pour créer une fenêtre) afin d'incorporer un "nom par défaut" de votre choix:

    bind-key c new-window -n 'default name'
    
  • Renommez une fenêtre existante:

    rename-window 'new name'
    

    Il existe également une liaison par défaut (Prefix ,) qui vous demandera un nouveau nom et renommera la fenêtre.

  • Renommez une fenêtre via une "séquence d'échappement" envoyée à un volet d'un volet:

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

Votre "Invite-moi à donner un nom à une nouvelle fenêtre" peut être fait comme ceci (demandant avant ou après la création de la fenêtre):

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 '%%'"
38
Chris Johnsen

tmux choisit la première commande comme nom de la fenêtre.

Disons que vous voulez que le "i" soit le titre par défaut, vous pouvez le tromper comme ça.

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

C'est mieux que

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

parce que si vous créez un volet après avoir défini manuellement un titre de fenêtre, le titre sera renommé à nouveau en "i".

3
David

Pas vraiment une réponse plus qu'un hack:

J'ai créé un lien symbolique avec

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

Et maintenant, il affiche pbash comme titre par défaut.

0
Marco Aurelio

En plus de la réponse de Chris sur la définition du titre de la fenêtre à l'aide de new window -n 'somename', vous pouvez également fournir une chaîne vide '' comme nom d'une fenêtre. De cette façon, je peux utiliser le raccourci par défaut (préfixe + c) et je n'ai pas besoin de donner un nom aux fenêtres temporaires, mais je peux quand même les renommer si nécessaire:

bind-key c new-window -n ''

0
Ferdy