Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import XMonad
- import System.Exit
- import XMonad.Hooks.ManageDocks
- import XMonad.Layout.PerWorkspace
- import XMonad.Layout.NoBorders
- import XMonad.Hooks.UrgencyHook
- import XMonad.Layout.OneBig
- import XMonad.Layout.MagicFocus
- import XMonad.Layout.Grid
- import XMonad.Layout.ShowWName
- import XMonad.Layout.ThreeColumns
- import XMonad.Layout.NoBorders
- import XMonad.Layout.TwoPane
- import XMonad.Layout.Reflect
- import XMonad.Layout.IM
- import Data.Ratio ((%))
- import qualified XMonad.StackSet as W
- import qualified Data.Map as M
- ------------------------------------------------------------------------
- -- Let's QUAKE!!!
- myTerm = "urxvt -pe tabbed"
- myFont = "-xos4-terminus-medium-r-normal--12-120-72-72-c-60-*-*"
- myNormalBorderColor = "#151"
- myFocusedBorderColor = "#19f"
- myModMask = mod4Mask
- myDefaultGaps = [(14,0,0,0)]
- myWorkspaces = ["work","write","read","wyrd","internet","communication","media","other","system"]
- myManageHook = composeAll
- [ className =? "MPlayer" --> doFloat
- , resource =? "desktop_window" --> doIgnore
- , resource =? "kdesktop" --> doIgnore
- , title =? "top" --> doF (W.shift "system")
- , title =? "ttytter.pl -hold" --> doF (W.shift "communication")
- , title =? "vim" --> doF (W.shift "write")
- , title =? "fbless" --> doF (W.shift "read")
- , title =? "wyrd" --> doF (W.shift "wyrd")
- , className =? "OpenOffice.org 3.2" --> doF (W.shift "write")
- , className =? "Contacts" --> doF (W.shift "write")
- , className =? "Stardict" --> doF (W.shift "write")
- , className =? "Fbreader" --> doF (W.shift "read")
- , className =? "Geeqie" --> doF (W.shift "read")
- , className =? "Evince" --> doF (W.shift "read")
- , className =? "Chmsee" --> doF (W.shift "read")
- , className =? "deluge" --> doF (W.shift "internet")
- , className =? "Iceweasel" --> doF (W.shift "internet")
- , className =? "Tsclient" --> doF (W.shift "internet")
- , className =? "Wireshark" --> doF (W.shift "internet")
- , className =? "logjam" --> doF (W.shift "communication")
- , className =? "Pidgin" --> doF (W.shift "communication")
- , className =? "Gimp" --> doF (W.shift "media")
- , className =? "Kino" --> doF (W.shift "media")
- , className =? "Audacity" --> doF (W.shift "media")
- , className =? "Mmg" --> doF (W.shift "media")
- , className =? "wesnoth-1.10" --> doF (W.shift "other")
- , className =? "VirtualBox" --> doF (W.shift "other")]
- myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
- [ ((modMask .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)
- , ((modMask .|. shiftMask, xK_p ), spawn "gmrun")
- , ((modMask .|. shiftMask, xK_Up ), spawn "amixer -q set Master 1+")
- , ((modMask .|. shiftMask, xK_Down ), spawn "amixer -q set Master 1-")
- , ((modMask .|. shiftMask, xK_c ), kill)
- , ((modMask, xK_space ), sendMessage NextLayout)
- , ((modMask .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
- , ((modMask, xK_n ), refresh)
- , ((modMask, xK_Tab ), windows W.focusDown)
- , ((modMask, xK_j ), windows W.focusDown)
- , ((modMask, xK_k ), windows W.focusUp )
- , ((modMask, xK_m ), windows W.focusMaster )
- , ((modMask, xK_Return), windows W.swapMaster)
- , ((modMask .|. shiftMask, xK_j ), windows W.swapDown )
- , ((modMask .|. shiftMask, xK_k ), windows W.swapUp )
- , ((modMask, xK_h ), sendMessage Shrink)
- , ((modMask, xK_l ), sendMessage Expand)
- , ((modMask, xK_t ), withFocused $ windows . W.sink)
- , ((modMask , xK_comma ), sendMessage (IncMasterN 1))
- , ((modMask , xK_period), sendMessage (IncMasterN (-1)))
- , ((modMask .|. shiftMask, xK_q ), io (exitWith ExitSuccess))
- , ((modMask , xK_q ), restart "xmonad" True)
- ]
- ++
- [((m .|. modMask, k), windows $ f i)
- | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
- , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
- ++
- ------- Something not understanding -----------------------------------------------
- [((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
- ------------------------------------------------------------------------
- myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
- [ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w))
- , ((modMask, button2), (\w -> focus w >> windows W.swapMaster))
- , ((modMask, button3), (\w -> focus w >> mouseResizeWindow w))
- ]
- myLayout = smartBorders $
- onWorkspace "work" (magicFocus (OneBig obWidth obHeight) ||| Full ||| magicFocus (ThreeColMid nmaster delta ratio)) $
- onWorkspace "write" (Full ||| Mirror (TwoPane delta (1/2)) ||| magicFocus (OneBig obWidth obHeight)) $
- onWorkspace "read" (magicFocus (OneBig obWidth obHeight) ||| Full ||| magicFocus (ThreeColMid nmaster delta ratio)) $
- onWorkspace "internet" (Full ||| Mirror (TwoPane delta (1/2))) $
- onWorkspace "communication" ( Full ||| reflectHoriz(withIM (1%5) (ClassName "Pidgin") Grid)) $
- onWorkspace "media" (Full ||| magicFocus (ThreeColMid nmaster delta ratio)) $
- onWorkspace "system" (Grid ||| magicFocus (OneBig obWidth obHeight)) $
- Full
- where
- nmaster = 1
- ratio = 2/3
- delta = 3/100
- obHeight = 3/4
- obWidth = 3/4
- ------------------------------------------------------------------------
- main = xmonad defaults
- -- { manageHook = myManageHook defaultConfig
- -- , layoutHook = avoidStruts $ layoutHook defaultConfig
- -- }
- defaults = defaultConfig {
- -- terminal = "xterm",
- terminal = myTerm,
- focusFollowsMouse = False,
- borderWidth = 1,
- modMask = mod4Mask,
- -- numlockMask = mod2Mask,
- normalBorderColor = myNormalBorderColor,
- focusedBorderColor = myFocusedBorderColor,
- workspaces = myWorkspaces,
- keys = myKeys,
- mouseBindings = myMouseBindings,
- layoutHook = showWName myLayout,
- manageHook = myManageHook
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement