ganassa's

Xmonad

Xmonad è un Tiling WM di tipo dinamico, il che significa che adatta automaticamente il layout a seconda delle finestre che si aprono o si chiudono durante l'utilizzo. Al contrario di Ion, che di default posiziona le finestre all'interno dei riquadri già esistenti, Xmonad apre le finestre in nuovi frame e, per fare spazio a questi, ridimensiona le finestre già esistenti. In entrambi i casi sono comportamenti che possono essere modificati, ma in Xmonad la gestione dinamica è prevista nel core ed è quindi più semplice gestirla.

Supporta molto bene Xinerama rendendo possibile, caratteristica tanto preziosa quanto rara sia nei WM tiling che in quelli tradizionali, lo switch del desktop in maniera indipendente su ognuno dei monitor.

Analogamente ad Ion, Xmonad è personalizzabile in maniera praticamente totale grazie all'architettura estensibile tramite semplici script: a patto di prendere confidenza con Haskell, le possibilità sono infinite.

In attesa di poter diventare un guru di Haskell si può procedere comunque a realizzarsi un certo livello di personalizzazione del comportamento utilizzando le configurazioni già realizzate e messe a disposizione dalla community e apportandovi modifiche a proprio piacimento.

il mio obiettivo è quello di replicare, nei limiti del possibile, il comportamento e soprattutto l'interfaccia dei comandi che ho utilizzato con Ion3 per parecchio tempo.

Screenshot

Shotcut Keys

~/.xmonad$ cat xmonad.hs |grep \- |grep +
-- It gives you 10 workspaces, available through Alt+F1..F10. You can move
-- windows to a workspace with Win+F1..F10 (and you will automatically switch
-- Win+F1..F10          switch to workspace
-- Ctrl+Alt+Left/Right  switch to previous/next workspace
-- Alt+ScrollUp/Down    move focused window up/down
-- Alt+LMB              move floating window
-- Alt+MMB              resize floating window
-- Alt+RMB              unfloat floating window
-- Win+Space            cycle layouts
-- Win+R                open the Gnome run dialog
-- Ctrl+F12             restart XMonad
-- Ctrl+Shift+F12       exit XMonad
    -- KB: Alt+F5                          start a terminal
    -- KB: Alt+F3                          gvim
    -- KB: Alt+F2                          run
    -- KB: Alt+Win+F4                    close window
    -- KB: Alt+F5                          start a terminal
    -- KB: Alt+F6                          start rox filer
    -- Ctrl+F12                            restart XMonad
    -- Ctrl+Shift+F12                      exit XMonad
    -- Win+Space            cycle layouts
    -- Win+Shift+R                         refresh the current window
    -- Win+Home             move window to master area
    -- Alt+Tab              focus next window
    -- Alt+Shift+Tab        focus previous window
    -- Win+Alt+j/k    move window up/down
    -- Win+Alt+h/l          shrink/expand master area
    -- Win+T                unfloat floating window
    -- Win+Alt+ +/-         move more/less windows into master area
    -- Ctrl+Alt+h/l         switch to previous/next workspace
     -- Ctrl+Win+Shift+h/l  move window to previous/next workspace
    -- Win+Control+h/j/k/l  join subLayout in that direction
    -- Win+Control+M        merge all windows in one SubLayout
    -- Win+Control+U        unmerge focused window
    -- Win+Control+./,      focus next/previous windows in a SubLayout
    -- Win+F1..F10 switches to workspace
    -- Win+Shift+F1..F10 moves window to workspace and switches to that workspace

Configurazione

Note

FAQ: http://haskell.org/haskellwiki/Xmonad/Frequently_asked_questions

General config tips: http://www.haskell.org/haskellwiki/Xmonad/General_xmonad.hs_config_tips

Xprop: http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions#I_need_to_find_the_class_title_or_some_other_X_property_of_my_program

PPA: https://launchpad.net/~justinbogner/+archive/ppa

Linkografia

 Due parole di introduzione ad Haskell e Xmonad