mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-07-31 04:01:51 -07:00
New module: XMonad.Prelude
This is a convenience module in order to have less import noise. It re-exports the following: a) Commonly used modules in full (Data.Foldable, Data.Applicative, and so on); though only those that play nicely with each other, so that XMonad.Prelude can be imported unqualified without any problems. This prevents things like `Prelude.(.)` and `Control.Category.(.)` fighting with each other. b) Helper functions that don't necessarily fit in any other module; e.g., the often used abbreviation `fi = fromIntegral`.
This commit is contained in:
@@ -21,9 +21,7 @@ module XMonad.Util.ClickableWorkspaces (
|
||||
clickableWrap,
|
||||
) where
|
||||
|
||||
import Control.Monad ((>=>))
|
||||
import Data.Functor ((<&>))
|
||||
|
||||
import XMonad.Prelude ((<&>), (>=>))
|
||||
import XMonad
|
||||
import XMonad.Hooks.StatusBar.PP (xmobarAction, PP(..))
|
||||
import XMonad.Util.WorkspaceCompare (getSortByIndex)
|
||||
|
@@ -8,7 +8,7 @@
|
||||
-- Stability : unstable
|
||||
-- Portability : not portable
|
||||
--
|
||||
-- Module to dump window information for diagnostic/debugging purposes. See
|
||||
-- Module to dump window information for diagnostic/debugging purposes. See
|
||||
-- "XMonad.Hooks.DebugEvents" and "XMonad.Hooks.DebugStack" for practical uses.
|
||||
--
|
||||
-----------------------------------------------------------------------------
|
||||
@@ -18,13 +18,10 @@ module XMonad.Util.DebugWindow (debugWindow) where
|
||||
import Prelude
|
||||
|
||||
import XMonad
|
||||
import XMonad.Prelude
|
||||
|
||||
import Codec.Binary.UTF8.String (decodeString)
|
||||
import Control.Exception as E
|
||||
import Control.Monad (when)
|
||||
import Data.List (unfoldr
|
||||
,intercalate
|
||||
)
|
||||
import Foreign
|
||||
import Foreign.C.String
|
||||
import Numeric (showHex)
|
||||
@@ -96,7 +93,7 @@ debugWindow w = do
|
||||
,show x
|
||||
,',':show y
|
||||
,if null c then "" else ' ':c
|
||||
,if null cmd then "" else ' ':cmd
|
||||
,if null cmd then "" else ' ':cmd
|
||||
,rb
|
||||
]
|
||||
|
||||
|
@@ -42,7 +42,7 @@ module XMonad.Util.Dzen (
|
||||
(>=>),
|
||||
) where
|
||||
|
||||
import Control.Monad
|
||||
import XMonad.Prelude
|
||||
import XMonad
|
||||
import XMonad.StackSet
|
||||
import XMonad.Util.Run (runProcessWithInputAndWait, seconds)
|
||||
|
@@ -38,14 +38,13 @@ module XMonad.Util.EZConfig (
|
||||
|
||||
import XMonad
|
||||
import XMonad.Actions.Submap
|
||||
import XMonad.Prelude hiding (many)
|
||||
|
||||
import XMonad.Util.NamedActions
|
||||
|
||||
import qualified Data.Map as M
|
||||
import Data.List (foldl', sortBy, groupBy, nub)
|
||||
import Data.Ord (comparing)
|
||||
import Data.Maybe
|
||||
import Control.Arrow (first, (&&&))
|
||||
import qualified Data.Map as M
|
||||
import Data.Ord (comparing)
|
||||
|
||||
import Text.ParserCombinators.ReadP
|
||||
|
||||
@@ -382,9 +381,6 @@ mkSubmaps' subm binds = map combine gathered
|
||||
subm . mkSubmaps' subm $ map (first tail) ks)
|
||||
fstKey = (==) `on` (head . fst)
|
||||
|
||||
on :: (a -> a -> b) -> (c -> a) -> c -> c -> b
|
||||
op `on` f = \x y -> f x `op` f y
|
||||
|
||||
-- | Given a configuration record and a list of (key sequence
|
||||
-- description, action) pairs, parse the key sequences into lists of
|
||||
-- @(KeyMask,KeySym)@ pairs. Key sequences which fail to parse will
|
||||
|
@@ -36,9 +36,7 @@ module XMonad.Util.ExclusiveScratchpads (
|
||||
customFloating
|
||||
) where
|
||||
|
||||
import Control.Applicative (liftA2)
|
||||
import Control.Monad ((<=<),filterM)
|
||||
import Data.Monoid (appEndo)
|
||||
import XMonad.Prelude (appEndo, filterM, liftA2, (<=<))
|
||||
import XMonad
|
||||
import XMonad.Actions.Minimize
|
||||
import XMonad.Actions.TagWindows (addTag,delTag)
|
||||
|
@@ -31,7 +31,7 @@ import qualified Data.Map as M
|
||||
import XMonad.Core
|
||||
import XMonad.Util.PureX
|
||||
import qualified Control.Monad.State as State
|
||||
import Data.Maybe (fromMaybe)
|
||||
import XMonad.Prelude (fromMaybe)
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- $usage
|
||||
|
@@ -34,13 +34,12 @@ module XMonad.Util.Font
|
||||
) where
|
||||
|
||||
import XMonad
|
||||
import XMonad.Prelude
|
||||
import Foreign
|
||||
import Control.Exception as E
|
||||
import Data.Maybe
|
||||
import Text.Printf (printf)
|
||||
|
||||
#ifdef XFT
|
||||
import Data.List
|
||||
import Graphics.X11.Xft
|
||||
import Graphics.X11.Xrender
|
||||
#endif
|
||||
@@ -204,7 +203,3 @@ printStringXMF dpy drw fs@(Xft font) gc fc bc x y s = do
|
||||
\draw -> withXftColorName dpy visual colormap fc $
|
||||
\color -> xftDrawString draw color font x y s
|
||||
#endif
|
||||
|
||||
-- | Short-hand for 'fromIntegral'
|
||||
fi :: (Integral a, Num b) => a -> b
|
||||
fi = fromIntegral
|
||||
|
@@ -37,8 +37,7 @@ module XMonad.Util.Hacks (
|
||||
|
||||
|
||||
import XMonad
|
||||
import Data.Monoid (All(All))
|
||||
import Control.Monad (when, filterM)
|
||||
import XMonad.Prelude (All (All), filterM, when)
|
||||
import System.Posix.Env (putEnv)
|
||||
|
||||
|
||||
|
@@ -55,8 +55,7 @@ import XMonad.Util.Font (Align (..))
|
||||
import XMonad.Util.NamedWindows (getName)
|
||||
|
||||
import Control.Exception as E
|
||||
import Data.List (find, isPrefixOf, isSuffixOf)
|
||||
import Data.Maybe (fromMaybe)
|
||||
import XMonad.Prelude (find, fromMaybe, isPrefixOf, isSuffixOf)
|
||||
import Data.Time (defaultTimeLocale, formatTime, getCurrentTime)
|
||||
import System.Directory (getDirectoryContents)
|
||||
import System.IO (hGetLine)
|
||||
|
@@ -28,9 +28,7 @@ import Graphics.X11.Xlib.Extras (Event(..))
|
||||
import XMonad.Util.Loggers (Logger)
|
||||
import XMonad.Util.NamedScratchpad (NamedScratchpad(..))
|
||||
import qualified XMonad.Util.ExtensibleState as XS
|
||||
import Data.Monoid (All(..))
|
||||
import Data.Char (chr)
|
||||
import Control.Monad (forM, foldM)
|
||||
import XMonad.Prelude (All (..), chr, foldM, forM)
|
||||
import qualified Data.IntMap as M
|
||||
import qualified XMonad.StackSet as W (allWindows)
|
||||
|
||||
|
@@ -46,11 +46,11 @@ module XMonad.Util.NamedActions (
|
||||
|
||||
|
||||
import XMonad.Actions.Submap(submap)
|
||||
import XMonad.Prelude (groupBy)
|
||||
import XMonad
|
||||
import System.Posix.Process(executeFile)
|
||||
import Control.Arrow(Arrow((&&&), second, (***)))
|
||||
import Data.Bits(Bits((.&.), complement))
|
||||
import Data.List (groupBy)
|
||||
import System.Exit(ExitCode(ExitSuccess), exitWith)
|
||||
|
||||
import qualified Data.Map as M
|
||||
|
@@ -32,6 +32,7 @@ module XMonad.Util.NamedScratchpad (
|
||||
) where
|
||||
|
||||
import XMonad
|
||||
import XMonad.Prelude (filterM, listToMaybe, unless)
|
||||
import XMonad.Hooks.ManageHelpers (doRectFloat)
|
||||
import XMonad.Actions.DynamicWorkspaces (addHiddenWorkspace)
|
||||
import XMonad.Hooks.DynamicLog (PP, ppSort)
|
||||
@@ -39,9 +40,6 @@ import XMonad.Actions.SpawnOn (spawnHere)
|
||||
|
||||
import qualified Data.List.NonEmpty as NE
|
||||
|
||||
import Control.Monad (filterM, unless)
|
||||
import Data.Maybe (listToMaybe)
|
||||
|
||||
import qualified XMonad.StackSet as W
|
||||
|
||||
|
||||
|
@@ -24,7 +24,7 @@ module XMonad.Util.NamedWindows (
|
||||
) where
|
||||
|
||||
import Control.Exception as E
|
||||
import Data.Maybe ( fromMaybe, listToMaybe )
|
||||
import XMonad.Prelude ( fromMaybe, listToMaybe )
|
||||
|
||||
import qualified XMonad.StackSet as W ( peek )
|
||||
|
||||
|
@@ -4,6 +4,7 @@ module XMonad.Util.NoTaskbar (-- * Usage
|
||||
,markNoTaskbar) where
|
||||
|
||||
import XMonad.Core
|
||||
import XMonad.Prelude (fi)
|
||||
import XMonad.ManageHook
|
||||
import Graphics.X11.Xlib (Window)
|
||||
import Graphics.X11.Xlib.Atom (aTOM)
|
||||
@@ -27,7 +28,3 @@ markNoTaskbar w = withDisplay $ \d -> do
|
||||
ntb <- getAtom "_NET_WM_STATE_SKIP_TASKBAR"
|
||||
npg <- getAtom "_NET_WM_STATE_SKIP_PAGER"
|
||||
io $ changeProperty32 d w ws aTOM propModePrepend [fi ntb,fi npg]
|
||||
|
||||
-- sigh
|
||||
fi :: (Integral i, Num n) => i -> n
|
||||
fi = fromIntegral
|
||||
|
@@ -27,8 +27,7 @@ import Graphics.X11
|
||||
import Graphics.X11.Xlib.Extras (none, setEventType, setKeyEvent)
|
||||
import Control.Monad.Reader (asks)
|
||||
import XMonad.Operations (withFocused)
|
||||
import Data.Char (isUpper)
|
||||
import Data.Maybe (listToMaybe)
|
||||
import XMonad.Prelude (isUpper, listToMaybe)
|
||||
import XMonad.Util.XSelection (getSelection)
|
||||
import XMonad.Util.EZConfig (parseKey)
|
||||
import Text.ParserCombinators.ReadP (readP_to_S)
|
||||
|
@@ -52,6 +52,7 @@ module XMonad.Util.PureX (
|
||||
|
||||
-- xmonad
|
||||
import XMonad
|
||||
import XMonad.Prelude (Any (..), liftA2)
|
||||
import qualified XMonad.StackSet as W
|
||||
import qualified XMonad.Actions.FocusNth
|
||||
|
||||
@@ -59,10 +60,6 @@ import qualified XMonad.Actions.FocusNth
|
||||
import Control.Monad.State
|
||||
import Control.Monad.Reader
|
||||
|
||||
-- base
|
||||
import Data.Semigroup (Any(..))
|
||||
import Control.Applicative (liftA2)
|
||||
|
||||
-- }}}
|
||||
|
||||
-- --< Usage >-- {{{
|
||||
@@ -291,4 +288,3 @@ focusNth :: XLike m => Int -> m Any
|
||||
focusNth i = focusWith (W.modify' (XMonad.Actions.FocusNth.focusNth' i))
|
||||
|
||||
-- }}}
|
||||
|
||||
|
@@ -38,8 +38,7 @@ module XMonad.Util.RemoteWindows
|
||||
|
||||
import XMonad
|
||||
import XMonad.Util.WindowProperties
|
||||
import Data.Maybe
|
||||
import Control.Monad
|
||||
import XMonad.Prelude
|
||||
import System.Posix.Env
|
||||
|
||||
-- $usage
|
||||
|
@@ -28,8 +28,7 @@ module XMonad.Util.Replace
|
||||
) where
|
||||
|
||||
import XMonad
|
||||
import Data.Function
|
||||
import Control.Monad
|
||||
import XMonad.Prelude
|
||||
|
||||
-- $usage
|
||||
-- You must run the 'replace' action before starting xmonad proper, this
|
||||
|
@@ -40,7 +40,7 @@ import Control.Concurrent (threadDelay)
|
||||
import System.IO
|
||||
import System.Process (runInteractiveProcess)
|
||||
import XMonad
|
||||
import Control.Monad
|
||||
import XMonad.Prelude
|
||||
|
||||
-- $usage
|
||||
-- For an example usage of 'runInTerm' see "XMonad.Prompt.Ssh"
|
||||
|
@@ -22,7 +22,7 @@ module XMonad.Util.SessionStart
|
||||
)
|
||||
where
|
||||
|
||||
import Control.Monad (when)
|
||||
import XMonad.Prelude (when)
|
||||
|
||||
import XMonad
|
||||
import qualified XMonad.Util.ExtensibleState as XS
|
||||
|
@@ -25,7 +25,7 @@ import XMonad
|
||||
import XMonad.Util.Run
|
||||
import System.IO
|
||||
import qualified XMonad.Util.ExtensibleState as XS
|
||||
import Control.Monad
|
||||
import XMonad.Prelude
|
||||
import qualified Data.Map as Map
|
||||
|
||||
-- $usage
|
||||
|
@@ -21,7 +21,7 @@ import XMonad
|
||||
import XMonad.Actions.SpawnOn
|
||||
import Data.Set as Set
|
||||
import qualified XMonad.Util.ExtensibleState as XS
|
||||
import Control.Monad
|
||||
import XMonad.Prelude
|
||||
|
||||
data SpawnOnce = SpawnOnce { unspawnOnce :: (Set String) }
|
||||
deriving (Read, Show, Typeable)
|
||||
|
@@ -80,10 +80,7 @@ module XMonad.Util.Stack ( -- * Usage
|
||||
) where
|
||||
|
||||
import qualified XMonad.StackSet as W
|
||||
import Control.Applicative ((<|>))
|
||||
import Control.Monad (guard)
|
||||
import Data.List (sortBy)
|
||||
|
||||
import XMonad.Prelude (guard, sortBy, (!?), (<|>))
|
||||
|
||||
|
||||
type Zipper a = Maybe (W.Stack a)
|
||||
@@ -328,9 +325,8 @@ elemZ a as = foldlZ_ step False as
|
||||
|
||||
-- | Safe version of '!!'
|
||||
getI :: Int -> [a] -> Maybe a
|
||||
getI _ [] = Nothing
|
||||
getI 0 (a:_) = Just a
|
||||
getI i (_:as) = getI (i-1) as
|
||||
getI i xs = xs !? i
|
||||
{-# DEPRECATED getI "Use XMonad.Prelude.(!?) instead." #-}
|
||||
|
||||
-- | Map a function across both 'Left's and 'Right's.
|
||||
-- The 'Bool' argument is 'True' in a 'Right', 'False'
|
||||
|
@@ -22,10 +22,10 @@ module XMonad.Util.WindowProperties (
|
||||
getProp32, getProp32s)
|
||||
where
|
||||
|
||||
import Control.Monad
|
||||
import Foreign.C.Types (CLong)
|
||||
import XMonad
|
||||
import XMonad.Actions.TagWindows (hasTag)
|
||||
import XMonad.Prelude (filterM)
|
||||
import qualified XMonad.StackSet as W
|
||||
|
||||
-- $edsl
|
||||
|
@@ -25,10 +25,8 @@ module XMonad.Util.WorkspaceCompare ( WorkspaceCompare, WorkspaceSort
|
||||
|
||||
import XMonad
|
||||
import qualified XMonad.StackSet as S
|
||||
import Data.List
|
||||
import Data.Maybe
|
||||
import XMonad.Prelude
|
||||
import XMonad.Actions.PhysicalScreens (ScreenComparator(ScreenComparator), getScreenIdAndRectangle, screenComparatorById)
|
||||
import Data.Function (on)
|
||||
|
||||
type WorkspaceCompare = WorkspaceId -> WorkspaceId -> Ordering
|
||||
type WorkspaceSort = [WindowSpace] -> [WindowSpace]
|
||||
|
@@ -23,8 +23,8 @@ module XMonad.Util.XSelection ( -- * Usage
|
||||
transformSafePromptSelection) where
|
||||
|
||||
import Control.Exception as E (catch,SomeException(..))
|
||||
import Data.Maybe (fromMaybe)
|
||||
import XMonad
|
||||
import XMonad.Prelude (fromMaybe)
|
||||
import XMonad.Util.Run (safeSpawn, unsafeSpawn)
|
||||
|
||||
import Codec.Binary.UTF8.String (decode)
|
||||
|
@@ -32,11 +32,10 @@ module XMonad.Util.XUtils
|
||||
, fi
|
||||
) where
|
||||
|
||||
import Data.Maybe
|
||||
import XMonad.Prelude
|
||||
import XMonad
|
||||
import XMonad.Util.Font
|
||||
import XMonad.Util.Image
|
||||
import Control.Monad
|
||||
|
||||
-- $usage
|
||||
-- See "XMonad.Layout.Tabbed" or "XMonad.Layout.DragPane" or
|
||||
|
Reference in New Issue
Block a user