site
header
Rendez-vous sur Arrakis
Le site perso d'un hacker libriste curieux crêpophile et étourdi

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é.

apercu de cwm

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 et configuration

Sous OpenBSD, pour lancer une session cwm, je n'ai qu'à 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.

Ç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 :

À partir de ce moment-là, vous voudrez certainement éditer le fichier de configuration ~/.cwmrc afin d'y régler 2-3 choses.
Si vous souhaitez savoir ce que vous pouvez configurer, les pages “man cwm” et “man cwmrc” vous en diront plus.

Via ce lien, vous trouverez mon fichier de configuration si vous voulez regarder ce qui est possible. Rien de très étonnant dans ce que j'ai mis hein.
J'attire juste votre attention sur les éléments de configuration suivants :

Menu clic-droit

command "   Web   " iridium
command "   Mail  " 'xterm -class "mutt" -fa "Hack:size=10:antialias=true" mutt'
command "  Files  " pcmanfm
command " > next  " "mpc next"
command " < prev  " "mpc prev"
command "|> toggle" "mpc toggle"
command "   top   " "xterm top"

Avec Alt-Tab, je passe d'un groupe à l'autre rapidement

bind-key M-Tab group-cycle
bind-key MS-Tab group-rcycle

Alt-k et Alt-j font circuler entre les fenêtres

bind-key M-j window-cycle
bind-key M-k window-rcycle

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-Return comme dans dwm. M-S-t permet un arrangement vertical. Et ça, ça claque des fesses ! :D

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

à la dwm

Puisque je parle de dwm, j'utilise les mêmes raccourcis pour passer d'un groupe à l'autre et assigner les fenêtres à des groupes facilement. Si vous cherchez les noms des touches, tapez “xev” dans un terminal puis appuyez sur la touche, vous verrez alors son petit nom.

bind-key M-ampersand        group-only-1
bind-key M-eacute           group-only-2
bind-key M-quotedbl         group-only-3
bind-key M-apostrophe       group-only-4
bind-key M-parenleft        group-only-5
bind-key M-minus            group-only-6
bind-key M-egrave           group-only-7
bind-key M-underscore       group-only-8
bind-key M-ccedilla         group-only-9
bind-key M-agrave           group-toggle-all

# Déplacer les fenêtres dans un groupe
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
bind-key MS-minus            window-movetogroup-6
bind-key MS-egrave           window-movetogroup-7
bind-key MS-underscore       window-movetogroup-8
bind-key MS-ccedilla         window-movetogroup-9

Et tout autour?

Le fond d'écran

Le fond d'écran est chargé avec Imagemagick au démarrage. En fait, ça tourne entre plusieurs fonds d'écran. Voici un bout de script pour mettre une image en fond, sans avoir autre choseà installer.

RESOL=$(xrandr | sed -n '3p' | grep -Eo "[0-9]+x[0-9]+")
display -resize $RESOL\! -window root "${1}"

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

xsetroot -solid steelblue

Le terminal

J'ai décidé d'utiliser les outils livrés par défaut avec OpenBSD. Donc xterm au lieu de st. Ici, vous trouverez le fichier de configuration pour les couleurs, faire du copier/coller dans le terminal…
Ce fichier doit être chargé au démarrage avec la commande

xrdb -merge ~/.Xdefaults

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 steelblue &
 # Chargement des options pour xterm
 xrdb -merge ~/.Xdefaults &
 # Verouillage automatique avec xlock
xidle -timeout 600 -program "xlock" &
 conky &

 cwm

Les “&” à la fin sont importants. 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.

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

Vous voudrez peut-être voir l' article d'origine écrit avant cette page.

[⚛ ATOM, Liens, Commenter, Chercher, Soutenir ♥️]