Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Welcome to Digit's Nice Minimal Tabular Boonad
- -- takes some cues from clfswm and i3
- -- Digit can usually be found in #witchlinux or #crunchbang on irc.freenode.net
- -- GNU GPL, yo!
- import XMonad hiding ( (|||) )
- import XMonad.Layout.LayoutCombinators -- hiding ( (|||) )
- import XMonad.Util.EZConfig -- allows all kinds, like automated emacs submaps
- import XMonad.Actions.Submap -- allows emacs-like keys
- import XMonad.Layout.Tabbed -- obvious integral for the TubularBoonad
- import XMonad.Layout.Grid -- yus
- import XMonad.Layout.OneBig -- yus
- import qualified XMonad.StackSet as W -- does something important i'm sure.
- import XMonad.Actions.CycleWS -- gets around
- import XMonad.Layout.NoBorders -- prettier when fullscreen
- import XMonad.Layout.MultiToggle -- allows fullscreen toggle, without Full layout
- import XMonad.Layout.MultiToggle.Instances --
- import XMonad.Actions.DynamicWorkspaces -- hrmm, is this where withNthWorkspace came from... curious.
- import XMonad.Actions.CopyWindow(copy) --this too?
- --sublayoutstuff http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-SubLayouts.html
- import XMonad.Layout.SubLayouts -- oh this makes it oh so sexy.
- import XMonad.Layout.WindowNavigation -- hrmm
- import XMonad.Layout.BoringWindows -- not so boring, proves handy. make it so.
- main = xmonad $ defaultConfig
- { modMask = mod4Mask -- use tux instead of alt, which is M1(/mod1)
- , terminal = "xterm"
- , normalBorderColor = "#487855" --487855 mk1 of "inteligent green"
- , focusedBorderColor = "#ff6900"
- , keys = djtemacsKeys
- , layoutHook = djtslayoutHook
- , workspaces = djtWorktops
- } -- `additionalKeysP` djtemacsKeys
- djtslayoutHook = smartBorders $ windowNavigation $ subTabbed $ boringWindows $
- mkToggle (NOBORDERS ?? FULL ?? EOT) (Grid ||| OneBig (3/4) (3/4))
- djtWorktops = ["1","2","3","4","5","6","7","8","9"]
- djtemacsKeys = \c -> mkKeymap c $
- [ ("M-S-<Return>", spawn $ terminal c) --but why bother with yeahconsole ;)
- , ("M-x o", spawn "xteddy") -- type mod+x then w to pop up 'woohoo!'
- , ("M-<F11>", sendMessage $ Toggle FULL) --fullscreen toggle. yus.
- , ("M-<F4>", kill) --close a window
- , ("M-<F6>", spawn "xkill") -- no, srsly, close it!
- , ("M-q", spawn "xmonad --recompile && xmonad --restart") --try config changes
- -- , ("M-S-q", io (exitWith ExitSuccess)) --meh, dont need, myt slip n press.
- -- , ("M-n", spawn "dmenu-bind.sh")
- , ("M-<F2>", spawn "~/.config/dmenu/dmenu-bind.sh")
- , ("M-<F3>", spawn "gmrun")
- -- , ("<Menu>", spawn "8menu")
- -- , ("M-<Menu>", spawn "dmenu-bind.sh")
- , ("M-<Space>", sendMessage NextLayout)
- --gamer controls w,s,a,d. also suited for other ~one hand on keyboard, one hand on mouse~ type applications, suchas gimp or blender or audacity, etc.
- --some conventional focus changing keybinds are still here, but de-emphasised, as focus would nominally be changed with mouse using this setup
- , ("M-w", windows W.focusUp) --artistgamer
- , ("M-s", windows W.focusDown) --artistgamer
- , ("M-S-C-s", sendMessage $ pullGroup D) --sublayout --artistgamer
- , ("M-C-a", sendMessage $ pullGroup L) --sublayout --artistgamer
- , ("M-C-d", sendMessage $ pullGroup R) --sublayout --artistgamer
- , ("M-C-w", sendMessage $ pullGroup U) --sublayout --artistgamer
- , ("M-C-s", sendMessage $ pullGroup D) --sublayout --artistgamer
- , ("M-C-e", withFocused (sendMessage . UnMerge)) --sublayout --artistgamer
- , ("M-C-S-e", withFocused (sendMessage . MergeAll)) --sublayout --artstgamer
- , ("M-z", prevWS) --artstgamer
- , ("M-x", nextWS) --artstgamer
- , ("S-M-z", shiftToPrev) --artstgamer
- , ("S-M-x", shiftToNext) --artstgamer
- , ("S-M-w", windows W.swapUp) --artstgamer
- , ("S-M-s", windows W.swapDown) --artstgamer
- , ("M-C-e", withFocused (sendMessage . UnMerge)) --sublayout --artistgamer
- , ("M-<space>", sendMessage NextLayout) --toggle between grid and onebig
- , ("M-<Tab>", windows W.focusDown) -- focus next window --or use mouse
- , ("M-S-<Tab>", windows W.focusUp ) -- focus previous window --or use mouse
- , ("M-e", windows W.swapMaster) -- move focused window to master pane
- , ("M-t", withFocused $ windows . W.sink) -- re-tile floated window
- -- , ("M-C-<Period>", onGroup W.focusUp') --sublayout --not sure wtf anymore
- -- , ("M-C-<Comma>", onGroup W.focusDown') --sublayout --not sure wtf anymore
- -- and the boring windows:, ((modm, xK_j), focusDown) -- wtf to implement?
- -- and the boring windows:, ((modm, xK_k), focusUp) -- wtf to implement?
- -- , ("M-S-<space>", setLayout $ XMonad.layoutHook conf) --rly need dat?
- ]
- ++
- -- (2012-09-29 15:14:37) dr_bs:
- zip (map (\x -> fst x++[snd x]) ((zip (repeat "M-") (['1'..'9'])))) (map (withNthWorkspace W.greedyView) [0..])
- ++
- -- so i extrapolate from dr_bs's above, and from
- -- http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-DynamicWorkspaces.html
- zip (map (\x -> fst x++[snd x]) ((zip (repeat "M-S-") (['1'..'9'])))) (map (withNthWorkspace W.shift) [0..])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement