mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-17 13:24:14 -07:00
improve the formatting for WindowGo.hs
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
{- --------------------------------------------------------------------------
|
{- |
|
||||||
|
|
|
||||||
Module : XMonad.Actions.WindowGo
|
Module : XMonad.Actions.WindowGo
|
||||||
License : Public domain
|
License : Public domain
|
||||||
|
|
||||||
@@ -8,9 +7,7 @@ Stability : unstable
|
|||||||
Portability : unportable
|
Portability : unportable
|
||||||
|
|
||||||
Defines a few simple operations for raising windows based on XMonad's Query
|
Defines a few simple operations for raising windows based on XMonad's Query
|
||||||
Monad, such as runOrRaise.
|
monad, such as 'runOrRaise'. -}
|
||||||
|
|
||||||
----------------------------------------------------------------------------- -}
|
|
||||||
|
|
||||||
module XMonad.Actions.WindowGo (
|
module XMonad.Actions.WindowGo (
|
||||||
-- * Usage
|
-- * Usage
|
||||||
@@ -26,19 +23,21 @@ import Control.Monad (filterM)
|
|||||||
import qualified XMonad.StackSet as W (allWindows)
|
import qualified XMonad.StackSet as W (allWindows)
|
||||||
import XMonad.ManageHook
|
import XMonad.ManageHook
|
||||||
|
|
||||||
-- $usage
|
{- $usage
|
||||||
--
|
|
||||||
-- Import the module into your @~\/.xmonad\/xmonad.hs@:
|
Import the module into your @~\/.xmonad\/xmonad.hs@:
|
||||||
--
|
|
||||||
-- > import XMonad.Actions.WindowGo
|
> import XMonad.Actions.WindowGo
|
||||||
--
|
|
||||||
-- and define appropriate key bindings:
|
and define appropriate key bindings:
|
||||||
--
|
|
||||||
-- > , ((modMask x .|. shiftMask, xK_g ), raise (className =? "Firefox-bin"))
|
> , ((modMask x .|. shiftMask, xK_g), raise (className =? "Firefox"))
|
||||||
-- > , ((modMask x .|. shiftMask, xK_b ), runOrRaise "mozilla-firefox" (className =? "Firefox-bin"))
|
> , ((modMask x .|. shiftMask, xK_b), runOrRaise "firefox" (className =? "Firefox"))
|
||||||
--
|
|
||||||
-- For detailed instructions on editing your key bindings, see
|
(Note that Firefox v3 and up have a class-name of "Firefox" and "Navigator";
|
||||||
-- "XMonad.Doc.Extending#Editing_key_bindings".
|
lower versions use other classnames such as "Firefox-bin"
|
||||||
|
For detailed instructions on editing your key bindings, see
|
||||||
|
"XMonad.Doc.Extending#Editing_key_bindings". -}
|
||||||
|
|
||||||
-- | 'action' is an executable to be run via 'spawn' if the Window cannot be found.
|
-- | 'action' is an executable to be run via 'spawn' 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.
|
||||||
@@ -49,13 +48,14 @@ runOrRaise action = raiseMaybe $ spawn action
|
|||||||
raise :: Query Bool -> X ()
|
raise :: Query Bool -> X ()
|
||||||
raise = raiseMaybe $ return ()
|
raise = raiseMaybe $ return ()
|
||||||
|
|
||||||
{- | raiseMaybe: this queries all Windows based on a boolean provided by the
|
{- | 'raiseMaybe' queries all Windows based on a boolean provided by the
|
||||||
user. Currently, there are three such useful booleans defined in
|
user. Currently, there are three such useful booleans defined in
|
||||||
XMonad.ManageHook: title, resource, className. Each one tests based pretty
|
XMonad.ManageHook: title, resource, className. Each one tests based pretty
|
||||||
much as you would think. ManageHook also defines several operators, the most
|
much as you would think. ManageHook also defines several operators, the most
|
||||||
useful of which is (=?). So a useful test might be finding a Window whose
|
useful of which is (=?). So a useful test might be finding a Window whose
|
||||||
class is Firefox. Firefox declares the class "Firefox-bin", so you'd want to
|
class is Firefox. Firefox declares the class "Firefox", so you'd want to
|
||||||
pass in a boolean like '(className =? "Firefox-bin")'.
|
pass in a boolean like '(className =? "Firefox")'.
|
||||||
|
|
||||||
If the boolean returns True on one or more windows, then XMonad will quickly
|
If the boolean returns True on one or more windows, then XMonad will quickly
|
||||||
make visible the first result. If no Window meets the criteria, then the
|
make visible the first result. If no Window meets the criteria, then the
|
||||||
first argument comes into play.
|
first argument comes into play.
|
||||||
@@ -69,10 +69,10 @@ raise = raiseMaybe $ return ()
|
|||||||
some cute things with this hook. Suppose you want to do the same thing for
|
some cute things with this hook. Suppose you want to do the same thing for
|
||||||
Mutt which you just did for Firefox - but Mutt runs inside a terminal window?
|
Mutt which you just did for Firefox - but Mutt runs inside a terminal window?
|
||||||
No problem: you search for a terminal window calling itself 'mutt', and if
|
No problem: you search for a terminal window calling itself 'mutt', and if
|
||||||
there isn't you run a terminal with a command to run mutt! Here's an example,
|
there isn't you run a terminal with a command to run Mutt! Here's an example
|
||||||
borrowing 'runInTerm' from XMonad.Utils.Run:
|
(borrowing "XMonad.Utils.Run"'s 'runInTerm'):
|
||||||
|
|
||||||
> , ((modm, xK_m ), raiseMaybe (runInTerm "-title mutt" "mutt") (title =? "mutt"))
|
> , ((modm, xK_m), raiseMaybe (runInTerm "-title mutt" "mutt") (title =? "mutt"))
|
||||||
-}
|
-}
|
||||||
raiseMaybe :: X () -> Query Bool -> X ()
|
raiseMaybe :: X () -> Query Bool -> X ()
|
||||||
raiseMaybe f thatUserQuery = withWindowSet $ \s -> do
|
raiseMaybe f thatUserQuery = withWindowSet $ \s -> do
|
||||||
|
Reference in New Issue
Block a user