Xmonad: comment créer une barre d'état ?

Bonjour à toutes et tous!

J’aimerais intégrer une “barre d’état” à Xmonad.
Celle-ci devrait m’afficher le nom des bureaux, le bureau en cours, le nom des clients en cours et l’heure.

J’ai parcouru différents scripts à gauche et à droite, mais je ne dois pas avoir de chance: c’est jamais très clair (ou c’est mon niveau :frowning: ) ou alors ils comportent 34.203 améliorations dont je me passerais bien.

Bref! Si vous avez un petit script du genre ou un lien clair, je suis preneur…

Bonne journée :slightly_smiling:

Dans le genre minimal, tu as xmobar, qui affiche ce que lui demande d’afficher, dans ton cas tu pourrais avoir un ~/.xmobarrc comme çaConfig { font = "-misc-fixed-*-*-*-*-10-*-*-*-*-*-*-*" , bgColor = "black" , fgColor = "#00ff00" , position = Top , lowerOnStart = True , commands = [ Run Date "%H:%M:%S" "date" 10 , Run StdinReader ] , sepChar = "%" , alignSep = "}{" , template = "%StdinReader% }{ <fc=#00ff00>%date%</fc>" }
qui affichera tous les bureaux avec des fenêtres dessus, le bureau actuel dans une couleur différente, l’heure et rien de plus.
Dans ton ~/.xmonad/xmonad.hs, il faut ajouter :import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Util.Run(spawnPipe) import System.IO
dans les imports, et remplacermain = xmonad defaultspar main = do xmproc <- spawnPipe "xmobar" xmonad $ defaults { manageHook = manageDocks <+> myManageHook , layoutHook = avoidStruts $ layoutHook defaultConfig { layoutHook = myLayout } , logHook = dynamicLogWithPP $ xmobarPP { ppOutput = hPutStrLn xmproc , ppTitle = xmobarColor "green" "" . shorten 90 } }dans la section en bas du fichier.
regarde la doc des différents modules importés pour arranger à ta sauce.
les sources pour xmobar sont disponibles ici et le binaire ici.

Pour faire apparaître et disparaître xmobar avec mod-b par exemple, tu rajoutes , ((modMask , xK_b ), sendMessage ToggleStruts)dans la section des raccourcis claviers de ton ~/.xmonad/xmonad.hs.