xmonad est un tiling window manager écrit en haskell semblable à wmii ou awesome. Xmonad est écrit en Haskell ce qui d'un côté rend sa configuration un peu plus compliquée et engendre près de 400mo de dépendances, mais de l'autre le rend très hautement personnalisable.
Il est entièrement pilotable au clavier et donc parfait pour les gens qui ne veulent pas perdre de temps à manipuler leurs souris.
Pour installer ce logiciel, il suffit d'installer le paquet xmonad.
Pour le lancer, sélectionnez l'entrée xmonad dans lightdm.
La configuration se fait en éditant le fichier Xmonad.hs qui se trouve en /home/votre_nom_d'utilisateur/.xmonad/xmonad.hs. S'il n'y est pas, vous trouverez sur le site officiel un modèle qui vous permettra de bien débuter.
À chaque modification, il faut recompiler le fichier et relancer Xmonad. Cela se fait avec la combinaison de couches Mod+q (ou Mod désigne la touche alt par défaut).
Une fois dans une session xmonad vous vous trouverez devant un bureau vide. Pour commencer à faire quelque chose, vous pouvez lancer un terminal en appuyant sur Mod+Shift+Entrée (Mod désignant la touche alt par défaut.) Avec ce terminal ouvert, vous pourrez lancer des applications. Alternativement, vous pouvez appuyer sur Mod+p pour faire apparaître une fine barre tout en haut de votre écran: il s'agit de dmenu, qui a été installé avec dwm-tools. Commencez à taper le nom de l'application qui vous voulez lancer pour la sélectionner dans la liste (vous pouvez aussi compléter le nom automatiquement avec la touche tab).
Voici une liste non-exhaustive de raccourcis clavier configurés par défaut:
Consultez la section – Key bindings. Add, modify or remove key bindings here. du fichier haskell.hs pour la liste complète et pour les modifier.
Les Layouts (disposition en Français) sont les dispositions de vos fenêtres dans Xmonad. Par défaut, vous disposez de 3 Layouts. Pour passer d'un Layout à l'autre, tapez Mod+Espace. En fonction de ce que vous voulez faire ou afficher, un Layout peut mieux marcher qu'un autre, et il est possible d'en rajouter une bonne dizaine, tout comme il est possible de définir un Layout par défaut pour un bureau spécifique. Un exemple concret et d'avoir Gimp qui s'ouvre toujours dans le bureau 5 avec un Layout qui met les boites de dialogues de chaque coté de la fenêtre principale (astuce plus bas). Consultez la sous-rubrique «Layout» sur cette page afin d'avoir une liste exhaustive.
Xmonad étant un gestionnaire de fenêtres, il peut être couplé à l'environnement Gnome. Toutefois, afin de bien en profiter, il est nécessaire de faire quelques manipulations.
Il semblerait que la plupart des personnes sur une variété de distributions ont de bons résultats en utilisant un fichier applications/xmonad.desktop et en lançant une session Gnome complète en ne remplaçant que Metacity avec Xmonad. Pour cela, utiliser la commande suivante dans un terminal:
gconftool-2 -s /desktop/gnome/session/required_components/windowmanager xmonad --type string
Lancer cette commande pendant une session Gnome revient à remplacer Metacity par Xmonad sans affecter les autres applications et daemons. Cette solution est pratique si on veut essayer Xmonad, mais n'est pas satisfaisante. Si l'on veut que Xmonad démarre automatiquement avec Gnome, il est plus commode de créer un fichier applications/xmonad.desktop. Normalement, ce fichier existe déjà et permet de lancer Xmonad seul en choisissant l'entrée correspondante dans Gdm. L'idéal est d'en créer un autre. Ouvrez un terminal et tapez:
gksudo gedit /usr/share/applications/gnome_xmonad.desktop
et copiez-collez dans la fenêtre gedit qui vient de s'ouvrir:
Type=Application Encoding=UTF-8 Name=Gnome/Xmonad Exec=xmonad NoDisplay=true X-GNOME-WMName=Xmonad X-GNOME-Autostart-Phase=WindowManager X-GNOME-Provides=windowmanager X-GNOME-Autostart-Notify=false
Maintenant il faut configurer Xmonad pour interagir avec Gnome.
Ouvrez xmonad.hs. Au début du fichier, vous verrez des lignes de ce type:
import XMonad import Data.Monoid import System.Exit ect……
Ces lignes sont très importantes, car c'est ici que vous rajouterez des extensions à Xmonad pour en faire le tiling Wm de vos rêves Donc, justement, nous allons ajouter une extension qui permet la communication avec Gnome. Éditez le fichier pour le faire ressembler à ça:
import XMonad import Data.Monoid import System.Exit import XMonad.Config.Gnome --notez qu'on vient d'ajouter cette ligne! import XMonad.Config.Azerty --vous pouvez ignorer cette ligne si vous n'utilisez pas un clavier Azerty! import XMonad.Hooks.ManageDocks --ajoutez cette ligne, elle permet a xmonad de reconnaître les docks, comme gnome-panel ou autre
Ensuite, vers la fin du fichier, trouvez la ligne suivante:
main = xmonad defaults
et modifiez-la comme suit:
main = xmonad $ gnomeConfig defaults
À priori, en choisissant maintenant l'entrée Gnome/Xmonad dans Gdm vous devrez vous trouver dans voter bureau Gnome, mais avec Xmonad.
Xmonad peut aussi être utilisé seul pour plus de légèreté. Pour cela, choisissez tout simplement l'entrée “Xmonad” dans GDM après installation. Vous vous retrouverez dans un bureau vide.
Xmobar est une petite barre qui donne pas mal d'informations sur l'état de Xmonad (le bureau sur lequel vous vous trouvez) le «Layout» en cours d'utilisation…Pour l'installer: apt://xmobar. La configuration de xmobar se fait dans le fichier ~/.xmobarrc. Voici un exemple qui donne le bureau sur lequel vous vous trouvez, le titre de la fenêtre, le nom du Layout en cours d'utilisation, la date et l'heure:
Config { font = "-*-terminus-*-*-*-*-*-*-*-*-*-*-*-*" , bgColor = "#DADBC7" , fgColor = "#555753" , position = Top , lowerOnStart = True , commands = [ Run Date "%A, %d %b %Y <fc=#2B9190>%H:%M:%S</fc>" "date" 10 , Run Com "skb" ["-1"] "kb" 10 , Run StdinReader ] , sepChar = "%" , alignSep = "}{" , template = " %StdinReader% }{<fc=#2B9190></fc> %date% " }
Vous pouvez facilement ajouter des fonctionnalités à xmobar. Pour plus de détails et les plugins disponibles, rendez vous ici. Finalement, éditez xmonad.hs et ajoutez:
main = xmonad=<< xmobar defaults
et cherchez la ligne «myLayouthooks» et ajoutez: «avoidStruts $» juste après myLayout=………
Exemple:
myLayout = avoidStruts $ onWorkspace "5" gimp…… $ etc $etc
C'est ici que vous ajouterez d'autres Layouts. Pour ajouter des Layouts, il faut toujours mettre une ligne en début de fichier (par exemple import XMonad.Layout.IM) et ensuite ajouter le nom du Layout dans myLayouthooks.
Vous pouvez ensuite cacher/afficher xmobar (et tout autre dock) avec Mod+b. Xmobar ne dispose pas de systray. Vous pouvez utilisez trayer en complément. Pour cela, trayer doit avoir être invoqué avec les options –SetDockType true et –SetPartialStrut true. (Voir exemple plus bas, les applications au démarrage)
Il y a deux façons de procéder pour cela. La plus simple; éditez xmonad.hs et cherchez la ligne «myStartupHook=return ()» et pour modifiez la comme suit pour ajouter gnome-panel, et xnumlock (qui permet d'avoir numlock activé au démarrage):
myStartupHook = do spawn "gnome-panel" spawn "numlockx" spawn "trayer --edge top --align right --SetDockType true --SetPartialStrut true --expand true --width 15 --height 12 --transparent true --tint 0x000000"
Utilisez cette méthode pour ajouter un fond d'écran avec feh par exemple.
Continuez à ajouter les applications qu'il vous faut. L'inconvénient, c'est qu'à chaque recompilation de Xmonad, les applications de démarrage vont se relancer…
L'autre méthode consiste à éditer ~/.xinitrc.
Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, le configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
Contributeurs principaux : cbrunos