cwm

noDE -- cwm -- doc

sources : article de prx, 'man openbsd-cwm' & 'man cwmrc'.

présentation

CWM est un gestionnaire de fenêtre en 'stacking', c'est à dire qu'il empile les fenêtres librement sur le bureau, mais il sait aussi faire du 'tiling', en organisant les clients pour remplir tout l'espace sur l'écran. il est développé dans le système de base d'OpenBSD depuis la version 4.2 mais est aussi disponible pour les autres OS.
cwm est entièrement pilotable au clavier. il sait aussi utiliser la souris pour déplacer ou redimensionner les clients et afficher des menus.
cwm n'a pas de bureaux virtuels mais fonctionne sur le principe des groupes de clients, ce qui permet de simuler différents bureaux sans soucis. les groupes permettent de rassembler certaines applications de façon automatique afin de vous aider à organiser vos activités.
cwm est capable de nommer des clients à votre convenance et utilise des menus permettant de rechercher un client depuis le 'windowname', le 'label', ou depuis l'application utilisée. il possède aussi un menu 'ssh' qui lit votre fichier ~/.ssh/known_hosts afin de vous aider à vous connecter.
cwm ne décore pas les clients hormis une bordure colorée configurable, ne gère pas de 'panel' ni autre gadget (f)utile, bref... the calm window manager porte bien son nom :).

installation

CWM est présent par défaut sur OpenBSD et est aussi intégré dans les dépôts Debian.

pour l'installer depuis les dépôts Debian (openbsd-cwm sera installé dans /usr/bin/) :

apt install cwm

pour installer la dernière version depuis les sources git, commencer par installer les dépendances :

apt install build-essential libx11-dev libxinerama-dev libxft-dev libxrandr-dev bison

télécharger les sources git puis lancer l'installation (cwm sera installé dans /usr/local/bin/) :

git clone https://github.com/leahneukirchen/cwm.git
cd cwm/
make
sudo make install

lancement

si vous avez un gestionnaire de connexion (GDM, Lightdm), cwm sera reconnu et listé dans vos sessions disponibles.
le nom variera selon votre OS : sur OpenBSD, il conserve son nom d'origine, sur Debian, l'exécutable se nomme openbsd-cwm.
si vous fonctionnez avec 'startx' sur Debian, cwm se lancera simplement depuis votre ~/.xinitrc grâce à :

#launch window manager
exec openbsd-cwm

si vous avez installé cwm depuis les sources git et que vous voulez lancer cwm depuis votre gestionnaire de connexion, vous devrez créer un lanceur cwm.desktop dans /usr/share/xsessions :

[Desktop Entry]
Name=cwm
Comment=Lightweight window manager for X11
Exec=cwm
Terminal=False
TryExec=cwm
Type=Application
Keywords=wm;windowmanager;window;manager;cwm;

si vous avez installé cwm depuis les sources git, placez dans votre ~/.xinitrc :

exec cwm

pour lancer une session cwm sur OpenBSD, placez dans votre ~/.xsession :

cwm

configuration

la configuration de cwm passe par l'édition de son fichier de configuration ~/.cwmrc. ce fichier permet de définir certaines options, les raccourcis clavier pour la gestion de cwm, des clients, le lancement des programmes ou applications, les groupes etc.
le fichier de configuration par défaut n'existe pas, vous devez le créer et l'éditer, ne serait-ce que pour adapter les raccourcis au clavier français ;). les options spécifiées dans le ~/.cwmrc s'ajoutent ou écrasent les valeurs par défaut de cwm.
les options par défaut sont disponibles dans le manuel de cwmrc :

man cwmrc

une traduction complète de ce manuel est disponible dans ce wiki.

options de configuration

en dehors des raccourcis clavier, voici les options de base que vous pouvez spécifier dans votre ~/.cwmrc. les changements sont visibles après avoir rechargé cwm grâce aux touches 'Control-Alt-Shift-r'.
pour l'exemple, voici celui de prx sur OpenBSD.

optiondescription
borderwidth pixels largeur de la bordure des clients.
color activeborder color couleur de la bordure du client actif.
color inactiveborder color couleur de la bordure des clients inactifs.
color groupborder color couleur de la bordure du client lors d'un regroupement.
color ungroupborder color couleur de la bordure du client lors d'une dissociation.
color urgencyborder color couleur de la bordure des clients réclamant l'attention.
fontname font police utilisée dans les menus au format Xft.
color font color couleur de la police par défaut des menus.
color selfont color couleur de la police de l'entrée sélectionnée dans les menus.
color menubg color couleur des menus par défaut.
color menufg color couleur de la bordure des menus.
gap top bottom left right définir les marges d'affichage en pixels.
sticky yes|no active le groupe-automatique : les nouveaux clients seront affectés au groupe actif si yes.
moveamount pixels distance par défaut utilisée lors des déplacements ou redimensionnements des clients en pixels.

raccourcis clavier

cwm se pilote au clavier et (ab)use d'autant de raccourcis clavier que vous voulez : il suffit de les ajouter dans votre ~/.cwmrc.
les touches de modifications utilisées par cwm :

  • M=Alt
  • C=Control
  • S=Shift
  • 4=Super
  • M1=clic-gauche
  • M2=clic-central
  • M3=clic-droit

les raccourcis par défaut. attention : ils sont prévus pour un clavier qwerty.

raccourcisaction
CM-Return ouvre un terminal.
CM-Delete verrouiller l'écran.
M-Return masquer le client actif.
M-Down passe le client actif au second plan.
M-Up passe le client actif au premier plan.
M-/ recherche un client depuis un menu.
C-/ rechercher une application depuis un menu.
CM-n nomme le client actif pour une recherche facilité.
M-Tab / MS-Tab navigue parmis les clients du groupe actif.
CM-x ferme le client actif.
CM-[n] affiche/masque le groupe 'n', avec 'n' entre 1 & 9.
CM-a affiche/masque tous les groupes.
CM-g groupe/degroupe le client actif.
M-Right / M-Left navigue entre les groupes actifs.
CMS-f fixe/libère les dimensions du client actif.
CM-s affecte ou non le client actif à tous les groupes.
CM-f affiche le client actif en plein-écran ou pas.
CM-m de/maximise le client actif.
CM-= de/maximise verticalement le client actif.
CMS-= de/maximise horizontalement le client actif.
M-[hjkl] déplace le client actif selon 'moveamount' (cwmrc).
MS-[hjkl] déplace le client actif selon 10x'moveamount' (cwmrc).
CM-[hjkl] redimensionne le client actif selon 'moveamount' (cwmrc).
CMS-[hjkl] redimensionne le client actif seon 10x'moveamount' (cwmrc).
M-? lance le menu "exec" pour ouvrir une application.
M-. ouvre le menu 'ssh'. ce menu lit le fichier ~/.ssh/known_hosts pour l'auto-completion.
CM-w ouvre le menu 'window-manager' permettant de changer de gestionnaire de fenêtres.
CMS-r relance cwm : relecture du ~/.cwmrc.
CMS-q quitter la session cwm.
M-M1 déplace le client actif.
CM-M1 groupe/degroupe le client actif.
M-M2 redimensionne le client actif.
M-M3 passe le client actif au second plan.
CMS-M3 masque le client actif.

manuel français de cwm

3hg vous offre la traduction complète du manuel de cwm. gardez à l'esprit que ce manuel est prévu pour les claviers qwerty :

OPENBSD-CWM(1)  BSD General Commands Manual

NOM
    openbsd-cwm — un gestionnaire de fenêtre léger et efficace pour X11

SYNOPSIS
    openbsd-cwm [-v] [-c file] [-d display]

DESCRIPTION
    openbsd-cwm est un gestionnaire de fenêtre pour X11 disposant de 
    nombreuses fonctionnalités qui se concentre sur l'efficacité et la 
    transparence de la gestion des fenêtres, tout en conservant une 
    esthétique simple et agréable.

    Les options sont les suivantes :

    -c file
    spécifier un fichier de configuration. par défaut, cwm charge ~/.cwmrc 
    s'il est présent. tous les messages d'erreur de lecture de cwmrc sont 
    envoyés en stderr; cependant, cwm continuera à lire le reste du cwmrc.

    -d display
    spécifier l'écran à utiliser.

    -v
    mode verbeux. plusieurs '-v' augmentent la verbosité.

    les actions de cwm sont initiées via les raccourcis clavier ou souris. 
    les notations suivantes seront utilisées pour identifier les touches 
    de modification :

    C   touche Control.
    M   touche Atl.
    S   touche Shift.
    4   touche Super (logo windows).
    M1  clic-gauche de souris.
    M2  clic-central de souris.
    M3  clic-droit de souris.

    les raccourcis clavier par défaut sont :

    CM-Return   ouvrir un nouveau terminal.
    CM-Delete   verrouiller l'écran.
    M-Return    masquer la fenêtre active.
    M-Down      passer la fenêtre active en second plan.
    M-Up        passer la fenêtre active en premier plan.
    M-slash     rechercher une fenêtre.
    C-slash     rechercher une application.
    CM-n        étiqueter une fenêtre.
    M-Tab       naviguer parmis les fenêtres visibles.
    MS-Tab      naviguer à l'envers parmis les fenêtres visibles.
    CM-x        fermer la fenêtre active.
    CM-[n]      affiche/masque le groupe n, avec n entre 1 et 9.
    CM-a        affiche/masque tous les groupes.
    CM-g        de/groupe la fenêtre active.
    M-Right     naviguer parmis les groupes actifs.
    M-Left      naviguer à l'envers parmis les groupes actifs.
    CMS-f       fixe/libère les dimensions de la fenêtre active.
    CM-s        dé/colle la fenêtre active.
    CM-f        mode plein-écran oui/non pour la fenêtre active.
    CM-m        de/maximise la fenêtre active.
    CM-equal    de/maximise verticalement la fenêtre active.
    CMS-equal   de/maximise horizontalement la fenêtre active.
    M-[hjkl]    déplace la fenêtre ative selon 'moveamount'.
    MS-[hjkl]   déplace la fenetre active selon 10x'moveamount'.
    CM-[hjkl]   redimensionne la fenêtre active selon 'moveamount'.
    CMS-[hjkl]  redimensionne la fenêtre active selon 10x'moveamount'.
    M-question  ouvre le menu "exec".
    M-period    ouvre le menu "ssh". ce menu va lire $HOME/.ssh/known_hosts 
                pour proposer l'auto-completion. ssh sera exécuté dans un 
                terminal.
    CM-w        ouvre le menu "windowmanager" qui permet de changer de 
                gestionnaire de fenêtre.
    CMS-r       relancer cwm : relecture du ~/.cwmrc.
    CMS-q       quitter cwm.

    les actions de la souris :

    M-M1         déplace la fenêtre active.
    CM-M1        de/groupe la fenêtre active.
    M-M2         redimensionne la fenêtre active.
    M-M3         passe la fenêtre active au second plan.
    CMS-M3       masque la fenêtre active.

    les touches suivantes sont utilisées pour la recherche et les menus :

    [Return]              sélectionne l'entrée.
    [Down], C-s or M-j    entrée suivante.
    [Up], C-r or M-k      entrée précédente.
    [Backspace] or C-h    retour arrière.
    C-u                   effacer l'entrée.
    C-a                   lister toutes les entrées.
    [Esc]                 annuler.

    cwm relit son fichier de configuration lorsqu'il reçoit un signal SIGHUP,
    en s'exécutant avec le nom et les arguments avec lesquels il a été démarré.
    Cela équivaut à la fonction de redémarrage.

RECHERCHE
    cwm offre la possibilité de rechercher des fenêtres par leur titre actuel,
    leurs anciens titres et leur étiquette. la priorité pour les résultats de la
    recherche est: le libellé, le titre actuel, les anciens titres dans l'ordre
    inverse et enfin le nom de la classe de fenêtre. cwm conserve un historique 
    des 5 titres précédents d'une fenêtre.

    lors de la recherche, le caractère le plus à gauche de la liste de résultats
    peut afficher un indicateur:
        '!'    la fenêtre est active.
        '&'    la fenêtre est cachée.

GROUPES
    cwm a la possibilité de regrouper des fenêtres et d'utiliser les groupes pour
    effectuer des opérations sur l'ensemble du groupe au lieu d'une seule fenêtre.
    Avec l'option "sticky", elle peut être utilisée pour émuler des bureaux virtuels.

MENUS
    les menus sont rappelés en cliquant avec la souris sur la fenêtre racine (le
    bureau) :

    M1    affiche la liste des fenêtres. sélectionner une entrée donne le focus à
          la fenêtre concernée, en la démasquant si nécessaire.
    M2    affiche la liste des groupes. sélectionner un groupe l'affiche ou le
          masque selon son état initial.
    M3    affiche la liste des applications définie dans ~/.cwmrc.

ENVIRONEMENT
    DISPLAY    openbsd-cwm démarre sur l'écran par défaut sauf si l'option '-d'
               est utilisée.

FICHIERS
    ~/.cwmrc    fichier de configuration par défaut pour cwm.

VOIR AUSSI
    cwmrc(5)

HISTORIQUE
    cwm a été à l'origine inspiré par evilwm, mais a été réécrit à partir de zéro
    en raison de limitations dans le code d'evilwm. La réécriture a emprunté du
    code à 9wm, mais ce code a depuis été supprimé ou réécrit.

    cwm est apparu pour la première fois dans OpenBSD 4.2.

AUTHORS
    cwm a été développé par Marius Aamodt Eriksen ⟨marius@monkey.org⟩ avec les
    contributions d'Andy Adamson ⟨dros@monkey.org⟩, Niels Provos ⟨provos@monkey.org⟩
    et Antti Nykänen ⟨aon@iki.fi⟩. Idées, discussion avec beaucoup d'autres.

BSD    July 3, 2020    BSD

manuel français de cwmrc

~/.cwmrc est le fichier de configuration par défaut de cwm. voici la traduction française de son manuel :

CWMRC(5)  BSD File Formats Manual

NOM
     cwmrc — calm window manager configuration file

DESCRIPTION
    cette page de manuel décrit le fichier de configuration cwm (1).

    la ligne courante peut être étendue sur plusieurs lignes à l'aide d'une barre
    oblique inversée ("\"). les commentaires peuvent être placés n'importe où dans
    le fichier à l'aide d'une marque de hachage ("#") et s'étendre jusqu'à la fin
    de la ligne courante. soyez prudent lors de la mise en commentaire d'un texte
    sur plusieurs lignes: le commentaire est effectif jusqu'à la fin du bloc.

    les arguments contenant des espaces doivent être entourés de guillemets (" ").

    les options suivantes sont acceptées :

    autogroup group windowclass
    autogroup group windowname,windowclass
        ajoutez automatiquement de nouvelles fenêtres au groupe si leur propriété
        de classe correspond à 'windowclass', ou si leur nom et leurs propriétés de
        classe correspondent respectivement à 'windowname' et 'windowclass'. le
        dernier match plus spécifique gagne. 'groupe' est un nombre compris entre
        0 et 9. si le groupe est '0', les fenêtres correspondantes ne seront ajoutées
        à aucun groupe; ceci peut être utilisé pour remplacer le 'sticky group mode'.

        Les valeurs de nom et de classe, respectivement, pour les fenêtres
        existantes sont toutes deux définies dans la propriété WM_CLASS et peuvent
        être obtenues à l'aide de xprop (1).

    bind-key key function
        lier ou relier la touche clé à une fonction. les touches de modification
        viennent en premier, suivies d'un '-', puis d'un nom de keysym, extrait de
        /usr/X11R6/include/X11/keysymdef.h.

        les modificateurs suivants sont reconnus :

            C       Control.
            M       Alt.
            S       Shift.
            4       Super (windows).
            5       AltGr.

        la fonction peut être l'une des 'BIND FUNCTION LIST' (voir plus bas) ou
        une ligne de commande à exécuter.

    bind-mouse button function
        lier ou relier le bouton à une fonction. les touches de modification
        viennent en premier, suivies d'un '-', puis du numéro du bouton.

        les mêmes modificateurs sont reconnus que pour key dans bind-key.
        les boutons suivants sont reconnus:

            1    clic-gauche.
            2    clic-central.
            3    clic-droit.
            4    molette vers le haut.
            5    molette vers le bas.

        la fonction peut être l'une des 'BIND FUNCTION LIST' (voir plus bas) ou
        une ligne de commande à exécuter.

    borderwidth pixels
        définir la largeur de la bordure de la fenêtre en pixels.

    color activeborder color
        définir la couleur de la bordure active.

    color font color
        définir la couleur de police du menu.

    color selfont color
        définir la couleur de police pour l'élément de menu sélectionné.

    color groupborder color
        définir la couleur de la bordure lors du regroupement d'une fenêtre.

    color inactiveborder color
        définir la couleur de la bordure des fenêtres inactives.

    color menubg color
        définir la couleur d'arrière-plan du menu.

    color menufg color
        définir la couleur de premier plan du menu.

    color urgencyborder color
        définir la couleur de la bordure d'une fenêtre indiquant l'urgence.

    color ungroupborder color
        définir la couleur de la bordure d'une fenêtre en cours de dissociation.

    command name path
        chaque entrée 'name' est affichée dans le menu de l'application. lorsqu'elle
        est sélectionné, le chemin défini est exécuté avec execvp.

        le 'name' "term" et "lock" ont une sens particulier. ils pointent vers les
        programmes de verrouillage et de terminal spécifiés par les raccourcis
        clavier. les valeurs par défaut sont respectivement xterm et xlock.

    fontname font
        définir la police par défaut au format Xft.

    gap top bottom left right
        définir un "espace" en pixels au bord de l'écran, de sorte que lorsqu'une
        fenêtre est agrandie, elle ne chevauche pas cette zone. Cet "espace" peut
        être utilisé pour des applications telles que xclock ou conky, que
        l'utilisateur souhaite garder visible.

    htile percent
        définir le pourcentage d'écran occupé par le client principal en mode 
        'tiling' horizontal. 50% par défaut.

    vtile percent
        définir le pourcentage d'écran occupé par le client principal en mode
        'tiling' vertical. 50% par défaut.

    ignore windowname
        ignore et ne déforme pas les fenêtres portant le nom 'windowname' lorsque
        vous dessinez des bordures et parcourez les fenêtres.

    moveamount pixels
        échelle de déplacement/redimensionnement des fenêtres. 1 pixel par défaut.

    snapdist pixels
        distance minimale d'accrochage au bord d'écran, en pixels. 0 pixel par défaut.

    sticky yes|no
        basculer en mode 'collant'. le comportement par défaut pour les nouvelles
        fenêtres est de ne pas affecter de groupe. en activant le mode 'collant',
        cwm attribuera les nouvelles fenêtres au groupe actuellement sélectionné.

    unbind-key key
        désactive un raccoucis clavier. si "all" est utilisé, tous les raccoucis
        clavier par défaut seront désactivés.

    unbind-mouse button
        désactive un raccoucis souris. si "all" est utilisé, tous les raccoucis
        souris par défaut seront désactivés.

    wm name path
        chaque entrée 'name' est affichée dans le menu wm. une fois sélectionné,
        le gestionnaire de fenêtres est remplacé par 'path'.

BIND FUNCTION LIST
    restart                  redémarre cwm : relecture du ~/.cwmrc.
    quit                     quitte cwm.
    terminal                 ouvre un nouveau terminal.
    lock                     verrouille l'écran.
    menu-window              ouvre le menu de recherche de fenêtre.
    menu-window-hidden       ouvre le menu de recherche de fenêtre cachée.
    menu-cmd                 ouvre le menu de recherche d'application.
    menu-group               ouvre le menu de recherche de groupe.
    menu-exec                ouvre le menu 'exec' pour lancer une application.
    menu-exec-wm             ouvre le menu 'wm' pour changer de gestionnaire de fenêtre.
    menu-ssh                 ouvre le menu 'ssh'.
    group-toggle-[n]         affiche/masque le groupe 'n', avec 'n' entre 1 et 9.
    group-only-[n]           affiche le groupe 'n' en masquant les autres.
    group-close-[n]          ferme toutes les fenêtres du groupe 'n', avec n entre 1 et 9.
    group-toggle-all         affihe/masque tous les groupes.
    window-group             de/groupe la fenêtre active.
    window-movetogroup-[n]   masque la fenêtre active en la faisant passer au
                             groupe 'n', avec 'n' entre 1 et 9.
    group-cycle              navigue entre les groupes.
    group-rcycle             navigue à l'inverse entre les groupes.
    window-cycle             navigue entre les fenêtres.
    window-rcycle            navigue à l'inverse entre les fenêtres.
    window-cycle-ingroup     navigue entre les fenêtres du groupe actif.
    window-rcycle-ingroup    navigue à l'inverse entre les fenêtres du groupe actif.
    window-delete            ferme la fenêtre active.
    window-hide              masque la fenêtre active.
    window-lower             passe la fenêtre active au second plan.
    window-raise             passe la fenêtre active au premier plan.
    window-menu-label        nomme, étiquette la fenêtre active.
    window-freeze            de/geler les dimensions de la fenêtre active.
    window-stick             affiche la fenêtre active dans tous les groupes
                             (attribue la fenêtre à aucun groupe).
    window-fullscreen        fenêtre active en mode plein-écran : marges et 
                             bordures ignorées.
    window-maximize          de/maximise la fenêtre active : marges et bordures conservées.
    window-vmaximize         de/maximise verticalement la fenêtre active : marges
                             et bordures conservées.
    window-hmaximize         de/maximise horizontalement la fenêtre active : marges
                             et bordures conservées.
    window-htile             la fenêtre actuelle est placée en haut de l'écran,
                             agrandie horizontalement et redimensionnée à 50% de
                             l'espace vertical de l'écran. les autres fenêtres de
                             son groupe partagent l'espace d'écran restant.
    window-vtile             la fenêtre actuelle est placée à gauche de l'écran,
                             agrandie verticalement et redimensionnée à 50% de
                             l'espace horizontal de l'écran. les autres fenêtres de
                             son groupe partagent l'espace d'écran restant.
    window-move              déplace la fenêtre active.
    window-resize            redimensionne la fenêtre active.
    window-move-up           déplace la fenêtre selon 'moveamount' vers le haut.
    window-move-down         déplace la fenêtre selon 'moveamount' vers le bas.
    window-move-right        déplace la fenêtre selon 'moveamount' vers la droite.
    window-move-left         déplace la fenêtre selon 'moveamount' vers la gauche.
    window-move-up-big       déplace la fenêtre selon 10x'moveamount' vers le haut.
    window-move-down-big     déplace la fenêtre selon 10x'moveamount' vers le bas.
    window-move-right-big    déplace la fenêtre selon 10x'moveamount' vers la droite.
    window-move-left-big     déplace la fenêtre selon 10x'moveamount' vers la gauche.
    window-resize-up         redimensionne la fenêtre selon 'moveamount' vers le haut.
    window-resize-down       redimensionne la fenêtre selon 'moveamount' vers le bas.
    window-resize-right      redimensionne la fenêtre selon 'moveamount' vers la droite.
    window-resize-left       redimensionne la fenêtre selon 'moveamount' vers la gauche.
    window-resize-up-big     redimensionne la fenêtre selon 10x'moveamount' vers le haut.
    window-resize-down-big   redimensionne la fenêtre selon 10x'moveamount' vers le bas.
    window-resize-right-big  redimensionne la fenêtre selon 10x'moveamount' vers la droite.
    window-resize-left-big   redimensionne la fenêtre selon 10x'moveamount' vers la gauche.
    window-snap-up           accroche la fenêtre au bord supérieur.
    window-snap-down         accroche la fenêtre au bord inférieur.
    window-snap-right        accroche la fenêtre au bord droit.
    window-snap-left         accroche la fenêtre au bord gauche.
    window-snap-up-right     accroche la fenêtre au coin supérieur droit.
    window-snap-up-left      accroche la fenêtre au coin supérieur gauche.
    window-snap-down-right   accroche la fenêtre au coin inférieur droit.
    window-snap-down-left    accroche la fenêtre au coin inférieur gauche.
    pointer-move-up          déplace le curseur selon 'moveamount' vers le haut.
    pointer-move-down        déplace le curseur selon 'moveamount' vers le bas.
    pointer-move-right       déplace le curseur selon 'moveamount' vers la droite.
    pointer-move-left        déplace le curseur selon 'moveamount' vers la gauche.
    pointer-move-up-big      déplace le curseur selon 10x'moveamount' vers le haut.
    pointer-move-down-big    déplace le curseur selon 10x'moveamount' vers le bas.
    pointer-move-right-big   déplace le curseur selon 10x'moveamount' vers la droite.
    pointer-move-left-big    déplace le curseur selon 10x'moveamount' vers la gauche.

FICHIERS
    ~/.cwmrc     fichier de configuration par défaut pour cwm.

EXEMPLES
    # définir la police au format XFT
    fontname "sans-serif:pixelsize=14:bold"

    # activer le groupe collant pour les nouvelles fenêtres
    sticky yes

    # ajouter des entrées au menu des applications
    command firefox         firefox
    command xmms            xmms
    command top             "xterm -e top"

    # grouper automatiquement certaines fenêtres
    autogroup 3 "aterm,XTerm"
    autogroup 3 "xterm,XTerm"

    # ignorer certaines fenêtres pour ne pas les décorer ni les placer
    ignore XMMS
    ignore xwi
    ignore xapm
    ignore xclock

    # raccourcis clavier
    bind-key CM-r           window-menu-label
    bind-key CS-Return      "xterm -e top"
    bind-key C4-equal       window-vmaximize
    bind-key C4S-equal      window-hmaximize
    bind-key M-1            group-only-1
    bind-key M-2            group-only-2
    bind-key M-3            group-only-3
    bind-key MS-1           window-movetogroup-1
    bind-key MS-2           window-movetogroup-2
    bind-key MS-3           window-movetogroup-3
    unbind-key              4-o
    unbind-key              CM-equal
    unbind-key              CMS-equal

    # raccourcis souris
    bind-mouse M-2          window-lower
    bind-mouse M-3          window-resize

VOIR AUSSI
    openbsd-cwm(1)

HISTOIRE
    le fichier cwmrc est apparu dans OpenBSD 4.4.

conclusion

CWM est un gestionnaire de fenêtre qui saura rester à l'écart et vous permettra de vous concentrer sur votre activité, et rien que ça. il est particulièrement apprécié des codeurs pour sa simplicité et sa sobriété. il peut aussi se révéler très efficace pour tout utilisateur curieux de jouer avec les groupes et 'autogroup' ;).