From 4f23e3daecdacf4703b59dbc7838c0e1810373b2 Mon Sep 17 00:00:00 2001 From: Adam Vogt Date: Tue, 23 Jun 2009 02:26:45 +0200 Subject: Add shiftNthLastFocused to A.TopicSpace Ignore-this: 64f4fa63f4cc25f634f8fbc3276ef2a2 darcs-hash:20090623002645-1499c-6f88accec5c461121b01175a5687b0672d1eafa1.gz --- XMonad/Actions/TopicSpace.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'XMonad/Actions/TopicSpace.hs') diff --git a/XMonad/Actions/TopicSpace.hs b/XMonad/Actions/TopicSpace.hs index 547d143..bb9bd24 100644 --- a/XMonad/Actions/TopicSpace.hs +++ b/XMonad/Actions/TopicSpace.hs @@ -159,6 +159,7 @@ module XMonad.Actions.TopicSpace , currentTopicAction , switchTopic , switchNthLastFocused + , shiftNthLastFocused , currentTopicDir , checkTopicConfig , (>*>) @@ -168,7 +169,7 @@ where import XMonad import Data.List -import Data.Maybe (fromMaybe, isNothing) +import Data.Maybe (fromMaybe, isNothing, listToMaybe) import Data.Ord import qualified Data.Map as M import Graphics.X11.Xlib @@ -274,6 +275,12 @@ switchNthLastFocused tg depth = do lastWs <- getLastFocusedTopics switchTopic tg $ (lastWs ++ repeat (defaultTopic tg)) !! depth +-- | Shift the focused window to the Nth last focused topic, or fallback to doing nothing. +shiftNthLastFocused :: Int -> X () +shiftNthLastFocused n = do + ws <- fmap (listToMaybe . drop n) getLastFocusedTopics + whenJust ws $ windows . W.shift + -- | Returns the directory associated with current topic returns the empty string otherwise. currentTopicDir :: TopicConfig -> X String currentTopicDir tg = do -- cgit v1.2.3