This website is now static html, I have no time to write anything and Wordpress has more security holes than a Swiss cheese, and so the migthy wget -m replaced the ugly php. For sure there will be problems with this new version, but that is life.

Configurare xmonad window manager con xmobar e trayer


Per referenza futura scrivo velocemente in questo post la mia configurazione di xmonad, un window manager scritto in haskell. Il principale vantaggio di xmonad è che, decidendo lui il posizionamento delle finestre, riduce al minimo l’utilizzo del mouse e massimizza l’uso della superficie dello schermo (comportamento molto comodo quando si lavora con un portatile).

Software

  1. xmonad (0.8) – il window manager
  2. xmobar (0.9) – una status bar per xmonad
  3. trayer (1.0) – piccola app che fornisce una systray
  4. feh (1.3.4) – per impostare l’immagine di sfondo
  5. gdm, kmix, network-manager, …

Installazione

Più o meno tutto il software si trova nei pacchetti delle maggiori distribuzioni (io ho usato ubuntu, credo fosse qualcosa come apt-get install xmonad libghc6-xmonad-contrib-dev libghc6-xmonad-dev dwm-tools), se cosi’ non fosse l’installazione manuale è comunque semplice. Basta leggere il manuale.

Configurazione

Di seguito i file di configurazione dei vari software:

xmonad~/.xmonad/xmonad.hs

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import System.IO

myManageHook = composeAll
    [ className =? "Gimp"      --> doFloat
    , className =? "Vncviewer" --> doFloat
    ]

main = do
    xmproc <- spawnPipe "xmobar"
    xmonad $ defaultConfig
        { manageHook = manageDocks <+> myManageHook -- make sure to include myManageHook definition from above
                        <+> manageHook defaultConfig
        , layoutHook = avoidStruts  $  layoutHook defaultConfig
        , logHook = dynamicLogWithPP $ xmobarPP
                        { ppOutput = hPutStrLn xmproc
                        , ppTitle = xmobarColor "green" "" . shorten 50
                        }
        , modMask = mod4Mask     -- Rebind Mod to the Windows key
        } `additionalKeys`
        [ ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
        , ((0, xK_Print), spawn "scrot")
        ]

xmobar~/.xmobarrc

Config { font = "-misc-fixed-*-*-*-*-13-*-*-*-*-*-*-*"
       , bgColor = "black"
       , fgColor = "grey"
       , position = TopW L 85
       , commands = [ Run Network "wlan0" ["-L","0","-H","32","--normal","green","--high","red"] 10
                    , Run Cpu ["-L","15","-H","50","--normal","green","--high","red"] 10
                    , Run Memory ["-t","Mem: %"] 10
                    , Run Swap [] 10
                    , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
                    , Run StdinReader
                    ]
       , sepChar = "%"
       , alignSep = "}{"
       , template = "%StdinReader% }{ %cpu% | %memory% * %swap% | %wlan0% | %date%"
       }

gdm/usr/share/xsessions/xmonad.desktop

[Desktop Entry]
Encoding=UTF-8
Name=XMonad
Comment=Leightweight tiling window manager
Exec=xmonad.start
Icon=xmonad.png
Type=XSession

notare che xmonad.start è uno script personalizzato.

xmonad.start/usr/local/bin/xmonad.start

#!/bin/bash

xrdb -merge .Xresources

trayer --edge top --align right --SetDockType true --SetPartialStrut true --expand true --width 15 --height 12 --transparent true --tint 0x000000 &

gnome-screensaver

gnome-settings-daemon

if [ -x /usr/bin/gnome-power-manager ] ; then
   sleep 1
   gnome-power-manager
fi

if [ -x /usr/bin/nm-applet ] ; then
   nm-applet --sm-disable &
fi

kmix --keepvisibility

#feh --bg-scale /mnt/archivio/foto/2008-2009-dublino/2009-04-10-stefano/hapenny-desktop.jpg &

exec xmonad

Alcune note:

  • usando gnome-settings-daemon (per i tasti multimediali ed un sacco di altre cose moderne) non è necessario usare feh per lo sfondo.

Screenshots

Il desktop senza applicazioni (solo xmonad e trayer), l’immagine di sfondo è una fotografia di un ponte di Dublino fatta da Steve:

lo stesso desktop con un paio di applicazioni aperte:

One Response to “Configurare xmonad window manager con xmobar e trayer”

  1. Nicola

    When i run Xmonad from gdm3, it appear a message

    debian Xsession:unable to launch xmonad.start

    What’s wrong?



Leave a Reply