summaryrefslogtreecommitdiffstats
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
parentba12781a863032199196b4b6dcc8472d92b6a10a (diff)
downloaddotfiles-de0ac7e06e82aecb9a3c79dbb0a60adeec544b2e.tar.gz
dotfiles-de0ac7e06e82aecb9a3c79dbb0a60adeec544b2e.zip
Add XMonad config
-rw-r--r--Makefile2
-rw-r--r--xmonad/.gitignore3
-rw-r--r--xmonad/Makefile10
-rw-r--r--xmonad/xmonad.hs48
4 files changed, 62 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 2c76217..ffcb9cb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
export DESTDIR:=$(HOME)
modules=.emacs.d .config .conkerorrc .local .moc .mutt .ncmpcpp \
- .pentadactyl .sawfish .ssh .w3m .weechat .zsh
+ .pentadactyl .sawfish .ssh .w3m .weechat .zsh xmonad
objects=.bash_profile .beetsconfig .conky_box.lua .conkyrc .gitconfig \
.guile .hgrc .offlineimap.py .offlineimaprc .screenrc .scwmrc \
.slrnrc .stumpwmrc .tmux.conf .urlview .xbindkeysrc.scm .Xdefaults \
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") ]