XMonad.Actions.WindowGo: switch to safeSpawn, since everyone just passes a prog name (no shell scripting)

This commit is contained in:
gwern0 2009-06-22 19:32:55 +00:00
parent d4d17e6576
commit 04f440d804

View File

@ -34,12 +34,13 @@ module XMonad.Actions.WindowGo (
import Control.Monad (filterM) import Control.Monad (filterM)
import Data.Char (toLower) import Data.Char (toLower)
import XMonad (Query(), X(), withWindowSet, spawn, runQuery, liftIO) import XMonad (Query(), X(), withWindowSet, runQuery, liftIO)
import Graphics.X11 (Window) import Graphics.X11 (Window)
import XMonad.ManageHook import XMonad.ManageHook
import XMonad.Operations (windows) import XMonad.Operations (windows)
import XMonad.Prompt.Shell (getBrowser, getEditor) import XMonad.Prompt.Shell (getBrowser, getEditor)
import qualified XMonad.StackSet as W (allWindows, peek, swapMaster, focusWindow) import qualified XMonad.StackSet as W (allWindows, peek, swapMaster, focusWindow)
import XMonad.Util.Run (safeSpawnProg)
{- $usage {- $usage
Import the module into your @~\/.xmonad\/xmonad.hs@: Import the module into your @~\/.xmonad\/xmonad.hs@:
@ -59,10 +60,10 @@ appropriate one, or cover your bases by using instead something like
For detailed instructions on editing your key bindings, see For detailed instructions on editing your key bindings, see
"XMonad.Doc.Extending#Editing_key_bindings". -} "XMonad.Doc.Extending#Editing_key_bindings". -}
-- | 'action' is an executable to be run via 'spawn' (of "XMonad.Core") if the Window cannot be found. -- | 'action' is an executable to be run via 'safeSpawnProg' (of "XMonad.Util.Run") if the Window cannot be found.
-- Presumably this executable is the same one that you were looking for. -- Presumably this executable is the same one that you were looking for.
runOrRaise :: String -> Query Bool -> X () runOrRaise :: String -> Query Bool -> X ()
runOrRaise = raiseMaybe . spawn runOrRaise = raiseMaybe . safeSpawnProg
-- | See 'raiseMaybe'. If the Window can't be found, quietly give up and do nothing. -- | See 'raiseMaybe'. If the Window can't be found, quietly give up and do nothing.
raise :: Query Bool -> X () raise :: Query Bool -> X ()
@ -103,7 +104,7 @@ raiseMaybe f thatUserQuery = withWindowSet $ \s -> do
-- | See 'runOrRaise' and 'raiseNextMaybe'. Version that allows cycling through matches. -- | See 'runOrRaise' and 'raiseNextMaybe'. Version that allows cycling through matches.
runOrRaiseNext :: String -> Query Bool -> X () runOrRaiseNext :: String -> Query Bool -> X ()
runOrRaiseNext = raiseNextMaybe . spawn runOrRaiseNext = raiseNextMaybe . safeSpawnProg
-- | See 'raise' and 'raiseNextMaybe'. Version that allows cycling through matches. -- | See 'raise' and 'raiseNextMaybe'. Version that allows cycling through matches.
raiseNext :: Query Bool -> X () raiseNext :: Query Bool -> X ()
@ -154,7 +155,7 @@ raiseAndDo raisef thatUserQuery afterRaise = withWindowSet $ \s -> do
{- | If a window matching the second arugment is found, the window is focused and the third argument is called; {- | If a window matching the second arugment is found, the window is focused and the third argument is called;
otherwise, the first argument is called. -} otherwise, the first argument is called. -}
runOrRaiseAndDo :: String -> Query Bool -> (Window -> X ()) -> X () runOrRaiseAndDo :: String -> Query Bool -> (Window -> X ()) -> X ()
runOrRaiseAndDo = raiseAndDo . spawn runOrRaiseAndDo = raiseAndDo . safeSpawnProg
{- | if the window is found the window is focused and set to master {- | if the window is found the window is focused and set to master
otherwise, the first argument is called. otherwise, the first argument is called.