xmonad.patch
author Tomas Zeman <tzeman@volny.cz>
Wed, 15 Feb 2012 15:42:23 +0100
changeset 129 86741f8e3097
parent 38 e56829be0d34
permissions -rw-r--r--
vpnc.patch: folded w/ vpnc-upgrade-1.3.patch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
xmonad
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
diff --git a/source/custom-x11/xmonad/FrugalBuild b/source/custom-x11/xmonad/FrugalBuild
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
new file mode 100644
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
index 0000000..a109bfe
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
--- /dev/null
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
+++ b/source/custom-x11/xmonad/FrugalBuild
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
@@ -0,0 +1,36 @@
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
+pkgname=xmonad
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
+pkgver=0.7
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
+pkgrel=1
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
+pkgdesc="A lightweight X11 tiled window manager written in Haskell"
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
+arch=(i686 x86_64)
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
+url="http://xmonad.org/"
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
+license=('BSD')
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
+depends=('ghc' 'gmp' 'libxinerama' 'haskell-x11')
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
+install='xmonad.install'
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
+source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
+up2date="lynx -nolist -dump '$url'|grep -A5 'stable release'|grep -m1 '$pkgname'|sed 's/.*$pkgname \([0-9.]*\) .*/\1/'"
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
+archs=(i686)
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
+sha1sums=('cf3fb7662c92cadb9ea7bfdc916bbe5cc587ac86')
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
+build() {
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
+  Fcd
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
+  runhaskell Setup.lhs configure --ghc --prefix=/usr \
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
+             --libsubdir=\$compiler/site-local/\$pkgid || return 1
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
+  runhaskell Setup.lhs build || return 1
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
+  runhaskell Setup.lhs register --gen-script
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
+  runhaskell Setup.lhs unregister --gen-script
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
+  
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
+  install -D -m744 register.sh $Fdestdir/usr/share/haskell/$pkgname/register.sh
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
+  install -m744 unregister.sh $Fdestdir/usr/share/haskell/$pkgname/unregister.sh
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
+  runhaskell Setup.lhs copy --destdir=$Fdestdir
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
+  runhaskell util/GenerateManpage.hs
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
+  install -D -m644 man/xmonad.1 $Fdestdir/usr/man/man1/xmonad.1
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
+  install -d -m755 $Fdestdir/usr/share/xmonad
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
+  install -m644 $startdir/examples/README $Fdestdir/usr/share/xmonad/
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
+  install -m644 $startdir/examples/*.hs $Fdestdir/usr/share/xmonad/
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
+}
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
diff --git a/source/custom-x11/xmonad/examples/README b/source/custom-x11/xmonad/examples/README
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
new file mode 100644
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
index 0000000..ba16abb
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
--- /dev/null
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
+++ b/source/custom-x11/xmonad/examples/README
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
@@ -0,0 +1,2 @@
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
+This directory contains examples for ~/xmonad/xmonad.hs
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    52
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
diff --git a/source/custom-x11/xmonad/examples/vegai.hs b/source/custom-x11/xmonad/examples/vegai.hs
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
new file mode 100644
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    55
index 0000000..abcbf37
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    56
--- /dev/null
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    57
+++ b/source/custom-x11/xmonad/examples/vegai.hs
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    58
@@ -0,0 +1,119 @@
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    59
+-- DynamicLog require xmonad-contrib
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    60
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    61
+import XMonad
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    62
+import XMonad.Hooks.DynamicLog
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    63
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    64
+import qualified XMonad.StackSet as W
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    65
+import qualified Data.Map as M
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    66
+import System.Exit
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    67
+import Graphics.X11.Xlib
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    68
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    69
+main = xmonad $ defaultConfig 
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    70
+                { workspaces = workspaces',
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    71
+                  modMask = modMask',
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    72
+                  borderWidth = borderWidth',
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    73
+                  normalBorderColor = normalBorderColor',
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    74
+                  focusedBorderColor = focusedBorderColor',
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    75
+                  defaultGaps = defaultGaps',
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    76
+                  terminal = terminal',
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    77
+                  keys = keys', 
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    78
+                  logHook = logHook'
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    79
+                }
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    80
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    81
+workspaces' :: [WorkspaceId]
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    82
+workspaces' = ["1-code", "2-test", "3-misc", "4-web", "5-mail", "6", "7", "8", "9-irc"]
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    83
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    84
+modMask' :: KeyMask
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    85
+modMask' = mod4Mask
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    86
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    87
+borderWidth' :: Dimension
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    88
+borderWidth' = 0
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    89
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    90
+normalBorderColor', focusedBorderColor' :: String
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    91
+normalBorderColor'  = "#000000"
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    92
+focusedBorderColor' = "#0f0f0f"
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    93
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    94
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    95
+defaultGaps' :: [(Int,Int,Int,Int)]
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    96
+defaultGaps' = [(15,0,0,0), (15,0,0,0)] -- 15 for default dzen font
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    97
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    98
+logHook' :: X ()
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    99
+logHook' = dynamicLogXinerama
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   100
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   101
+terminal' :: String
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   102
+terminal' = "urxvt"
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   103
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   104
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   105
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   106
+keys' :: XConfig Layout -> M.Map (KeyMask, KeySym) (X ())
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   107
+keys' conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   108
+    -- launching and killing programs
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   109
+    [ ((modMask .|. shiftMask, xK_t), spawn $ XMonad.terminal conf) -- %! Launch terminal
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   110
+    , ((modMask,               xK_p     ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"") -- %! Launch dmenu
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   111
+    , ((modMask .|. shiftMask, xK_p     ), spawn "gmrun") -- %! Launch gmrun
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   112
+    , ((modMask .|. shiftMask, xK_c     ), kill) -- %! Close the focused window
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   113
+    , ((modMask .|. shiftMask, xK_e     ), spawn "xemacs")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   114
+    , ((modMask .|. shiftMask, xK_w     ), spawn "swiftweasel")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   115
+    , ((modMask .|. shiftMask, xK_m     ), spawn "claws-mail")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   116
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   117
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   118
+    , ((modMask,               xK_space ), sendMessage NextLayout) -- %! Rotate through the available layout algorithms
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   119
+    , ((modMask .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) -- %!  Reset the layouts on the current workspace to default
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   120
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   121
+    , ((modMask,               xK_n     ), refresh) -- %! Resize viewed windows to the correct size
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   122
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   123
+    -- move focus up or down the window stack
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   124
+    , ((modMask,               xK_Tab   ), windows W.focusDown) -- %! Move focus to the next window
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   125
+    , ((modMask,               xK_j     ), windows W.focusDown) -- %! Move focus to the next window
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   126
+    , ((modMask,               xK_k     ), windows W.focusUp  ) -- %! Move focus to the previous window
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   127
+    , ((modMask,               xK_m     ), windows W.focusMaster  ) -- %! Move focus to the master window
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   128
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   129
+    -- mpd controls
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   130
+    , ((modMask .|. controlMask,  xK_h     ), spawn "mpc prev")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   131
+    , ((modMask .|. controlMask,  xK_t     ), spawn "mpc pause")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   132
+    , ((modMask .|. controlMask,  xK_n     ), spawn "mpc play")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   133
+    , ((modMask .|. controlMask,  xK_s     ), spawn "mpc next")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   134
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   135
+    , ((modMask .|. controlMask,  xK_g     ), spawn "mpc seek -2%")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   136
+    , ((modMask .|. controlMask,  xK_c     ), spawn "mpc volume -4")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   137
+    , ((modMask .|. controlMask,  xK_r     ), spawn "mpc volume +4")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   138
+    , ((modMask .|. controlMask,  xK_l     ), spawn "mpc seek +2%")
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   139
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   140
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   141
+    -- modifying the window order
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   142
+    , ((modMask,               xK_Return), windows W.swapMaster) -- %! Swap the focused window and the master window
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   143
+    , ((modMask .|. shiftMask, xK_j     ), windows W.swapDown  ) -- %! Swap the focused window with the next window
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   144
+    , ((modMask .|. shiftMask, xK_k     ), windows W.swapUp    ) -- %! Swap the focused window with the previous window
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   145
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   146
+    -- resizing the master/slave ratio
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   147
+    , ((modMask,               xK_h     ), sendMessage Shrink) -- %! Shrink the master area
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   148
+    , ((modMask,               xK_l     ), sendMessage Expand) -- %! Expand the master area
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   149
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   150
+    -- floating layer support
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   151
+    , ((modMask,               xK_t     ), withFocused $ windows . W.sink) -- %! Push window back into tiling
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   152
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   153
+    -- increase or decrease number of windows in the master area
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   154
+    , ((modMask              , xK_comma ), sendMessage (IncMasterN 1)) -- %! Increment the number of windows in the master area
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   155
+    , ((modMask              , xK_period), sendMessage (IncMasterN (-1))) -- %! Deincrement the number of windows in the master area
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   156
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   157
+    -- toggle the status bar gap
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   158
+    , ((modMask              , xK_b     ), modifyGap (\i n -> let x = (XMonad.defaultGaps conf ++ repeat (0,0,0,0)) !! i in if n == x then (0,0,0,0) else x)) -- %! Toggle the status bar gap
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   159
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   160
+    -- quit, or restart
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   161
+    , ((modMask .|. shiftMask, xK_q     ), io (exitWith ExitSuccess)) -- %! Quit xmonad
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   162
+    , ((modMask              , xK_q     ), restart "xmonad" True) -- %! Restart xmonad
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   163
+    ]
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   164
+    ++
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   165
+    -- mod-[1..9] %! Switch to workspace N
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   166
+    -- mod-shift-[1..9] %! Move client to workspace N
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   167
+    [((m .|. modMask, k), windows $ f i)
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   168
+        | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   169
+        , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   170
+    ++
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   171
+    -- mod-{a,o} %! Switch to physical/Xinerama screens 1, 2, or 3
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   172
+    -- mod-shift-{a,o} %! Move client to screen 1, 2, or 3
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   173
+    [((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   174
+        | (key, sc) <- zip [xK_a, xK_o] [0..]
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   175
+        , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   176
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   177
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   178
diff --git a/source/custom-x11/xmonad/xmonad.install b/source/custom-x11/xmonad/xmonad.install
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   179
new file mode 100644
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   180
index 0000000..ac322b0
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   181
--- /dev/null
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   182
+++ b/source/custom-x11/xmonad/xmonad.install
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   183
@@ -0,0 +1,23 @@
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   184
+HS_DIR=/usr/share/haskell/xmonad
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   185
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   186
+post_install() {
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   187
+    ${HS_DIR}/register.sh
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   188
+    echo "xmonad now has dynamic configuration via ~/.xmonad/xmonad.hs"
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   189
+    echo "See http://haskell.org/haskellwiki/Xmonad/Config_archive for examples"	
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   190
+}
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   191
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   192
+pre_upgrade() {
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   193
+  ${HS_DIR}/unregister.sh
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   194
+}
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   195
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   196
+post_upgrade() {
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   197
+  ${HS_DIR}/register.sh
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   198
+}
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   199
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   200
+pre_remove() {
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   201
+  ${HS_DIR}/unregister.sh
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   202
+}
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   203
+op=$1
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   204
+shift
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   205
+
e56829be0d34 xmonad-0.7
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   206
+$op $*