From c86e6c4c59e8c4888fbed787b2d244d4fae6cf14 Mon Sep 17 00:00:00 2001 From: Peter De Wachter Date: Tue, 12 Jun 2007 19:53:57 +0200 Subject: Magic Focus Automatically puts the focused window in the master position. It's magic. I wrote this for the Circle layout, but it's actually usable with other layouts as well. darcs-hash:20070612175357-06a25-9fdeb7878abc915e54ac0880a3ea21199aab75cc.gz --- MagicFocus.hs | 11 +++++++++++ MetaModule.hs | 1 + 2 files changed, 12 insertions(+) create mode 100644 MagicFocus.hs diff --git a/MagicFocus.hs b/MagicFocus.hs new file mode 100644 index 0000000..444a100 --- /dev/null +++ b/MagicFocus.hs @@ -0,0 +1,11 @@ +module XMonadContrib.MagicFocus (magicFocus) where + +import XMonad +import StackSet + +magicFocus l = l { doLayout = \s -> (doLayout l) s . swap + , modifyLayout = \x -> fmap magicFocus `fmap` modifyLayout l x } + +swap :: Stack a -> Stack a +swap Empty = Empty +swap (Node f u d) = Node f [] (reverse u ++ d) diff --git a/MetaModule.hs b/MetaModule.hs index 4f52783..5357e33 100644 --- a/MetaModule.hs +++ b/MetaModule.hs @@ -22,6 +22,7 @@ import XMonadContrib.FindEmptyWorkspace () import XMonadContrib.GreedyView () import XMonadContrib.HintedTile () import XMonadContrib.LayoutHints () +import XMonadContrib.MagicFocus () import XMonadContrib.Mosaic () import XMonadContrib.NamedWindows () import XMonadContrib.NoBorders () -- cgit v1.2.3