summaryrefslogtreecommitdiffstats
path: root/xmonad
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2013-02-15 00:35:52 +0100
committerGravatar Tom Willemsen2013-02-15 00:35:52 +0100
commitde0ac7e06e82aecb9a3c79dbb0a60adeec544b2e (patch)
tree674267c3a8b178f5220597976953c08bd0785769 /xmonad
parentba12781a863032199196b4b6dcc8472d92b6a10a (diff)
downloaddotfiles-de0ac7e06e82aecb9a3c79dbb0a60adeec544b2e.tar.gz
dotfiles-de0ac7e06e82aecb9a3c79dbb0a60adeec544b2e.zip
Add XMonad config
Diffstat (limited to 'xmonad')
-rw-r--r--xmonad/.gitignore3
-rw-r--r--xmonad/Makefile10
-rw-r--r--xmonad/xmonad.hs48
3 files changed, 61 insertions, 0 deletions
diff --git a/xmonad/.gitignore b/xmonad/.gitignore
new file mode 100644
index 0000000..11a024e
--- /dev/null
+++ b/xmonad/.gitignore
@@ -0,0 +1,3 @@
+*.o
+xmonad-x86_64-linux
+xmonad.hi
diff --git a/xmonad/Makefile b/xmonad/Makefile
new file mode 100644
index 0000000..9b8d3c3
--- /dev/null
+++ b/xmonad/Makefile
@@ -0,0 +1,10 @@
+DESTDIR := $(DESTDIR)/.xmonad
+objects=xmonad-x86_64-linux xmonad.hs
+
+GHC := ghc
+
+include ../dotfiles.mk
+
+xmonad-x86_64-linux: xmonad.hs
+ $(GHC) --make $^ -i -ilib -fforce-recomp -main-is main -v0 -o $@
+install-xmonad-x86_64-linux: MODE=744
diff --git a/xmonad/xmonad.hs b/xmonad/xmonad.hs
new file mode 100644
index 0000000..40ec269
--- /dev/null
+++ b/xmonad/xmonad.hs
@@ -0,0 +1,48 @@
+--
+-- It overrides a few basic settings, reusing all other defaults.
+--
+
+import XMonad
+import XMonad.Actions.WindowGo
+import XMonad.Hooks.FadeInactive
+import XMonad.Hooks.ManageDocks
+import XMonad.Hooks.ManageHelpers
+import XMonad.Util.EZConfig
+
+import qualified XMonad.StackSet as W
+
+myLogHook :: X ()
+myLogHook = fadeOutLogHook fadeRules
+
+fadeRules :: Query Rational
+fadeRules = do
+ fullscreen <- isFullscreen
+ conkeror <- className =? "Conkeror"
+ return $ case () of _ | fullscreen -> 1
+ | conkeror -> 0.95
+ | otherwise -> 0.9
+
+main = xmonad $ defaultConfig
+ { terminal = "urxvt"
+ , focusFollowsMouse = False
+ , clickJustFocuses = False
+ , modMask = mod4Mask
+ , layoutHook = avoidStruts $ layoutHook defaultConfig
+ , logHook = myLogHook
+ , manageHook = manageHook defaultConfig <+> manageDocks }
+ `additionalKeysP`
+ [
+ ("C-z ,", screenWorkspace 0 >>= flip whenJust (windows . W.view)),
+ ("C-z .", screenWorkspace 1 >>= flip whenJust (windows . W.view)),
+ ("C-z S-c", spawn "urxvt"),
+ ("C-z S-e", spawn "emacsclient -ca emacs"),
+ ("C-z c", runOrRaiseNext "urxvt" (className =? "URxvt")),
+ ("C-z e", runOrRaiseNext "emacsclient -ca emacs" (className =? "Emacs")),
+ ("C-z w", runOrRaiseNext "conkeror" (className =? "Conkeror")),
+ ("M-S-1", spawn "dmenu_run"),
+ ("M-n", windows W.focusDown),
+ ("M-p", windows W.focusUp),
+ ("M1-C-l", spawn "i3lock -c 000000")
+ ]
+ `removeKeysP`
+ [ ("M-j"), ("M-k") ]