dwm
no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | dwm [2018/11/17 12:53] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== DWM : the Dynamic Window Manager ====== | ||
+ | **dwm** est écrit en **C**... pas de rafraichissement automatique .. tu veux configurer ? alors tu dois compiler :)\\ | ||
+ | **dwm** a su rester simple .. vierge je dirais: vierge de tout gadget et autre options qui alourdissent l' | ||
+ | **dwm** est distribué par [[http:// | ||
+ | **dwm** est entièrement pilotable depuis le clavier mais sait aussi faire bon usage de votre souris (déplacement des clients, redimensionnement à la volée..).\\ | ||
+ | si vous désirez tester dwm en live, allez faire un tour du côté du [[http:// | ||
+ | ===== présentation ===== | ||
+ | **DWM** est un tiling window manager, c'est à dire qu'il affiche vos fenêtres (clients) afin qu' | ||
+ | |||
+ | ===== obtenir dwm ===== | ||
+ | **Note:** //si vous désirez utiliser directement dwm sans changements de configuration, | ||
+ | \\ | ||
+ | pour récupérer dwm, plusieurs options s' | ||
+ | * depuis le **site officiel** : [[http:// | ||
+ | * depuis les **sources Debian** : < | ||
+ | * depuis le **dépot git** : < | ||
+ | |||
+ | ===== configuration ===== | ||
+ | la configuration avant l' | ||
+ | comme dwm s' | ||
+ | * l' | ||
+ | * l' | ||
+ | \\ | ||
+ | **Note:** //si vous désirez utiliser directement dwm sans changements de configuration, | ||
+ | |||
+ | ==== config.h ==== | ||
+ | les modifications de base s' | ||
+ | <code c> | ||
+ | /* See LICENSE file for copyright and license details. */ | ||
+ | |||
+ | /* appearance */ | ||
+ | static const char font[] | ||
+ | static const char normbordercolor[] = "# | ||
+ | static const char normbgcolor[] | ||
+ | static const char normfgcolor[] | ||
+ | static const char selbordercolor[] | ||
+ | static const char selbgcolor[] | ||
+ | static const char selfgcolor[] | ||
+ | static const unsigned int borderpx | ||
+ | static const unsigned int snap = 32; /* distance d' | ||
+ | static const Bool showbar | ||
+ | static const Bool topbar | ||
+ | |||
+ | /* tagging - nom et nombre de tags */ | ||
+ | static const char *tags[] = { " | ||
+ | |||
+ | /* Les règles (rules) spécifiques. utiliser xprop pour obtenir les infos. */ | ||
+ | /* isfloating: True : client flottant, False : client en tiling */ | ||
+ | /* tags mask: tag le client: 1 << 8 définit le tag 9, 1 << 7 définit le tag 8, ~0 définit tous les tags. */ | ||
+ | /* sources: http:// | ||
+ | static const Rule rules[] = { | ||
+ | /* xprop(1): | ||
+ | * WM_CLASS(STRING) = instance, class | ||
+ | * WM_NAME(STRING) = title | ||
+ | */ | ||
+ | /* class instance | ||
+ | { " | ||
+ | { " | ||
+ | }; | ||
+ | |||
+ | /* layout(s) */ | ||
+ | static const float mfact = 0.55; /* facteur de l'aire master [0.05..0.95] */ | ||
+ | static const int nmaster | ||
+ | static const Bool resizehints = True; /* respecte le redimensionnement automatique des applications */ | ||
+ | |||
+ | static const Layout layouts[] = { | ||
+ | /* symbol | ||
+ | { " | ||
+ | { "><>", | ||
+ | { " | ||
+ | }; | ||
+ | |||
+ | /* key definitions */ | ||
+ | /* vous pouvez déféinir ici votre ou vos touches de modification. par défaut défini à Mod1Mask (Alt) */ | ||
+ | /* mais peut aussi être Mod4Mask (Super). vous pouvez également définir 2 modkey */ | ||
+ | /* ex: #define MODKEY2 Mod4Mask définit la touche super comme seconde touche de modification */ | ||
+ | #define MODKEY Mod1Mask | ||
+ | #define TAGKEYS(KEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY|ControlMask, | ||
+ | { MODKEY|ShiftMask, | ||
+ | { MODKEY|ControlMask|ShiftMask, | ||
+ | |||
+ | /* helper for spawning shell commands in the pre dwm-5.0 fashion */ | ||
+ | #define SHCMD(cmd) { .v = (const char*[]){ "/ | ||
+ | |||
+ | /* commandes - raccourcis clavier */ | ||
+ | static const char *dmenucmd[] = { " | ||
+ | static const char *termcmd[] | ||
+ | |||
+ | static Key keys[] = { | ||
+ | /* modifier | ||
+ | { MODKEY, | ||
+ | { MODKEY|ShiftMask, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY|ShiftMask, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY|ShiftMask, | ||
+ | { MODKEY, | ||
+ | { MODKEY|ShiftMask, | ||
+ | { MODKEY, | ||
+ | { MODKEY, | ||
+ | { MODKEY|ShiftMask, | ||
+ | { MODKEY|ShiftMask, | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | { MODKEY|ShiftMask, | ||
+ | }; | ||
+ | |||
+ | /* réactions à la souris */ | ||
+ | /* click can be ClkLtSymbol, | ||
+ | static Button buttons[] = { | ||
+ | /* click event mask button | ||
+ | { ClkLtSymbol, | ||
+ | { ClkLtSymbol, | ||
+ | { ClkWinTitle, | ||
+ | { ClkStatusText, | ||
+ | { ClkClientWin, | ||
+ | { ClkClientWin, | ||
+ | { ClkClientWin, | ||
+ | { ClkTagBar, | ||
+ | { ClkTagBar, | ||
+ | { ClkTagBar, | ||
+ | { ClkTagBar, | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | ==== francisation ==== | ||
+ | les raccourcis clavier par défaut sont adaptés au clavier qwerty. pour adapter les raccourcis au clavier azerty, on modifie le fichier config.h:\\ | ||
+ | remplacer: | ||
+ | <code c> | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | </ | ||
+ | par | ||
+ | <code c> | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | TAGKEYS( | ||
+ | </ | ||
+ | et remplacer | ||
+ | <code c> | ||
+ | { MODKEY, | ||
+ | { MODKEY|ShiftMask, | ||
+ | </ | ||
+ | par | ||
+ | <code c> | ||
+ | { MODKEY, | ||
+ | { MODKEY|ShiftMask, | ||
+ | </ | ||
+ | |||
+ | ==== patches ==== | ||
+ | les patches sont des modifications qui permettent d' | ||
+ | pour appliquer un patch: | ||
+ | * utilisateur de git:< | ||
+ | git diff > dwm-X.Y-yourpatchname.diff</ | ||
+ | * utilisateur de l' | ||
+ | patch -p1 < path/ | ||
+ | |||
+ | ===== installation ===== | ||
+ | ==== paquet officiel ==== | ||
+ | pour les utilisateurs Debian et dérivées, si vous souhaitez utiliser la version de base de DWM sans configuration particulière, | ||
+ | dwm s' | ||
+ | |||
+ | ==== depuis les sources git ==== | ||
+ | si vous avez téléchargé les sources depuis les dépôts git, vous devez installer les dépendances: | ||
+ | < | ||
+ | la procédure d' | ||
+ | < | ||
+ | $ make | ||
+ | # make install | ||
+ | </ | ||
+ | dwm s' | ||
+ | |||
+ | ==== depuis les sources Debian ==== | ||
+ | **sources**: | ||
+ | On récupère les sources ainsi : | ||
+ | < | ||
+ | On se déplace dans le dossier des sources. Avec le caractère " | ||
+ | < | ||
+ | __Attention__: | ||
+ | Une fois satisfaits, reconstruisez le paquet : | ||
+ | < | ||
+ | Un paquet est alors disponible dans le répertoire parent, sour la forme dwm- version.deb. Pour vous assurer d' | ||
+ | < | ||
+ | Pour installer le paquet créé : | ||
+ | < | ||
+ | **Note**: Afin d' | ||
+ | < | ||
+ | Package: dwm | ||
+ | Pin: release a=now | ||
+ | Pin-Priority: | ||
+ | </ | ||
+ | Ou alors lancer : | ||
+ | < | ||
+ | |||
+ | ===== utilisation ===== | ||
+ | ==== lancement ==== | ||
+ | dwm se lance comme une session classique: soit par gdm ou tout autre gestionnaire de session graphique, soit par startx. voici mon ~/.xinitrc pour l' | ||
+ | <code bash xinitrc> | ||
+ | #!/bin/bash | ||
+ | ############################## | ||
+ | # ~/.xinitrc by arpinux 2011 # | ||
+ | ############################## | ||
+ | ## D-Bus ## | ||
+ | if which dbus-launch >/ | ||
+ | eval " | ||
+ | fi | ||
+ | ## trackpad ## tapbutton off by default ## | ||
+ | synclient VertTwoFingerScroll=1 | ||
+ | synclient HorizTwoFingerScroll=1 | ||
+ | synclient TapButton1=0 | ||
+ | ## dualscreen ## edit if needed ## | ||
+ | xrandr --output LVDS --mode 1024x768 --pos 0x0 --rotate normal --output VGA-0 --mode 1024x768 --pos 1024x0 --rotate normal | ||
+ | ## read ~.Xresources file | ||
+ | xrdb -merge ~/ | ||
+ | ## set wallpaper / color the screen ## | ||
+ | #xsetroot -solid grey20 & | ||
+ | feh --no-xinerama --bg-scale ~/ | ||
+ | #nitrogen --restore & ## uncomment to run your personnal wallpaper ## | ||
+ | ## launch terminal deamon ## | ||
+ | urxvtd -q- -f -o | ||
+ | ## set session-killer | ||
+ | setxkbmap -option terminate: | ||
+ | ## launch session | ||
+ | exec ck-launch-session / | ||
+ | </ | ||
+ | |||
+ | ==== raccourcis clavier ==== | ||
+ | souvenez-vous que **dwm s' | ||
+ | on peut rendre un client visible sur tous les tags avec [Alt]+[Shift]+[0] (l' | ||
+ | la fonction " | ||
+ | voici quelques commandes de bases pour commencer à utiliser dwm. :!: si vous avez modifié les raccourcis clavier dans config.h, il faudra adapter. la touche de modification //Mod1// par défaut est [Alt].\\ | ||
+ | \\ | ||
+ | **les raccourcis clavier** | ||
+ | ^modifier | ||
+ | |Mod1+Shift | ||
+ | |Mod1 |, |va à l' | ||
+ | |::: | ||
+ | |Mod1+Shift | ||
+ | |::: | ||
+ | |Mod1 |b | ||
+ | |::: | ||
+ | |::: | ||
+ | |::: | ||
+ | |::: | ||
+ | |::: | ||
+ | |::: | ||
+ | |::: | ||
+ | |::: | ||
+ | |::: | ||
+ | |Mod1+Shift | ||
+ | |::: | ||
+ | |::: | ||
+ | |Mod1 |1, | ||
+ | |::: | ||
+ | |Mod1+Shift | ||
+ | |||
+ | **le comportement de la souris sur les clients**\\ | ||
+ | //rappel: b1=clic gauche, b2=clic central, b3=clic droit// | ||
+ | ^modifier | ||
+ | |Mod1 |bouton1 | ||
+ | |::: | ||
+ | |::: | ||
+ | |||
+ | **le comportement de la souris sur les tags** | ||
+ | ^modifier | ||
+ | | |bouton1 | ||
+ | |::: | ||
+ | |Mod1 |bouton1 | ||
+ | |::: | ||
+ | |||
+ | **le comportement sur le bouton de layout** | ||
+ | ^bouton | ||
+ | |bouton1 | ||
+ | |bouton3 | ||
+ | |||
+ | ===== personnalisation ===== | ||
+ | ==== conky dans la statusbar ==== | ||
+ | la statusbar de dwm indique les tags, le layout et la version de dwm utilisée. mais on peut lui faire afficher beaucoup plus. pour cela, plusieurs possibilités: | ||
+ | pour tester, lancer dans une console: < | ||
+ | Dans le cas de conky, il ne s' | ||
+ | < | ||
+ | ############################################## | ||
+ | # Settings | ||
+ | ############################################## | ||
+ | background no | ||
+ | out_to_console yes | ||
+ | out_to_x no | ||
+ | update_interval 1.0 | ||
+ | total_run_times 0 | ||
+ | uppercase no | ||
+ | short_units yes | ||
+ | use_spacer none | ||
+ | if_up_strictness address | ||
+ | ############################################## | ||
+ | # Output | ||
+ | ############################################## | ||
+ | TEXT | ||
+ | ¦${cpu}%-${acpitemp}°\ | ||
+ | ¦${memperc}%-$mem\ | ||
+ | ¦${fs_used_perc / | ||
+ | ¦${if_match " | ||
+ | ¦${time %d/%m %I:%M}¦ | ||
+ | </ | ||
+ | Vous constatez que les fonctions sont réduites lorsque conky ne s' | ||
+ | Il se lance depuis le ~/.xinitrc, juste avant le lancement de la session dwm: | ||
+ | <code bash> | ||
+ | ## set statusbar ## | ||
+ | conky | while true; read line; do xsetroot -name " | ||
+ | </ | ||
+ | |||
+ | différents patches permettent de colorer la statusbar, de la rendre cliquable etc... | ||
+ | ===== dwm_reloaded ===== | ||
+ | j' | ||
+ | pour obtenir **dwm_reloaded**, | ||
+ | < | ||
+ | ce dépôt propose deux versions fr/gb et s' | ||
+ | pour une présentation/ | ||
+ | ===== conclusion ===== | ||
+ | DWM est mon gestionnaire de fenêtres préféré! c'est aussi le gestionnaire de fenêtres par défaut du livarp. | ||
+ | depuis que j'ai commencé à l' | ||
+ | dwm conviendra parfaitement aux pro soucieux d' |
dwm.txt · Dernière modification : 2018/11/17 12:53 de 127.0.0.1