From 59bc265b234f313c5ce68edb26670c9295ada940 Mon Sep 17 00:00:00 2001 From: Ilya Portnov Date: Tue, 3 May 2011 21:38:04 +0600 Subject: [PATCH] Support for tabbed layout on `inet' workspace. --- lib/KeyBindings.hs | 38 +++++++++++++++++++++++--------------- lib/Layouts.hs | 5 ++++- 2 files changed, 27 insertions(+), 16 deletions(-) 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-", withFocused (sendMessage . maximizeRestore)), ("M-", withFocused minimizeWindow), ("M-", withFocused (sendMessage . RestoreMinimizedWin)), @@ -114,31 +117,36 @@ addKeys = [("M-s n", spawn "screenslide start"), -- Move focus to the next window ("M1-", windows W.focusDown), - ("M-j", windows W.focusDown), - ("M-k", windows W.focusUp), - --- ("M-", sendMessage $ Nav.Go Nav.L ), --- ("M-", sendMessage $ Nav.Go Nav.R ), --- ("M-", sendMessage $ Nav.Go Nav.U ), --- ("M-", 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-", dwmpromote), + ("M-", 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 $ -- 1.7.2.3