diff --git a/lib/KeyBindings.hs b/lib/KeyBindings.hs
index 9c37844..31d041e 100644
--- a/lib/KeyBindings.hs
+++ b/lib/KeyBindings.hs
@@ -19,12 +19,16 @@ 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 XMonad.Layout.SubLayouts
+import XMonad.Layout.SubLayouts
+import qualified XMonad.Layout.Groups as G
+import qualified XMonad.Layout.Groups.Examples as Ex
import qualified XMonad.Layout.WindowNavigation as Nav
import XMonad.Prompt.Window
@@ -88,7 +92,6 @@ addKeys = [("M-s n", spawn "screenslide start"),
("M-o", chooseLayout "onebig"),
("M-w", chooseLayout "mgrid"),
("M-u", chooseLayout "autogrid"),
--- ("M-S-u", twoTabs),
("M-<Up>", withFocused (sendMessage . maximizeRestore)),
("M-<Down>", withFocused minimizeWindow),
("M-<Right>", withFocused (sendMessage . RestoreMinimizedWin)),
@@ -114,31 +117,36 @@ 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-<Left>", sendMessage $ Nav.Go Nav.L ),
--- ("M-<Right>", sendMessage $ Nav.Go Nav.R ),
--- ("M-<Up>", sendMessage $ Nav.Go Nav.U ),
--- ("M-<Down>", sendMessage $ Nav.Go Nav.D ),
+ ("M-j", bindOn [("inet", Ex.focusDown), ("", windows W.focusDown)]),
+ ("M-k", bindOn [("inet", Ex.focusUp), ("", windows W.focusUp)] ),
-- Rotate windows list
- ("M-C-j", rotateWindows ),
- ("M-C-k", rotateWindows' ),
+ ("M-C-j", bindOn [("inet", Ex.focusGroupDown),
+ ("", rotateWindows)] ),
+ ("M-C-k", bindOn [("inet", Ex.focusGroupUp),
+ ("", rotateWindows')] ),
-- Swap the focused window and the master window
- ("M-<Return>", dwmpromote),
+ ("M-<Return>", bindOn [("inet", Ex.swapGroupMaster),
+ ("", dwmpromote)]),
-- Swap the focused window with the next window
- ("M-S-j", windows W.swapDown ),
- ("M-S-k", windows W.swapUp ),
+ ("M-S-j", bindOn [("inet", Ex.swapDown),
+ ("", windows W.swapDown)]),
+ ("M-S-k", bindOn [("inet", Ex.swapUp),
+ ("", windows W.swapUp)]),
-- Tab/Untab
- ("M-M1-j", sendMessage $ pushWindow Nav.D),
- ("M-M1-l", sendMessage $ pushWindow Nav.R),
+ ("M-M1-j", bindOn [("inet", Ex.moveToGroupDown False),
+ ("", sendMessage $ pushWindow Nav.D)]),
+ ("M-M1-l", bindOn [("inet", Ex.moveToGroupUp False),
+ ("", sendMessage $ pushWindow Nav.R)]),
("M-M1-k", sendMessage $ pushWindow Nav.U),
("M-M1-h", sendMessage $ pushWindow Nav.L),
+ ("M-M1-u", bindOn [("inet", Ex.splitGroup),
+ ("", withFocused (sendMessage . UnMerge))]),
+
("M-M1-u", withFocused (sendMessage . UnMergeAll)),
-- Shrink/expand the master area
diff --git a/lib/Layouts.hs b/lib/Layouts.hs
index b3fa6b5..4c74871 100644
--- a/lib/Layouts.hs
+++ b/lib/Layouts.hs
@@ -34,6 +34,7 @@ import XMonad.Layout.Maximize
import XMonad.Layout.Minimize
import XMonad.Layout.SubLayouts
import XMonad.Layout.Simplest
+import XMonad.Layout.Groups
import qualified XMonad.Layout.WindowNavigation as Nav
@@ -47,6 +48,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 = addTabs shrinkText deco $ subLayout [] Simplest (Grid 2)
+tabgrid = group (tabbed shrinkText deco) (Mirror $ Tall 1 (1/100) (2/3))
+tabfull = addTabs shrinkText deco Simplest
grid = named "grid" $ Grid (2)
vgrid = Grid (1/2)
@@ -97,7 +100,7 @@ myLayout = trackFloating $
Nav.configurableNavigation (Nav.navigateBrightness 0.0) $
avoidStruts $
-- Tab.modify shrinkText deco $
- onWorkspace "inet" (minimax full ||| minimax autogrid ||| onebig) $
+ onWorkspace "inet" (minimax full ||| minimax tabgrid) $
onWorkspace "text" (minimax full ||| minimax autogrid2 ||| minimax dwmtile ||| minimax mirrored ||| books ||| autogrid ||| onebig ) $
onWorkspace "files" (minimax full ||| minimax dwmtile ||| autogrid) $
onWorkspace "im" forim $