Alt-Tab, mémoire spatiale et toogle.sh

J’utilise principalement 3 applications : Terminator (terminal), Firefox (navigateur), Sublime Text (éditeur). J’ai besoin de basculer extrêmement rapidement et régulièrement entre ces trois outils. Le problème (ou le besoin) est identifié, il me faut une solution.

Je n’ai jamais réellement travaillé avec Alt+Tab, je connais évidemment mais j’utilisais très peu. Je mets ça sur le compte de 20 ans de Windows qui nivelle par le bas… on clique. Maintenant que je dois vraiment m’y mettre, je « découvre ». Aviez-vous déjà remarqué qu’on ne bascule pas de la même manière entre les onglets sur Firefox (Ctrl+Tab) et les applications (Alt+Tab) ?

Lorsqu’on fait Ctrl+Tab sur la grande majorité des applications, on passe à l’onglet suivant. Lorsqu’on fait Alt+Tab, on passe à la dernière application utilisée. Le Ctrl+Tab suit une logique ordonnée de gauche à droite, le Alt+Tab suit une logique temporelle qu’on appelle MRU (Most Recently Used, Plus récemment utilisé). Avec Alt+Tab on remonte la liste des applications utilisées chronologiquement. A noter qu’on peut employer ce fonctionnement sur Firefox.

Grâce à un fil Hacker News, je suis remonté à Solving the Alt-Tab Problem et Solving the real Alt-Tab problem (DeepL pour traduire) qu’il vous faut lire : 1/ Mémoire spatiale 2/ Le fonctionnement de Alt+Tab est différent entre Mac et Windows 3/ Pourquoi avoir deux fonctionnement distincts entre Ctrl+Tab et Alt+Tab (l’habitude…) ? 4/ Peut-on faire mieux que MRU ?

C’est la mémoire spatiale qui m’a le plus passionné. En utilisant activement Alt+Tab, on ne regarde même plus l’application vers laquelle on va basculer. On le sait. Le basculement avec Alt+Tab va éviter de « casser » sa concentration. Je ressens cette perte de concentration lorsque je suis concentré sur une tâche, je souhaite basculer sur une autre application, je regarde la barre des tâches puis je clique sur l’application désirée. Je ne suis alors plus dans le fil de mes pensées, dans mon workflow, concentré sur la tâche que j’étais en train d’effectuer, je viens de m’arrêter pour chercher mon chemin. Avec Alt+Tab je reste dans mes pensées, concentré sur ce que je fais.

Cette mémoire spatiale a des limites, 2-3 applications on ne perd pas le fil de ses pensées en basculant entre elles. Quand il y en a 10, on est obligé de se concentrer pour retrouver l’application désirée, on perd le fil. Mais puisqu’il s’agit de mémoire spatiale, de cheminement, posons des jalons (ce qui sert de point de repère, d’étape dans un raisonnement, dans un processus). Quand bien même on a 10 applications ouvertes, on en utilise seulement 2-3 sur la tâche courante, parfois il est nécessaire d’en utiliser une en plus. Au final on a besoin de réordonner rapidement notre mémoire spatiale, on pose donc un jalon pour s’y retrouver. Alt+Tab permet toujours de basculer entre les applications mais on configure un raccourci supplémentaire pour basculer systématiquement sur une application précise.

Il reste à configurer « en dur » les 3 applications qu’on utilise le plus afin de basculer entre les applications et réordonner notre mémoire spatiale sans perdre le fil de nos pensées. Attention les raccourcis clavier pour appeler ces applications doivent être soigneusement choisis/testés car si vous « cherchez » le raccourci ou que vous n’arrivez pas à le taper, vous perdez le fil. A l’heure actuelle j’ai configuré toogle.sh avec Terminator (Ctrl+Espace), Firefox (²) et je réfléchis encore pour Sublime Text.

#!/bin/bash
#
# apt install xdotool wmctrl
# wmctrl -lpx
# cat /proc/$(pgrep firefox)/status
# /home/cascador/scripts/toggle.sh Navigator.Firefox firefox
# /home/cascador/scripts/toggle.sh terminator.Terminator terminator
# /home/cascador/scripts/toggle.sh sublime_text.Sublime_text /opt/sublime_text/sublime_text
#

focused=$(xdotool getactivewindow getwindowpid)
pid_app=$(pgrep -u "$(whoami)" -x "${2##*/}" | head -n 1)

if [ -z "$pid_app" ]; then
    "$2";
else
	if [[ "$focused" == "$pid_app" ]]; then
    	xdotool getactivewindow windowminimize;
	else
    	wmctrl -x -R "$1";
	fi
fi

exit 0

Je suis parti de cet article, j’ai fait un grand ménage avant de me rendre compte que ça fonctionnait mal donc j’ai tout revu. Ça fait globalement la même chose qu’avec Guake (tiling terminal), ça affiche/cache l’application en appuyant sur un raccourci. Si on le configure avec Firefox par exemple, voici le fonctionnement : 1/ Si Firefox n’est pas lancé et qu’on appelle le script, il lance Firefox 2/ Si Firefox est lancé et au premier plan et qu’on appelle le script, il réduit Firefox basculant le focus sur l’application précédente 3/ Si Firefox est lancé mais pas au premier plan et qu’on appelle le script, il affiche Firefox au premier plan

Le script ne doit pas être modifié. C’est dans Paramètres, Clavier, Onglet Raccourcis d’applications (je suis sur Xubuntu) qu’on ajoute les commandes.

J’effectue également les modifications suivantes :

  • Peaufinage des fenêtres, Onglet Navigation : Cocher Naviguer parmi les fenêtres dans une liste, décocher Dessiner un cadre autour de la fenêtre mise en évidence lors de la navigation, voir Naviguer parmi les fenêtres de tous les espaces de travail
  • Gestionnaire de fenêtres, Clavier : Espace de travail suivant (F1). Je n’utilise que deux espaces de travail aussi appelés workspaces. Une bonne pratique est de segmenter les espaces de travail par activité. Par exemple un espace de travail pour communiquer : Thunderbird, Signal, client IRC etc. Si on décoche Naviguer parmi les fenêtres de tous les espaces de travail, on switche ensuite par espace de travail puis par application (plus facile à mémoriser)
  • Tableau de bord, Onglet Éléments, Bouton des fenêtres : Décocher Afficher le nom des boutons (cela permet notamment de se « forcer » à n’utiliser que le clavier pour se déplacer entre les applications)

Sinon il y a i3 et Sway ha ha ha !

Déjà 20 avis pertinents dans Alt-Tab, mémoire spatiale et toogle.sh

  • T’es vraiment un cas toi LOL
    J’ai utilisé Windows des années, le Alt+TAB est un classique que la majorité des power users Windows connait.
    Le CTRL+TAB est plus récent, genre Firefox et son « invention » des onglets pour naviguer, voire un peu avant.
    Je crois que la différence entre « utiliser Alt+TAB » ou ne pas l’utiliser vient de « utiliser beaucoup la souris ou utiliser beaucoup les raccourcis clavier ».
    J’utilise souvent (tout le tmeps ?) le clavier, beaucoup plus que la souris (CTRL+FR, CTRL+TAB, CTR+C/V/X), bref…
    Bientôt un article « Allumer son ordinateur » ? :P
  • Guliver
    « Firefox et son « invention » des onglets pour naviguer ».
    Ce qu’il ne faut pas lire…
    Ça fera plaisir aux utilisateurs d’Opéra d’apprendre que c’est Firefox qui a inventé les onglets !
  • Flyinva
    J’utilise toggle.sh avec quelques raccourcis pour Firefox, Nautilu, tilix et je vais voir pour vim (dans un terminal…).

    J’ai fait quelques modifications mineures dans le script :

    #!/bin/bash
    set -e
    set -eo pipefail
    set -o nounset

    #
    # wmctrl -lpx
    # cat /proc/$(pgrep firefox)/status
    # toggle.sh Navigator.Firefox firefox
    # toggle.sh tilix.Tilix tilix
    #

    pid_app=$(pgrep -u « $USER » -x « ${2##*/} » | head -n 1)

    if [ -z « $pid_app » ]; then
    « $2″&
    else
    focused=$(xdotool getactivewindow getwindowpid)
    if [[ « $focused » == « $pid_app » ]]; then
    xdotool getactivewindow windowminimize;
    else
    wmctrl -x -R « $1 »;
    fi
    fi

    # vim:set ai et sts=2 sw=2 tw=0:

  • ʟ·ɪɴᴀᴅᴀᴩᴛé
    Bonjour à tous,

    Le néophyte que je suis ne comprend pas à quoi correspond ${2##*/}.
    Quelqu’un pourrait m’expliquer brièvement ?

  • « Je mets ça sur le compte de 20 ans de Windows qui nivelle par le bas… »
    J’ai pas compris du tout, c’est une fonctionnalité qui existe depuis au moins W98 (le premier que j’ai utilisé).
    C’est quoi le rapport avec Windows et cette critique complètement gratuite et qui n’apporte rien ??

  • Je sais pas s’il apporte quelque-chose, mais j’en ai marre des critiques gratuites sur Windows ^^
    Désolé pour le manque de construction et « d’intérêt » de mon commentaire, il fallait que ça sorte à ce moment là ^^
    (pour moi, si Windows ne plait pas, autant ne pas l’utiliser (ok, c’est compliqué en milieu pro))

    Sinon, pour revenir sur l’article, je ne suis pas encore prêt à franchir le pas de changer la philo derrière le alt-tab. Pourquoi ? Parce que j’ai peur de devoir me rajouter une question supplémentaire: « est-ce que j’ai reconfiguré le alt-tab sur ce PC ? »

  • ʟ·ɪɴᴀᴅᴀᴩᴛé

    Merci pour l’explication, j’y vois plus clair :)
    Du coup, il me vient une autre interrogation : d’où vient/comment trouves-tu le ‘nom’ du logiciel qui sera affecté ?
    D’où viennent :

    Navigator.Firefox firefox
    terminator.Terminator terminator
    sublime_text.Sublime_text /opt/sublime_text/sublime_text

    C’est plutôt la forme que je ne comprends pas…

  • ʟ·ɪɴᴀᴅᴀᴩᴛé

    Justement, je crois que c’est Sublime qui m’a perdu… mais ok.
    Merci beaucoup.

    Petit à petit j’apprends…

Les commentaires sont fermés.