From b1f9bbf3586a74a3539251b35680aa6f8e159421 Mon Sep 17 00:00:00 2001 From: xmonad Date: Sun, 16 Mar 2008 21:57:22 +0100 Subject: Add XMonad.Actions.Promote darcs-hash:20080316205722-a910a-ef6c0d20e5267c6ddcb92cdd089722bc195c3daa.gz --- XMonad/Actions/Promote.hs | 49 +++++++++++++++++++++++++++++++++++++++++++++++ xmonad-contrib.cabal | 1 + 2 files changed, 50 insertions(+) create mode 100644 XMonad/Actions/Promote.hs diff --git a/XMonad/Actions/Promote.hs b/XMonad/Actions/Promote.hs new file mode 100644 index 0000000..0d270d3 --- /dev/null +++ b/XMonad/Actions/Promote.hs @@ -0,0 +1,49 @@ +----------------------------------------------------------------------------- +-- | +-- Module : XMonad.Actions.Promote +-- Copyright : (c) Miikka Koskinen 2007 +-- License : BSD3-style (see LICENSE) +-- +-- Maintainer : xmonad@s001.ethrael.com +-- Stability : unstable +-- Portability : unportable +-- +-- Alternate promote function for xmonad. +-- +-- Moves the focused window to the master pane. All other windows +-- retain their order. If focus is in the master, swap it with the +-- next window in the stack. Focus stays in the master. +-- +----------------------------------------------------------------------------- + +module XMonad.Actions.Promote ( + -- * Usage + -- $usage + promote + ) where + +import XMonad +import XMonad.StackSet + +-- $usage +-- +-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@: +-- +-- > import XMonad.Actions.Promote +-- +-- then add a keybinding or substitute 'promote' in place of swapMaster: +-- +-- > , ((modMask x, xK_Return), promote) +-- +-- For detailed instructions on editing your key bindings, see +-- "XMonad.Doc.Extending#Editing_key_bindings". + +-- | Move the focused window to the master pane. All other windows +-- retain their order. If focus is in the master, swap it with the +-- next windo in the stack. Focus stays in the master. +promote :: X () +promote = windows $ modify' $ + \c -> case c of + Stack _ [] [] -> c + Stack t [] (x:rs) -> Stack x [] (t:rs) + Stack t ls rs -> Stack t [] (reverse ls ++ rs) diff --git a/xmonad-contrib.cabal b/xmonad-contrib.cabal index 1fb5420..250eb07 100644 --- a/xmonad-contrib.cabal +++ b/xmonad-contrib.cabal @@ -84,6 +84,7 @@ library XMonad.Actions.MouseResize XMonad.Actions.NoBorders XMonad.Actions.PerWorkspaceKeys + XMonad.Actions.Promote XMonad.Actions.RotSlaves XMonad.Actions.Search XMonad.Actions.SimpleDate -- cgit v1.2.3