Xmonad

Jun 12, 2009 20:47

Ура, я сделал это. Поставил Xmonad-darcs, и скооперировал его с KDE 4.2 :) А еще попутно прилично перелопатил интерфейс своего Firefox, но это уже мелочи :)

Значица, ссылки:
1) http://ro-che.info/docs/xmonad/ - интересный мануал на русском, точнее даже не столько мануал, сколько этакий небольшой обзор. С этой статьи я и начал свое знакомство с Xmonad, и если б не она - я бы наверное так и не решился его поставить. Рекомендую прочесть для начала.
2) http://xmonad.org/manpage.html ну собсна их ман, все горячие клавиши :) Для заучивания перед сном, так сказать :D
3) http://xmonad.org/tour.html - аналогичный первому туториал, только уже от самих разрабов, и на английском.
4) http://xmonad.org/xmonad-docs/xmonad-contrib/ - вот оно самое, описание Xmonad-contrib! Тупанул и не смог сразу его найти. А это собсна и есть плюшка Xmonad - куча дополнений для компоновки окон, декораций, и прочего. Собсна, это и делает иксмонад иксмонадом :)
5) http://haskell.org/haskellwiki/Xmonad/Config_archive - подборка конфигов, с комментами (и есть даже пара туториалов). После ознакомления с чужими конфигами понимаешь, что Haskel - не такой уж и странный язык, и далее пишешь уже свой конфиг.

Собсна, мой конфиг вот:

import XMonad
import XMonad.Config.Kde
import qualified XMonad.StackSet as W -- to shift and float windows
import XMonad.Util.EZConfig
import XMonad.Actions.CycleWS
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks
import XMonad.Layout.Combo
import XMonad.Layout.Grid
import XMonad.Layout.LayoutModifier
import XMonad.Layout.Named
import XMonad.Layout.NoBorders
import XMonad.Layout.PerWorkspace
import XMonad.Layout.Reflect
import XMonad.Layout.TwoPane
import XMonad.Layout.WindowNavigation
import XMonad.Util.WindowProperties
import Control.Monad
import Data.Ratio
import qualified Data.Map as M
import XMonad.Layout.ThreeColumns
import XMonad.Layout.SimpleDecoration

myBaseConfig = kdeConfig

myBorderWidth = 1
myNormalBorderColor = "#000000"
myFocusedBorderColor = "#00FFFF"

basicLayout = Mirror tiled where
tiled = Tall nmaster delta ratio
nmaster = 1
delta = 3/100
ratio = 1/2
tallLayout = basicLayout
wideLayout = Mirror basicLayout
fullscreenLayout = noBorders Full
imLayout = avoidStruts $ ThreeCol 1 (3/100) (1/2)
--nxcLayout = simpleDeco shrinkText defaultTheme (layoutHook defaultConfig)

myLayoutHook = fullscreen $ im $ normal where
normal = tallLayout ||| wideLayout
fullscreen = onWorkspace "4, 5, 9" fullscreenLayout
im = onWorkspace "3" imLayout

myManageHook = imManageHooks <+> manageHook myBaseConfig
imManageHooks = composeAll
[ className =? "Gran Paradiso" --> moveTo "2"
, className =? "Gimp" --> doFloat
, className =? "Kmix" --> doFloat
, className =? "Kopete" --> moveTo "3"
, className =? "Skype" --> moveTo "3"
, className =? "Amarok" --> moveTo "4"
, className =? "NXClient" --> moveTo "9"
]
where moveTo = doF . W.shift

myModMask = mod4Mask
altMask = mod1Mask

main = xmonad $ myBaseConfig
{ modMask = myModMask
, layoutHook = myLayoutHook
, manageHook = myManageHook
, borderWidth = myBorderWidth
, normalBorderColor = myNormalBorderColor
, focusedBorderColor = myFocusedBorderColor
}

xmonad, linux, arch, kde4

Up