456 votes

Est-il possible de redessiner la fenêtre tmux lors du passage de moniteur plus petit à plus grand ?

Disons que vous vous connectez à un serveur distant sur ssh avec Terminal.app. Lorsque vous « tmux attach » avec la plus grande résolution surveiller de plus petit vous tmux a déjà commencé, il dessine des points autour de la console. Il ne tient pas la nouvelle taille de fenêtre. Est-il possible de redessiner et de nettoyer la fenêtre ? L ou Ctrl + r, Ctrl-b n’aide pas. Je ne pouvais pas trouver n’importe quelle commande adéquate sur l’homme.

658voto

Chris Johnsen Points 50064

tmux limites les dimensions d'une fenêtre à la plus petite de chaque dimensions à travers toutes les sessions de la fenêtre, qui est joint en annexe. Si elle ne l'a pas fait il n'y aurait pas moyen judicieux d'afficher la totalité de la surface de la fenêtre pour tous les clients.

La meilleure chose à faire est de deatch tous les autres clients de l'sessions lorsque vous connectez:

tmux attach -d

Alternativement, vous pouvez déplacer tous les autres clients à une autre session avant de s'emparer de la session:

takeover() {
    # create a temporary session that displays the "how to go back" message
    tmp='takeover temp session'
    if ! tmux has-session -t "$tmp"; then
        tmux new-session -d -s "$tmp"
        tmux set-option -t "$tmp" set-remain-on-exit on
        tmux new-window -kt "$tmp":0 \
            'echo "Use Prefix + L (i.e. ^B L) to return to session."'
    fi

    # switch any clients attached to the target session to the temp session
    session="$1"
    for client in $(tmux list-clients -t "$session" | cut -f 1 -d :); do
        tmux switch-client -c "$client" -t "$tmp"
    done

    # attach to the target session
    tmux attach -t "$session"
}
takeover 'original session' # or the session number if you do not name sessions

L'écran se rétrécir de nouveau si un petit client commutateurs de la session.

Il y a aussi une variante où vous n' "prendre le relais" de la fenêtre (lien dans la fenêtre d'une nouvelle session, définissez aggressive-resize, et passer toutes les autres sessions qui ont la fenêtre active à une autre fenêtre), mais il est plus difficile de script dans le cas général (et différent de "sortie" puisque vous voulez dissocier de la fenêtre ou de tuer la session au lieu de simplement se détacher de la session).

529voto

Shi B. Points 379

Vous pouvez toujours appuyer sur `` choisir le client que vous souhaitez détacher de la session.

tmux listera toutes les sessions avec leur dimension actuelle. Puis vous détachez simplement de toutes les séances de plus petite tailles.

192voto

gbin Points 768

Une solution plus simple sur les versions récentes de tmux (testé sur 1,9) vous pouvez faire maintenant :

``est pour tous les autres clients sur cette session sauf l’actuel

Vous pouvez alias dans mon. [bash | zsh] rc

Flux de travail : Vous pouvez vous connecter à votre session normalement, et si vous êtes gêné par une autre session qui a forcé vers le bas de la taille de votre fenêtre tmux vous pouvez simplement appeler `` .

0voto

Balamadras Points 1
<pre><code></code><p>tuer l’autre.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X