cd / ; apropos ; find * ;

cwm -- Un gestionnaire de fenĂȘtres efficace #

calm window manager ou cwm est un gestionnaire de fenĂȘtres inclus par dĂ©faut Ă  OpenBSD. Il me semble qu'il s'agit lĂ  d'une belle rĂ©ussite trĂšs bien pensĂ©e. L'Ă©quilibre entre fonctionnalitĂ©s, ergonomie et part de configuration laissĂ©e Ă  l'utilisateur est trouvĂ©. Pour ma part, ça m'aide Ă  ĂȘtre efficace et plus concentrĂ©.

Par contre, on ne va pas se mentir, quand on vient de gnome, ça peut ĂȘtre dĂ©routant au dĂ©but. Cela dit, si ça vous tente, je vous propose de faire un petit tour de ce gestionnaire de fenĂȘtre (disponible aussi sur les distributions GNU/Linux) pour dĂ©couvrir sa façon d'ĂȘtre. On tentera d'utiliser autant que possible les composants livrĂ©s avec OpenBSD par dĂ©faut.

DĂ©couverte #

Sous OpenBSD, pour lancer une session cwm, mettre dans le fichier ''~/.xsession'' la ligne suivante :

cwm

Une fois la session dĂ©marrĂ©e, vous avez devant vous un Ă©cran tout gris. Beurk. C'est normal cela dit, puisque ce n'est pas au gestionnaire de fenĂȘtres de gĂ©rer le fond d'Ă©cran. On va y remĂ©dier, ne vous en faĂźtes pas.

Tout d'abord, on va ouvrir un terminal. Pour ça, deux choix s'offrent à vous :

Pour dĂ©placer la fenĂȘtre, un glisser-dĂ©poser avec la souris tout en appuyant sur Alt fera votre bonheur. Pour redimensionner la fenĂȘtre, lĂ  aussi plusieurs possibilitĂ©s :

Pour fermer une fenĂȘtre, appuyez sur Ctrl-Alt-x.

Pour changer de fenĂȘtre, vous avez toujours Alt-Tab, ou bien vous cliquez sur le bureau pour avoir un menu de sĂ©lection de fenĂȘtre. On ne s'encombre pas avec une barre d'Ă©tat, on reste concentrĂ© sur son travail. :)

Vous pouvez aussi appuyer sur Ctrl-/ puis taper le nom de la fenĂȘtre. Si vous ne vous souvenez plus de son nom, appuyez sur Ctrl-a. À partir de ce moment, vous pouvez Ă©crire le nom de la fenĂȘtre recherchĂ©e pour filtrer les propositions, ou bien utiliser les flĂšches pour choisir votre bonheur et valider avec EntrĂ©e.

Encore plus fort : vous pouvez donner un label Ă  une fenĂȘtre pour la retrouver plus facilement ensuite avec le raccourci ''C-M-n.

Par exemple, voici la liste qui apparaĂźtra avec Firefox, un terminal avec vim ouvert, une horloge xclock et un autre terminal :

cwm-winlist1.png

Si j'Ă©cris le dĂ©but de le fenĂȘtre souhaitĂ©e (ici, vim), voici ce qu'il se passe:

cwm-winlist2.png

Les symboles "!" et "&" signifient respectivement que la fenĂȘtre est actuellement sĂ©lectrionnĂ©e ou cachĂ©e.

Ça semble faire beaucoup de raccourcis, mais ils ont tous une certaine logique et on s'y retrouve vite. Si vous n'aimez pas les raccourcis clavier, sachez que :

Dans la suite, j'écrirai "C" pour "Ctrl", "M" pour "Alt", "S" pour "Shift" et "4" pour la touche "Super" ou "Windows" qui ne sert à rien habituellement. Ces lettres sont celles utilisées dans la configuration.

Une des particularités de cwm est de permettre de :

Prenons un exemple. Vous voulez mettre une fenĂȘtre dans le groupe 5 : on sĂ©lectionne le groupe 5 avec C-M-5, puis on focus la fenĂȘtre si ce n'est pas dĂ©jĂ  fait, et enfin on fait C-M-g : le contour de la fenĂȘtre change de couleur. Si on rappuie sur C-M-g, alors la couleur change encore car la fenĂȘtre a Ă©tĂ© retirĂ©e du groupe.

À retenir :

À partir de ce moment-lĂ , vous voudrez certainement Ă©diter le fichier de configuration ''~/.cwmrc'' afin d'y rĂ©gler 2-3 choses et peut-ĂȘtre rendre plus pratiques les Ă©lĂ©ments dĂ©crits auparavant.. Si vous souhaitez savoir ce que vous pouvez configurer, les pages "man cwm" et "man cwmrc" vous en diront plus.

Pour finir, je liste ci-dessous les raccourcis par défaut que je trouve trÚs pratiques:

configuration : .cwmrc #

sticky #

Avec cette option, les fenĂȘtres ouvertes appartiennent au mĂȘme groupe que celui de la fenĂȘtre actuellement sĂ©lectionnĂ©e.

sticky yes

Menu clic-droit #

Ce menu permet notamment de gĂ©rer les fenĂȘtres par click

command "   . off " "doas /sbin/shutdown -hp now"
command "   + Maxwin  " "maxwin"
command "   x Closewin  " "xdotool selectwindow windowclose"
command "   - Hidewin " "xdotool selectwindow windowminimize"
command "   ▾ web " firefox 
command "   ▾ fm " pcmanfm
command "   ▾ office " libreoffice
command "   * next    " "mpc next"
command "   * prev    " "mpc prev"
command "   * toggle  " "mpc toggle"
command "--------------" " "
command "   . lock " "xlock -mode space"
command "   . zzz " zzz
command "   . reboot " "doas /sbin/reboot"
command "   . off " "doas /sbin/shutdown -hp now"

Tiling rapide #

Pour un arrangement rapide en mode "tiling" des fenĂȘtres (redimensionnĂ©es pour occuper tout l'Ă©cran les unes Ă  cĂŽtĂ© des autres), j'utilise Alt-t ou Alt-Shift-t pour un arrangement horizontal ou vertical. L'option "vtile" permet de dĂ©finir le pourcentage de l'Ă©cran utilisĂ© par la fenĂȘtre Ă  gauche.

vtile 55
bind-key M-t window-htile
bind-key MS-t window-vtile

Gestion des groupes #

J'utilise les groupes qui sont à portée des doigts à partir de la touche Alt, soit les groupes 1,2,3,4 et 5.

Je veux pouvoir les afficher ou cacher au choix et pouvoir attribuer un groupe Ă  une fenĂȘtre:

bind-key M-ampersand        group-toggle-1
bind-key M-eacute           group-toggle-2
bind-key M-quotedbl         group-toggle-3
bind-key M-apostrophe       group-toggle-4
bind-key M-parenleft        group-toggle-5

bind-key MS-ampersand       window-movetogroup-1
bind-key MS-eacute          window-movetogroup-2
bind-key MS-quotedbl        window-movetogroup-3
bind-key MS-apostrophe      window-movetogroup-4
bind-key MS-parenleft       window-movetogroup-5

Sur un clavier azerty, ce ne sont pas les chiffres qui sont accessibles directement mais les symboles ''&é"'(''. Pour trouver leur nom de code, entrez la commande ''xev'' dans un terminal puis appuyez sur la touche désirée pour voir apparaßtre son nom.

Raccourcis de la souris #

Je veux pouvoir dĂ©placer une fenĂȘtre sans devoir aller chercher la touche alt : je le fais avec le clic-milieu :

bind-mouse 0-2  window-move

Sinon, scroller sur le fond d'Ă©cran (ou xclock) change le volume sonore:

bind-mouse 0-4 "sndioctl -q output.level=+0.1"
bind-mouse 0-5 "sndioctl -q output.level=-0.1"

Le fond d'Ă©cran #

Le fond d'écran est chargé avec GraphicsMagick au démarrage. En fait, ça tourne entre plusieurs fonds d'écran. Voici un bout de script pour mettre une image en fond.

gm display -background black -backdrop -window root "${1}"

Pour rester simple, vous pouvez mettre une couleur pleine avec xsetroot (pas besoin d'installer quoi que ce soit) :

xsetroot -solid steelblue

Le démarrage de session #

Pour prendre en compte tous ces petits ajouts à chaque démarrage, modifiez le script ''~/.xsession'' ainsi :

#!/bin/sh
.  ~/.profile
# Fond d'Ă©cran
xsetroot -solid black &
# Chargement des options pour xterm
xrdb -merge ~/.Xresources &
# Verouillage automatique avec xlock
xidle -timeout 600 -program "xlock" &
cwm

Les "&" à la fin sont importants pour ne pas bloquer à chaque ligne. Ajoutez dans ce fichier tous les outils que vous souhaitez lancer au démarrage de session.

Trouver une fenĂȘtre parmi des centaines #

Utilisez le raccourci "M-/", puis "C-a" pour toutes les lister. Entrez le nom d'une fenĂȘtre pour la sĂ©lectionner.

Obtenir une barre de status #

Tout d'abord, prévoyez une marge sur le bord de l'écran dans la configuration de cwm :

gap 18 1 1 1     # margin all around to click on desktop

Bien sûr, vous pouvez installer conky ou lemonbar pour avoir votre barre d'information. Le cas échéant, vous penserez à précisez dans la configuration d'ignorer ces applications avec la mention ignore "conky" par exemple.

Aller plus loin #

Comme d'habitude sous OpenBSD, le manuel est trĂšs complet et liste mĂȘme tous les raccourcis par dĂ©faut (menu ssh, donner des petits "label" aux fenĂȘtres pour les retrouver facilement ensuite...")

man cwm