Voici la troisième partie concernant la configuration de WMFS, au menu de ce billet : Les raccourcis clavier.
Que serait un tiling manager sans raccourcis clavier ?
Comme vous vous en doutez, WMFS propose par défaut un bon nombre de possibilités et bien évidement il permet de gérer, créer et supprimer vos raccourcis en toute simplicité !
Toute l’action se déroulera dans la section « [keys] [/keys] » de votre wmfsrc ou le cas échéant dans le fichier keys passé en @include ( voir ici pour de plus amples informations ).
Syntaxe :
[key] mod = {"touche"} key = "touche" func = "fonction" cmd = "commande" [/key]
Raccourcis clavier par défaut :
Voici la liste des raccourcis clavier activés par défaut que j’ai partiellement traduite :
# Recharger le fichier de configuration de WMFS. [key] mod = {"Alt", "Control"} key = "r" func = "reload" [/key] # Ouvrir un terminal. [key] mod = {"Control"} key = "Return" func = "spawn" cmd = "xterm" [/key] # Fermer le client sélectionné. [key] mod = {"Alt"} key = "q" func = "client_kill" [/key] # Quitter WMFS. [key] mod = {"Control", "Alt", "Shift"} key = "q" func = "quit" [/key] # Échanger le client sélectionné avec le suivant. [key] mod = {"Alt"} key = "t" func = "client_swap_next" [/key] # Échanger le client sélectionné avec le précèdent. [key] mod = {"Alt", "Shift"} key = "t" func = "client_swap_prev" [/key] # Passer le client sélectionné en positon master. [key] mod = {"Control"} key = "m" func = "client_set_master" [/key] # Maximiser le client sélectionné. [key] mod = {"Alt"} key = "m" func = "toggle_max" [/key] # Passer le client sélectionné en mode "free". [key] mod = {"Alt"} key = "f" func = "toggle_free" [/key] # Modifier la position du tableau de bord. [key] mod = {"Alt"} key = "b" func = "toggle_infobar_position" [/key] [key] mod = {"Alt", "Shift"} key = "b" func = "toggle_infobar_display" [/key] # Toggle the resizehint of the current tag/screen [key] mod = {"Shift", "Control"} key = "r" func = "toggle_resizehint" [/key] # Cacher/montrer les tags non utilisés. [key] mod = {"Shift", "Control"} key = "t" func = "toggle_tagautohide" [/key] # Sélectionner le client suivant. [key] mod = {"Alt"} key = "Tab" func = "client_next" [/key] # Sélectionner le client précédent. [key] mod = {"Alt","Shift"} key = "Tab" func = "client_prev" [/key] # Passer au tag suivant. [key] mod = {"Control"} key = "Right" func = "tag_next" [/key] # Passer au tag précédent. [key] mod = {"Control"} key = "Left" func = "tag_prev" [/key] # Passer au tag utilisé suivant. [key] mod = {"Control","Alt"} key = "Right" func = "tag_next_visible" [/key] # Passer au tag utilisé précédent. [key] mod = {"Control","Alt"} key = "Left" func = "tag_prev_visible" [/key] # Passer au layout suivant. [key] mod = {"Alt"} key = "space" func = "layout_next" [/key] # Passer au layout précédent. [key] mod = {"Alt", "Shift"} key = "space" func = "layout_prev" [/key] # Élargir le client qui a le focus. [key] mod = {"Alt"} key = "l" func = "set_mwfact" cmd = "+0.025" [/key] # Réduire le client qui a le focus. [key] mod = {"Alt"} key = "h" func = "set_mwfact" cmd = "-0.025" [/key] # Ajouter le client sélectionné au master. [key] mod = {"Alt"} key = "d" func = "set_nmaster" cmd = "+1" [/key] # Enlever le dernier client ajouté au master. [key] mod = {"Alt", "Shift"} key = "d" func = "set_nmaster" cmd = "-1" [/key] # Accéder au lanceur d'applications. [key] mod = {"Alt"} key = "p" func = "launcher" cmd = "launcher_exec" [/key] # Accéder au lanceur ViWMFS [key] mod = {"Alt"} key = "Escape" func = "launcher" cmd = "viwmfs" [/key] # Aller au tag x. [key] mod = {"Alt"} key = "F1" func = "tag" cmd = "1" [/key] [key] mod = {"Alt"} key = "F2" func = "tag" cmd = "2" [/key] [key] mod = {"Alt"} key = "F3" func = "tag" cmd = "3" [/key] [key] mod = {"Alt"} key = "F4" func = "tag" cmd = "4" [/key] [key] mod = {"Alt"} key = "F5" func = "tag" cmd = "5" [/key] [key] mod = {"Alt"} key = "F6" func = "tag" cmd = "6" [/key] [key] mod = {"Alt"} key = "F7" func = "tag" cmd = "7" [/key] [key] mod = {"Alt"} key = "F8" func = "tag" cmd = "8" [/key] [key] mod = {"Alt"} key = "F9" func = "tag" cmd = "9" [/key] # Déplacer le client sélectionné sur le tag x. [key] mod = {"Alt", "Shift"} key = "F1" func = "tag_transfert" cmd ="1" [/key] [key] mod = {"Alt", "Shift"} key = "F2" func = "tag_transfert" cmd ="2" [/key] [key] mod = {"Alt", "Shift"} key = "F3" func = "tag_transfert" cmd ="3" [/key] [key] mod = {"Alt", "Shift"} key = "F4" func = "tag_transfert" cmd ="4" [/key] [key] mod = {"Alt", "Shift"} key = "F5" func = "tag_transfert" cmd ="5" [/key] [key] mod = {"Alt", "Shift"} key = "F6" func = "tag_transfert" cmd ="6" [/key] [key] mod = {"Alt", "Shift"} key = "F7" func = "tag_transfert" cmd ="7" [/key] [key] mod = {"Alt", "Shift"} key = "F8" func = "tag_transfert" cmd ="8" [/key] [key] mod = {"Alt", "Shift"} key = "F9" func = "tag_transfert" cmd ="9" [/key] # Toggle additional tags (x) on the current tag [key] mod = {"Alt", "Super"} key = "F1" func = "tag_toggle_additional" cmd ="1" [/key] [key] mod = {"Alt", "Super"} key = "F2" func = "tag_toggle_additional" cmd ="2" [/key] [key] mod = {"Alt", "Super"} key = "F3" func = "tag_toggle_additional" cmd ="3" [/key] [key] mod = {"Alt", "Super"} key = "F4" func = "tag_toggle_additional" cmd ="4" [/key] [key] mod = {"Alt", "Super"} key = "F5" func = "tag_toggle_additional" cmd ="5" [/key] [key] mod = {"Alt", "Super"} key = "F6" func = "tag_toggle_additional" cmd ="6" [/key] [key] mod = {"Alt", "Super"} key = "F7" func = "tag_toggle_additional" cmd ="7" [/key] [key] mod = {"Alt", "Super"} key = "F8" func = "tag_toggle_additional" cmd ="8" [/key] [key] mod = {"Alt", "Super"} key = "F9" func = "tag_toggle_additional" cmd ="9" [/key] # Changer d'écran [key] mod = {"Super"} key = "Tab" func = "screen_next" [/key] [key] mod = {"Super", "Shift"} key = "Tab" func = "screen_prev" [/key] # Passer le client sélectionné à l'écran suivant/précédent [key] mod = {"Super", "Shift"} key = "a" func = "client_screen_next" [/key] [key] mod = {"Super", "Shift"} key = "z" func = "client_screen_prev" [/key] # Mode "exposé" [key] mod = {"Alt"} key = "e" func = "toggle_tag_expose" [/key]
Création d’un raccourci clavier :
Tout d’abord, petit rappel de la syntaxe :
[key] mod = {"Touche"} key = "Touche" func = "Fonction" cmd = "Commande" [/key]
Pour suivre, voici un exemple qui permet de lancer Firefox via la combinaison des touches [ Super + F ] :
# Lancer Firefox. [key] mod = {"Super"} key = "f" func = "spawn" cmd = "firefox" [/key]
Cet autre exemple permet d’effectuer une capture d’écran avec Scrot puis de l’ouvrir avec Mirage via la touche [ Imprimer ] :
# Effectuer une capture d'écran. [key] key = "Print" func = "spawn" cmd = "scrot -e 'mirage $f'" [/key]
Ici, on attribue deux fonctions à un même raccourci clavier :
# Déplacer et suivre le client sur le tag suivant. [key] mod = {"Shift","Alt"} key = "Right" func = "tag_transfert_next" [/key] [key] mod = {"Shift","Alt"} key = "Right" func = "tag_next" [/key]
Enfin, un dernier exemple permettant d’afficher un menu :
# Afficher le menu "root". [key] mod = {"Super","Alt"} key = "space" func = "menu" cmd = "rootmenu" [/key]
Les touches multimédia :
Si vous êtes en possession d’un clavier disposant de touche multimédia, sachez qu’il est tout à fait possible de les prendre en charge. Voici de suite un exemple :
# Lancer claws-mail (keycodes) [key] key = "XF86Mail" func = "spawn" cmd = "claws-mail" [/key]
La syntaxe est comme vous pouvez le voir fort simple ! Afin de connaître la valeur à utiliser, je vous conseille fortement d’utiliser l’utilitaire xev :
xorg-xev est un utilitaire livré avec xorg et xorg-apps, il n’est donc logiquement pas nécessaire de l’installer…
$ yaourt -Si xorg-xev Dépôt : extra Nom : xorg-xev Version : 1.1.0-2 URL : http://xorg.freedesktop.org/ Licences : custom Groupes : xorg-apps xorg Fournit : -- Dépend de : libx11 Dépendances opt. : -- Est en conflit avec : -- Remplace : -- A télécharger : 9,98 K Taille (installé) : 64,00 K Paqueteur : Jan de Groot <jgc@archlinux.org> Architecture : x86_64 Compilé le : jeu. 10 mars 2011 16:17:41 CET somme MD5 : 89f853c37bc58185ea043e9b71e14143 Description : Print contents of X events
Lancez xev dans votre terminal :
$ xev
Appuyez ensuite sur un touche multimédia, xev devrait vous retourner une notification de ce genre :
KeyRelease event, serial 30, synthetic NO, window 0x1c00001, root 0x15d, subw 0x0, time 7022752, (106,269), root:(1080,321), state 0x10, keycode 163 (keysym 0x1008ff19, XF86Mail), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False
Dans cette exemple, la valeur qui sera utilisée est : « XF86Mail »
Fin de cet article qui je l’espère vous donnera une raison de plus pour essayer et pourquoi pas adopter WMFS .
Rendez vous pour un prochain acte qui concernera le fichier status.sh !
Dans la même catégorie :
12 avril 2011 à 19:46
[...] WMFS, acte III : Les raccourcis claviers avr [...]
30 avril 2011 à 9:30
[...] WMFS, acte III : Les raccourcis claviers [...]
3 mai 2011 à 18:36
[...] WMFS, acte III : Les raccourcis claviers [...]
14 mai 2011 à 18:46
Pour éviter de prendre trop d’infos inutiles de xev, un petit grep :
xev | grep keycode
Sinon, très sympa ta série sur wmfs. Je m’y mets aussi, mais doucement quand j’ai un peu de temps libre…
22 mai 2011 à 13:37
Super sympa cette série sur WMFS, moi qui voulait changer de WM, je vais pouvoir m’y mettre tranquillement en utilisant les articles de ton blog
Ne serait il pas possible que tu mette ces articles sur le Wiki de WMFS ? Cela permettrait d’avoir une bonne doc en français sur le site du projet
22 mai 2011 à 19:22
@Anyone : Ravi que cela te serve ! Pour ce qui est du wiki de wmfs il est déjà très bien fourni ! À la rigueur mettre un lien vers cette série d’article serait peut être une bonne chose… Une idée à creuser
15 juin 2011 à 18:00
[...] WMFS, acte III : Les raccourcis claviers [...]