Use X.L.Groups to replace TabbedModifier.

Ilya Portnov [2011-05-01 15:19:03]
Use X.L.Groups to replace TabbedModifier.
Filename
lib/KeyBindings.hs
lib/Layouts.hs
xmonad.hs
diff --git a/lib/KeyBindings.hs b/lib/KeyBindings.hs
index e79b82a..8b31b5f 100644
--- a/lib/KeyBindings.hs
+++ b/lib/KeyBindings.hs
@@ -19,13 +19,15 @@ import XMonad.Actions.DwmPromote
 import XMonad.Actions.GridSelect
 import XMonad.Actions.FindEmptyWorkspace
 import XMonad.Actions.GroupNavigation
+import XMonad.Actions.PerWorkspaceKeys

 import XMonad.Layout.MultiToggle
 import XMonad.Layout.MultiToggle.Instances
 import XMonad.Layout.Maximize
 import XMonad.Layout.Minimize
-import qualified XMonad.Layout.TabbedModifier as Tab
-import qualified XMonad.Layout.WindowNavigation as Nav
+import XMonad.Layout.Groups.Examples
+-- import qualified XMonad.Layout.TabbedModifier as Tab
+-- import qualified XMonad.Layout.WindowNavigation as Nav

 import XMonad.Prompt
 import XMonad.Prompt.Window
@@ -91,7 +93,7 @@ addKeys = [("M-s n",         spawn "screenslide start"),
           ("M-o",             chooseLayout "onebig"),
           ("M-w",             chooseLayout "mgrid"),
           ("M-u",             chooseLayout "autogrid"),
-          ("M-S-u",           twoTabs),
+--           ("M-S-u",           twoTabs),
           ("M-<Up>",          withFocused (sendMessage . maximizeRestore)),
           ("M-<Down>",        withFocused minimizeWindow),
           ("M-<Right>",       withFocused (sendMessage . RestoreMinimizedWin)),
@@ -117,8 +119,8 @@ addKeys = [("M-s n",         spawn "screenslide start"),

           -- Move focus to the next window
           ("M1-<Tab>",        windows W.focusDown),
-          ("M-j",             windows W.focusDown),
-          ("M-k",             windows W.focusUp  ),
+          ("M-j",             bindOn [("im", focusUp),   ("", windows W.focusDown)]),
+          ("M-k",             bindOn [("im", focusDown), ("", windows W.focusUp)]),

 --        ("M-<Left>",        sendMessage $ Nav.Go Nav.L  ),
 --        ("M-<Right>",       sendMessage $ Nav.Go Nav.R  ),
@@ -137,12 +139,12 @@ addKeys = [("M-s n",         spawn "screenslide start"),
           ("M-S-k",           windows W.swapUp    ),

           -- Tab/Untab
-          ("M-M1-j",          sendMessage $ Tab.pull Nav.L),
-          ("M-M1-l",          sendMessage $ Tab.pull Nav.R),
-          ("M-M1-k",          sendMessage $ Tab.pull Nav.U),
-          ("M-M1-h",          sendMessage $ Tab.pull Nav.D),
+          ("M-M1-j",          moveToGroupDown True),
+          ("M-M1-l",          moveToGroupUp True),
+          -- ("M-M1-k",          sendMessage $ Tab.pull Nav.U),
+          -- ("M-M1-h",          sendMessage $ Tab.pull Nav.D),

-          ("M-M1-u",          withFocused (sendMessage . Tab.UnTab)),
+          ("M-M1-u",          splitGroup),

           -- Shrink/expand the master area
           ("M-e",             sendMessage Shrink),
diff --git a/lib/Layouts.hs b/lib/Layouts.hs
index b48e418..6ab9ebd 100644
--- a/lib/Layouts.hs
+++ b/lib/Layouts.hs
@@ -14,6 +14,7 @@ import XMonad.Layout.Column
 import XMonad.Layout.Decoration
 import XMonad.Layout.PerWorkspace
 import XMonad.Layout.LayoutCombinators
+import XMonad.Layout.Groups
 import XMonad.Layout.Named
 import XMonad.Layout.GridVariants
 import XMonad.Layout.IM
@@ -35,8 +36,8 @@ import XMonad.Layout.Tabbed
 import XMonad.Layout.TrackFloating
 import XMonad.Layout.Maximize
 import XMonad.Layout.Minimize
+import XMonad.Layout.Groups

-import qualified XMonad.Layout.TabbedModifier as Tab
 import qualified XMonad.Layout.WindowNavigation as Nav

 import CommonFunctions
@@ -49,6 +50,8 @@ tWithIM = withIM (1%6) ((Role "buddy_list") `Or` (Role "MainWindow") `Or` (Role

 isGfxPanel = (Role "gimp-toolbox") `Or` (Role "Brush selector") `Or` (Role "toolbox_window") `Or` (Role "Layers")

+imlayout = group (tabbed shrinkText deco) (Grid 2)
+
 grid = named "grid" $ Grid (2)
 vgrid = Grid (1/2)
 tiled = Tall 1 (1/100) (1/2)
@@ -65,7 +68,8 @@ autogrid2 = autoMaster 2 (1/100) grid
 books = named "books" (Tall 1 (1/100) (2/3))
 -- rowtile = Mirror hortile
 -- mgrid = centerMaster grid
-forim = named "im" (tWithIM (minimax grid ||| minimax autogrid2 ||| zgrid ||| Full))
+-- forim = named "im" (tWithIM (minimax grid ||| minimax autogrid2 ||| zgrid ||| Full))
+forim = named "im" $ tWithIM imlayout
 column = Column 1.8
 forgimp = named "gimp" $ withButtons $ combineTwoP (TwoPane 0.03 0.75) column (reflectVert $ Column 0.4) $ Not isGfxPanel
 onebig = named "onebig" $ (OneBig (3/4) (3/4))
@@ -94,9 +98,9 @@ draggable layout = windowSwitcherDecorationWithButtons shrinkText decoB (draggin

 myLayout = trackFloating $
            smartBorders $
-           Nav.configurableNavigation (Nav.navigateBrightness 0.0) $
+           -- Nav.configurableNavigation (Nav.navigateBrightness 0.0) $
            avoidStruts $
-           Tab.modify shrinkText deco $
+           -- Tab.modify shrinkText deco $
            onWorkspace "inet" (minimax full ||| minimax autogrid ||| onebig) $
            onWorkspace "text" (minimax full ||| minimax autogrid2 ||| minimax dwmtile ||| minimax mirrored ||| books ||| autogrid ||| onebig ) $
            onWorkspace "files" (minimax full ||| minimax dwmtile ||| autogrid) $
@@ -105,9 +109,9 @@ myLayout = trackFloating $
            onWorkspace "gimp" (forgimp ||| full ||| grid) $
            onWorkspace "trash" (full ||| autogrid ||| grid) (minimax mirrored ||| full)

-twoTabs = do
-           chooseLayout "autogrid"
-           sendMessage $ IncMasterN 1
-           sendMessage $ Tab.pull Nav.R
-           sendMessage $ IncMasterN (-1)
-
+-- twoTabs = do
+--            chooseLayout "autogrid"
+--            sendMessage $ IncMasterN 1
+--            sendMessage $ Tab.pull Nav.R
+--            sendMessage $ IncMasterN (-1)
+--
diff --git a/xmonad.hs b/xmonad.hs
index 183df16..15cc305 100644
--- a/xmonad.hs
+++ b/xmonad.hs
@@ -1,5 +1,3 @@
-import Data.Monoid (mappend)
-
 import XMonad

 import XMonad.Util.EZConfig (additionalKeysP)
ViewGit