330 votes

"tmux set -g mouse-mode on" ne fait pas défiler

Pour permettre le défilement d'une fenêtre tmux avec une souris, j'ai mis le code suivant dans mon fichier ~/.tmux.conf:

set -g mouse-mode on

Cependant, rien ne change. Quand je fais défiler, cela se fait toujours en dehors de tmux. Pourquoi ?

20voto

J-L Points 685

Cette ligne :

set -g mode-souris on

dans votre fichier ~/.tmux.conf ne fonctionnera pas.

Pour une chose, le paramètre approprié est mode-souris, pas mode-souris.

Ensuite, cela ne fonctionne que sur les anciennes versions de tmux (avant la version 2; vous pouvez exécuter tmux -V pour voir quelle version vous avez, mais vous pouvez également exécuter man tmux pour voir si mode-souris est une option prise en charge).

Et troisièmement, techniquement man tmux indique d'utiliser l'option mode-souris avec setw (set-window-option) et non avec set (set-option), bien que je l'ai vu fonctionner avec set (ainsi qu'avec setw).


Ces lignes devraient fonctionner :

Si votre version de tmux est suffisamment récente (c'est-à-dire, si tmux -V affiche la version 2 ou plus récente), vous pouvez mettre cette ligne dans votre fichier ~/.tmux.conf :

set-option -g souris on

Mais si vous utilisez une ancienne version de tmux, mettez ces lignes dans votre fichier ~/.tmux.conf :

set-window-option -g mode-souris on

set-option -g redimensionner-panneau-souris on
set-option -g sélectionner-panneau-souris on
set-option -g sélectionner-fenêtre-souris on

Encore une fois, si vous n'êtes pas absolument sûr de quelle(s) ligne(s) mettre dans votre fichier ~/.tmux.conf, exécutez man tmux et recherchez mode-souris, redimensionner-panneau-souris, sélectionner-panneau-souris, et/ou sélectionner-fenêtre-souris. Si vous les trouvez, utilisez ces options (celles pour l'ancienne version de tmux).

En mettant ces lignes, vous pourrez utiliser la molette de la souris, cliquer sur divers panneaux pour les activer, et redimensionner les panneaux simplement en cliquant et en faisant glisser sur le séparateur.

Vous pouvez également copier-coller en utilisant votre souris. Cependant, vous pouvez remarquer que le copier-coller avec votre souris peut ne pas fonctionner comme d'habitude sur votre console. Pour contourner cela, j'ai remarqué que maintenir la touche SHIFT enfoncée lors de l'utilisation des capacités de copie/coller de votre souris les fait fonctionner normalement à nouveau. (Sur MacOS, fn semble mieux fonctionner pour moi que SHIFT.) Ou vous pouvez apprendre l'approche de tmux pour le copier-coller (ce que je recommande).


Un note sur l'utilisation de la capacité native de tmux pour copier/sélectionner/coller :

Personnellement, je trouve que les touches vi ont plus de sens pour moi que les touches emacs par défaut (par exemple, il est plus naturel de sortir du mode de sélection avec la touche ENTER du mode vi que avec les touches CTRL+w ou ALT+w du mode emacs), donc j'ai cela dans mon fichier ~/.tmux.conf :

# Pour des touches vi-like en mode copier/coller/sélection :
set-window-option -g touches-mode vi

Cependant, j'ai remarqué que sur les anciennes versions de tmux, cette ligne ne fonctionnera pas, sauf si j'ai également inclus la ligne :

set-window-option -g mode-souris on

Bon à savoir : De temps en temps, lorsque vous utilisez la molette de la souris, vous découvrirez que votre panneau/écran semble être figé ou bloqué (il ne répond pas aux entrées au clavier), et il n'est pas clair quoi faire pour le débloquer.

Il n'est pas bloqué. Vous êtes probablement dans le mode de sélection de tmux. Pour en sortir, essayez l'une de ces options :

  • Appuyez sur ENTER. (Fonctionnera probablement en mode vi.)
  • Appuyez sur ALT+w. (Fonctionnera probablement en mode emacs.)
  • Appuyez sur CTRL+w. (Fonctionnera probablement en mode emacs.)
  • Appuyez sur META+w. (Fonctionnera probablement en mode emacs.)
  • Appuyez sur Esc. (Fonctionnera probablement en mode emacs.)
  • Appuyez sur q. (Fonctionnera probablement en mode vi, et peut fonctionner aussi en mode emacs.)

En fin de compte, vous pouvez essayer d'appuyer sur :

CTRL+w     ENTER

ou :

Esc     q

Il y a de fortes chances que cela vous ramène au mode normal où votre clavier répond à nouveau.


Utiliser la souris avec vim :

J'ai découvert que mettre cette ligne dans mon fichier ~/.vimrc :

:set souris=a

semble bien fonctionner avec tmux, mieux que cette ligne :

:set souris=r

Je ne peux pas vraiment expliquer la différence ; si vous êtes un utilisateur de vim, essayez-les et voyez quelle option fonctionne le mieux pour vous.


Si vous devez tester ces options de tmux, vous vous retrouverez peut-être à éditer votre fichier ~/.tmux.conf, à quitter tmux, puis à redémarrer tmux. Cela peut devenir un processus fastidieux, donc si vous voulez des solutions de contournement, voici quelques options :

Option 1 : Après avoir édité (et enregistré) votre fichier ~/.tmux.conf, exécutez cette commande (tout en étant dans tmux) :

CTRL+B :source-file ~/.tmux.conf ENTER

Cela appliquera immédiatement les nouveaux paramètres de votre fichier ~/.tmux.conf dans votre session tmux actuelle, sans avoir besoin de redémarrer tmux.

Option 2 : Si vous êtes dans une session tmux, vous pouvez activer/désactiver temporairement des options juste pour cette session en exécutant des commandes comme celles-ci au shell Unix :

tmux set-option -g mode-souris on

tmux set-window-option -g touches-mode vi

Option 3 : Vous pouvez également activer/désactiver temporairement des options dans une session tmux avec :

CTRL+B :set-option -g souris on ENTER

CTRL+B :set-window-option -g touches-mode vi ENTER


Bonne chance, et amusez-vous avec tmux !

17voto

Comme l'a dit @Graham42, à partir de la version 2.1, les options de la souris ont été renommées mais vous pouvez utiliser la souris avec n'importe quelle version de tmux en ajoutant ceci à votre ~/.tmux.conf :

Shells Bash :

is_pre_2_1="[[ $(tmux -V | cut -d' ' -f2) < 2.1 ]] && echo true || echo false"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

Shells Sh (Bourne shell) :

is_pre_2_1="tmux -V | cut -d' ' -f2 | awk '{print ($0 < 2.1) ? "true" : "false"}'"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

J'espère que cela vous aidera

13voto

Vous pouvez toujours utiliser la logique du diable pour définir des options en fonction de votre version actuelle de Tmux : voir ma réponse précédente ici.

Mais depuis Tmux v1.7, set-option ajoute "-q" pour supprimer les erreurs et ne rien afficher (voir le journal des modifications). Je recommande d'utiliser cette fonctionnalité, c'est plus lisible et plus facilement expansible.

Ajoutez ceci à votre ~/.tmux.conf:

# à partir de la version 2.1
set -gq mouse on
# avant la version 2.1
set -gq mode-mouse on
set -gq mouse-resize-pane on
set -gq mouse-select-pane on
set -gq mouse-select-window on

Redémarrez tmux ou source-file votre nouveau .tmux.conf


Note supplémentaire : Je suis prêt à supprimer ma précédente réponse si les gens préfèrent celle-ci

3voto

hummingbird Points 51

Essaye ça. Ça marche sur mon ordinateur.

set -g mouse on

0voto

ElliotSaha Points 21

Pour ceux qui perdent vraiment leur sang-froid parce qu'ils ont déjà set -g mouse on, vérifiez vos paramètres de terminal pour voir si "Activer le rapport de la souris" est activé.

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