[xmonad] xmonad-contrib patch
Gwern Branwen
gwern0 at gmail.com
Fri Feb 6 12:20:18 EST 2009
2008/6/2 Lanny Ripple <lanny at cisco.com>:
> Hi all,
>
> Just wanted to say Thanks! to everyone for XMonad. I've got it
> running with gnome for the panels but it blows the gnome WM out of
> the water.
>
> I did run across some functionality I wanted that didn't exist so I
> wrote it up (attached). On reflection I should have added a long
> patch message. I found WindowGo for runOrRaise but often I want to
> pull a window (browser, mail, etc) to my current workspace instead
> of going to the one it's in. copyOrRun (and underlying copyMaybe)
> do that.
>
> Cheers,
> -ljr
>
>
> New patches:
>
> [XMonad.Actions.CopyWindow runOrCopy
> lan3ny at gmail.com**20080602205742] {
> hunk ./XMonad/Actions/CopyWindow.hs 5
> --- Copyright : (c) David Roundy <droundy at darcs.net>, Ivan Veselov <veselov at gmail.com>
> +-- Copyright : (c) David Roundy <droundy at darcs.net>, Ivan Veselov <veselov at gmail.com>, Lanny Ripple <lan3ny at gmail.com>
> hunk ./XMonad/Actions/CopyWindow.hs 20
> - copy, copyToAll, copyWindow, killAllOtherCopies, kill1
> + copy, copyToAll, copyWindow, runOrCopy
> + , killAllOtherCopies, kill1
> hunk ./XMonad/Actions/CopyWindow.hs 25
> +import Control.Monad (filterM)
> hunk ./XMonad/Actions/CopyWindow.hs 55
> +-- Instead of copying a window from a workset to a workset maybe you don't
> +-- want to have to remember where you placed it. For that consider:
> +--
> +-- > , ((modMask x, xK_b ), runOrCopy "firefox" (className =? "Firefox")) -- @@ run or copy firefox
> +--
> hunk ./XMonad/Actions/CopyWindow.hs 68
> --- > , ((modMask x, xK_v )", windows copyToAll) -- @@ Make focused window always visible
> +-- > , ((modMask x, xK_v ), windows copyToAll) -- @@ Make focused window always visible
> hunk ./XMonad/Actions/CopyWindow.hs 74
> --- | copy. Copy the focussed window to a new workspace.
> +-- | copy. Copy the focused window to a new workspace.
> hunk ./XMonad/Actions/CopyWindow.hs 94
> +
> +-- | runOrCopy . runOrCopy will run the provided shell command unless it can
> +-- find a specified window in which case it will copy the window to
> +-- the current workspace. Similar to (i.e., stolen from) "XMonad.Actions.WindowGo".
> +runOrCopy :: String -> Query Bool -> X ()
> +runOrCopy action = copyMaybe $ spawn action
> +
> +-- | copyMaybe. Flatters "XMonad.Actions.WindowGo" ('raiseMaybe')
> +copyMaybe :: X () -> Query Bool -> X ()
> +copyMaybe f thatUserQuery = withWindowSet $ \s -> do
> + maybeResult <- filterM (runQuery thatUserQuery) (allWindows s)
> + case maybeResult of
> + [] -> f
> + (x:_) -> windows $ copyWindow x (currentTag s)
> +
> }
...
Applied, thanks.
--
gwern
More information about the xmonad
mailing list