editor
621
modifications
Aucun résumé des modifications |
m (→Ajouter un patch: : chg "dossier" par "répertoire") |
||
(10 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
=='''Présentation :'''== | =='''Présentation :'''== | ||
''' ''' [http://dwm.suckless.org Dwm] est le tiling windows manager (Gestionnaire de fenêtres en tuile) développé par l'équipe de [http://suckless.org suckless.org]. Fidèle à leur philosophie, il est écrit en C, permettant ainsi la contribution de chacun au projet, ce langage étant plus que répandu et éprouvé. De plus, cela oblige les codeurs à faire du code propre et léger. | ''' ''' [http://dwm.suckless.org Dwm] est le tiling windows manager (Gestionnaire de fenêtres en tuile) développé par l'équipe de [http://suckless.org suckless.org]. Fidèle à leur philosophie, il est écrit en C, permettant ainsi la contribution de chacun au projet, ce langage étant plus que répandu et éprouvé. De plus, cela oblige les codeurs à faire du code propre et léger. | ||
Le but de ce window manager est avant tout de profiter d'une gestion dynamique des fenêtres, que vous pourrez gérer via des étiquettes (tags) par des raccourcis claviers principalement. | |||
L'avantage pour le simple utilisateur, c'est que le C est très clair, et et que l'on a même pas besoin de tout comprendre pour le configurer. Eh oui, tout a été pensé, il suffit en fait d'éditer rien qu'un tout petit fichier : [http://yeuxdelibad.net/Logiciel-libre/Suckless/dwm/#configh le config.h ], qui a été construit de manière à rendre la configuration accessible même aux non-initiés. De plus, cela évite les multiples fichiers de configuration tiers, on configure dwm une fois, et une fois qu'il est insallé, on n'a plus rien à toucher, tout est dans le binaire! Ainsi, dwm n'a pas à chercher et lire ces fichiers de configuration pour faire son boulot, donc le temps d'éxécution est amélioré! Debian propose un paquet de démonstration. On expliquera ici comment reconstruire un paquet proprement, une fois que l'on a configuré dwm à notre sauce. Le code de dwm a été construit dans le but de pouvoir ajouter des fonctionnalités simplement, sous forme de [http://yeuxdelibad.net/Logiciel-libre/Suckless/dwm/#patch patches.] Vous pourrez alors composer votre gestionnaire de fenêtre, avec les fonctions que vous désirez. Avant de vous présenter ici les différentes configurations possible, astuces et autres, je ne peux continuer sans [http://dwm.suckless.org/screenshots/ une traditionnelle capture d'écran] : | |||
Ligne 16 : | Ligne 20 : | ||
* Mod1-Shift-Return Lance un terminal | * Mod1-Shift-Return Lance un terminal | ||
* Mod1-b Affiche/cache la barre | * Mod1-b Affiche/cache la barre | ||
* Mod1-t | * Mod1-t Paser en mode "tiling" | ||
* Mod1-f Passer en mode flottant. | * Mod1-f Passer en mode flottant. | ||
* Mod1-m Maximise la zone principale | * Mod1-m Maximise la zone principale | ||
Ligne 28 : | Ligne 32 : | ||
* Mod1-Shift-space Passe la fenêtre sélectionnée entre le mode tiling et flottant | * Mod1-Shift-space Passe la fenêtre sélectionnée entre le mode tiling et flottant | ||
* Mod1-Tab Sélectionne la vue précédente | * Mod1-Tab Sélectionne la vue précédente | ||
* Mod1-Shift-[1..n] | * Mod1-Shift-[1..n] Donne à la fenêtre l'étiquette 1...n | ||
* Mod1-Shift-0 | * Mod1-Shift-0 Colle toutes les étiquettes à la fenêtre, de 1 à 9. | ||
* Mod1-Control-Shift-[1..n] Ajoute | * Mod1-Control-Shift-[1..n] Ajoute les fenêtres à l'étiquette 1...n | ||
* Mod1-[1..n] | * Mod1-[1..n] Afficher les fenêtres dont l'étiquette est 1...n | ||
* Mod1-0 | * Mod1-0 Montre/cache toutes les étiquettes. | ||
* Mod1-Control-[1..n] | * Mod1-Control-[1..n] Ajoute les étiquettes 1...n à la vue | ||
* Mod1-Shift-q Quitte dwm | * Mod1-Shift-q Quitte dwm | ||
Ligne 49 : | Ligne 52 : | ||
===Obtenir dwm :=== | ===Obtenir dwm :=== | ||
Dwm est téléchargeable sur le [http://dl.suckless.org/dwm/ site officiel] (prendre l'archive la plus récente et la décompresser), ou vous pouvez télécharger les sources debian : <code># apt-get source dwm</code> . Pour les plus aventureux, vous pouver installer la toute dernière mouture de dwm ainsi (paquet mercurial nécéssaire) <code>hg clone http://hg.suckless.org/dwm</code>. Les deux dernières commandes téléchargent les sources dans le | Dwm est téléchargeable sur le [http://dl.suckless.org/dwm/ site officiel] (prendre l'archive la plus récente et la décompresser), ou vous pouvez télécharger les sources debian : <code># apt-get source dwm</code> . Pour les plus aventureux, vous pouver installer la toute dernière mouture de dwm ainsi (paquet mercurial nécéssaire) <code>hg clone http://hg.suckless.org/dwm</code>. Les deux dernières commandes téléchargent les sources dans le répertoire courant. On se déplace dans le répertoire des sources de dwm : <code>cd dwm-numéro_de_version</code> | ||
===Installer dwm :=== | ===Installer dwm :=== | ||
Dans le | Dans le répertoire contenant les sources, il suffit de taper : <code>make</code>. Dwm est alors compilé, et présent dans le répertoire actuel. Vous pouvez l'installer sur tout le système si vous voulez, en tapant ensuite : <code>make install</code> Les éxécutables seront dans ce cas le répertoire /usr/local/bin par défaut. Pour changer ce répertoire, il faut éditer le fichier config.mk, et changer la ligne : <code>PREFIX = /chemin/du/répertoire/destination</code> vers le chemin de votre choix (votre répertoire utilisateur ou autre). Notez toutefois que pour lancer votre session ensuite, il faudra préciser le bon chemin. | ||
<code> | <code> | ||
#Fichier ~/.xinitrc | |||
#commande pour lancer dwm en tapant startx | |||
#Lorsque dwm est dans /usr/bin ou /usr/local/bin : | |||
exec dwm | exec dwm | ||
#lorsque dwm est dans un répertoire quelconque, par exemple dans /home/user/ | |||
#exec /home/user/dwm </code> | |||
Les dépendances nécéssaires sont libX11-dev et éventuellement libxinerama-dev. Intéressons nous comment recréer un paquet debian à partir des sources debian : On récupère les sources, qui seront décompressées dans le | Les dépendances nécéssaires sont libX11-dev et éventuellement libxinerama-dev. Intéressons nous comment recréer un paquet debian à partir des sources debian : On récupère les sources, qui seront décompressées dans le répertoire courant : <code> apt-get source dwm</code> On se déplace dans le répertoire des sources. J'utilise le caractère "*" pour ne pas avoir à préciser la version de dwm : <code>cd dwm*</code> Maintenant, on retrouve les fichiers sources de dwm, les mêmes que dans l'archive officielle plus quelques autres relatifs à debian. On configure dwm de la même façon que pour les autres méthode, en éditant le config.def.h. Attention, ici c'est le fichier config.def.h qui sera pris en compte, et qu'il faut donc modifier. Une fois que vous êtes satisfaits, vous pouvez refabriquer le paquet avec cette commande (toujours dans le répertoire des sources) : <code>dpkg-buildpackage -rfakeroot -uc -b</code> Ce qui va créer un fichier dwm-version.deb dans le répertoire supérieur. Pour vous assurez d'avoir les dépendances nécéssaires, tapez ceci (Merci Knucky) : <code>apt-get build-dep dwm</code> Allons donc chercher le paquet récemment créé : <code>cd ..</code> Et installons ce paquet (il faut avoir les droits super-utilisateur) : <code> dpkg -i dwm_*.deb </code> Le paquet est maintenant installé! | ||
Il se peut fichier dwm-5.7.2/debian/desktop/dwm soit mal fait. En effet pour être pris en compte par gdm il faut le renommer avec l'extension ".desktop". ''' ''' | Il se peut fichier dwm-5.7.2/debian/desktop/dwm soit mal fait. En effet pour être pris en compte par gdm il faut le renommer avec l'extension ".desktop". ''' ''' | ||
Ligne 71 : | Ligne 74 : | ||
===Le fichier config.h :=== | ===Le fichier config.h :=== | ||
Depuis le temps que je vous parle de ce fichier! Il se trouve dans le | Depuis le temps que je vous parle de ce fichier! Il se trouve dans le répertoire des sources de dwm. Allons le chercher : <code>cd dwm-numero_de_version</code> ''Mais, que dis-tu, il n'y a pas de fichier config.h! bouh!'' Ahem... En effet, dis comme ça... Non, je ne me moque pas de vous. En fait, par défaut, le fichier s'appelle config.def.h. C'est en fait un config.h qui sert de modèle. Cependant, si un fichier config.h est présent, ce sera lui qui sera utilisé pour la configuration, sinon ce sera le config.def.h. Je vous invite à copier le fichier config.def.h en config.h, toujours dans le répertoire des sources : <code>cp config.def.h config.h</code> Ainsi, vous gardez un modèle d'origine en cas de besoin. Voici à quoi ressemble le fichier par défaut, j'y rajoute ici des commentaires pour l'expliquer en français. | ||
http://www.isalo.org/pnopaste/?14 | http://www.isalo.org/pnopaste/?14 | ||
====Donner des règles pour les fenêtres==== | ====Donner des règles pour les fenêtres==== | ||
Voir aussi : http://dwm.suckless.org/customisation/tagmask Il est possible de définir des règles spécifique à certaines fenêtres. Par exemple, si je veux que transmission n'apparaisse que su le tag 9, il faudra mettre ceci : <code lang="c"> static const Rule rules[] = { /* class instance title tags mask isfloating monitor */ { "Transmission", NULL, NULL, 1 | Voir aussi : http://dwm.suckless.org/customisation/tagmask Il est possible de définir des règles spécifique à certaines fenêtres. Par exemple, si je veux que transmission n'apparaisse que su le tag 9, il faudra mettre ceci : <code lang="c"> static const Rule rules[] = { /* class instance title tags mask isfloating monitor */ { "Transmission", NULL, NULL, 1 << 8, False, -1 }, }; </code> Pour récupérer les informations sur une fenêtre, tapez xprop dans une console. Votre curseur va changer de forme. Cliquez alors sur la fenêtre voulue. Vous verrez apparaître dans la console les informations sur la classe, le titre de la fenêtre... Vous l'aurez compris, si vous voulez que la fenêtre flotte, il faudra mettre "True" dans la colonne "isfloating" Pour désigner le tag où l'on veut que la fenêtre apparaisse, c'est un peu plus complexe. Ainsi 1 << 8 définit le tag 9, 1 << 7 représente le tag 8, ~0 représente tous les tags, (1 << 8 ) – 1 définit tous les tags sauf le 9eme. | ||
====Définir vos raccourcis:==== | ====Définir vos raccourcis:==== | ||
Ligne 95 : | Ligne 98 : | ||
Malheureusement, dwm est configuré par défaut pour les claviers anglais. Les chiffres au dessus des lettres de votre clavier ne seront pas lus comme tels, mais comme étant un "&" pour le "1", un "é" pour le 2, un " pour le "3"... On va donc remédier à tout ça. Le code de nos touches se récupère très facilement avec xev. Il faut lancer xev en console, taper sur une touche, et lire ce qui est retourné. On va donc remplacer cette portion : <code lang="c"> TAGKEYS( XK_1, 0) TAGKEYS( XK_2, 1) TAGKEYS( XK_3, 2) TAGKEYS( XK_4, 3) TAGKEYS( XK_5, 4) TAGKEYS( XK_6, 5) TAGKEYS( XK_7, 6) TAGKEYS( XK_8, 7) TAGKEYS( XK_9, 8) </code> Par ceci : <code lang="c"> TAGKEYS( 0x26, 0) TAGKEYS( 0xe9, 1) TAGKEYS( 0x22, 2) TAGKEYS( 0x27, 3) TAGKEYS( 0x28, 4) TAGKEYS( 0x2d, 5) TAGKEYS( 0xe8, 6) TAGKEYS( 0x5f, 7) TAGKEYS( 0xe7, 8) </code> Ainsi que ceci : <code lang="c"> { MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, </code> par : <code lang="c"> { MODKEY, 0xe0, view, {.ui = ~0 } }, { MODKEY|ShiftMask, 0xe0, tag, {.ui = ~0 } },</code> | Malheureusement, dwm est configuré par défaut pour les claviers anglais. Les chiffres au dessus des lettres de votre clavier ne seront pas lus comme tels, mais comme étant un "&" pour le "1", un "é" pour le 2, un " pour le "3"... On va donc remédier à tout ça. Le code de nos touches se récupère très facilement avec xev. Il faut lancer xev en console, taper sur une touche, et lire ce qui est retourné. On va donc remplacer cette portion : <code lang="c"> TAGKEYS( XK_1, 0) TAGKEYS( XK_2, 1) TAGKEYS( XK_3, 2) TAGKEYS( XK_4, 3) TAGKEYS( XK_5, 4) TAGKEYS( XK_6, 5) TAGKEYS( XK_7, 6) TAGKEYS( XK_8, 7) TAGKEYS( XK_9, 8) </code> Par ceci : <code lang="c"> TAGKEYS( 0x26, 0) TAGKEYS( 0xe9, 1) TAGKEYS( 0x22, 2) TAGKEYS( 0x27, 3) TAGKEYS( 0x28, 4) TAGKEYS( 0x2d, 5) TAGKEYS( 0xe8, 6) TAGKEYS( 0x5f, 7) TAGKEYS( 0xe7, 8) </code> Ainsi que ceci : <code lang="c"> { MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, </code> par : <code lang="c"> { MODKEY, 0xe0, view, {.ui = ~0 } }, { MODKEY|ShiftMask, 0xe0, tag, {.ui = ~0 } },</code> | ||
Un patch automatisant le tout est disponible ici : [http://dwm.suckless.org/patches/azertykey azertykey] | |||
=====Pour changer d'écran:===== | =====Pour changer d'écran:===== | ||
Ligne 102 : | Ligne 107 : | ||
===Ajouter un patch:=== | ===Ajouter un patch:=== | ||
Vous pouvez ajouter toutes sortes de fonctionnalités à dwm, en ajoutant des patches. [http://dwm.suckless.org/patches Le site officiel regorge d'informations à ce sujet, et la configuration de chaque patch est expliqué.] De façon générale, pour appliquer un patch, il faudra faire ceci dans le | Vous pouvez ajouter toutes sortes de fonctionnalités à dwm, en ajoutant des patches. [http://dwm.suckless.org/patches Le site officiel regorge d'informations à ce sujet, et la configuration de chaque patch est expliqué.] De façon générale, pour appliquer un patch, il faudra faire ceci dans le répertoire de dwm : <code>patch -p1 < chemin/vers/le/patch.diff </code> Pour la version tarball (paquet debian inclus) <code>hg patch chemin/vers/le/patch.diff </code> Pour la version mercurial (hg). Personnellement, j'affectionne le patch [http://dwm.suckless.org/patches/bottom_stack bottom stack] afin d'avoir un agencement des fenetres vertical, et le patch [http://dwm.suckless.org/patches/nametag nametag] pour renommer les tags. Mais je pourrais en mettre plus c'est vrai. | ||
===Avoir un menu pour la souris:=== | ===Avoir un menu pour la souris:=== | ||
Ligne 114 : | Ligne 119 : | ||
=='''Conclusion:'''== | =='''Conclusion:'''== | ||
Il y a un programme essentiel à utiliser dans dwm : j'ai nommé dmenu. Vous pourrez au fur et à mesure lire des exemples d'utilisation que je posterai [http://thuban.toile-libre.org/ | Il y a un programme essentiel à utiliser dans dwm : j'ai nommé dmenu. Vous pourrez au fur et à mesure lire des exemples d'utilisation que je posterai [http://thuban.toile-libre.org/Logiciel-libre/Suckless/dwm/dwm_presentation_et_configuration.html ici]. Cette page est à améliorer et il y a beaucoup de choses à préciser. Je vous invite donc à me faire part de vos remarques afin de l'améliorer. Je poste [http://thuban.toile-libre.org/wp-content/uploads/2010/11/config.h ici mon config.h] si vous voulez voir ma configuration. | ||
== Liens externes == | == Liens externes == | ||
Ligne 121 : | Ligne 126 : | ||
* http://wiki.debian.org/fr/Dwm | * http://wiki.debian.org/fr/Dwm | ||
* [http://dwm.suckless.org Site officiel] | * [http://dwm.suckless.org Site officiel] | ||
* [http:// | * [http://yeuxdelibad.net/Logiciel-libre/Suckless/dwm/dwm_presentation_et_configuration.html Article inspirant cette page, un peu plus à jour ] | ||
[[Catégorie:Gestionnaires_de_fenetres]] | [[Catégorie:Gestionnaires_de_fenetres]] | ||
[[Catégorie:Tillings]] | [[Catégorie:Tillings]] |