mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 03:20:21 -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:
parent
6ece010c01
commit
2469269119
@ -32,7 +32,7 @@ import XMonad.Util.Dmenu (dmenu)
|
|||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import System.Exit
|
import System.Exit
|
||||||
import Data.Maybe
|
import XMonad.Prelude
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
--
|
--
|
||||||
|
@ -18,8 +18,7 @@ module XMonad.Actions.CycleSelectedLayouts (
|
|||||||
cycleThroughLayouts) where
|
cycleThroughLayouts) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import Data.List (findIndex)
|
import XMonad.Prelude (findIndex, fromMaybe)
|
||||||
import Data.Maybe (fromMaybe)
|
|
||||||
import XMonad.Layout.LayoutCombinators (JumpToLayout(..))
|
import XMonad.Layout.LayoutCombinators (JumpToLayout(..))
|
||||||
import qualified XMonad.StackSet as S
|
import qualified XMonad.StackSet as S
|
||||||
|
|
||||||
|
@ -78,9 +78,7 @@ module XMonad.Actions.CycleWS (
|
|||||||
|
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List ( find, findIndex )
|
import XMonad.Prelude (find, findIndex, isJust, isNothing)
|
||||||
import Data.Maybe ( isNothing, isJust )
|
|
||||||
|
|
||||||
import XMonad hiding (workspaces)
|
import XMonad hiding (workspaces)
|
||||||
import qualified XMonad.Hooks.WorkspaceHistory as WH
|
import qualified XMonad.Hooks.WorkspaceHistory as WH
|
||||||
import XMonad.StackSet hiding (filter)
|
import XMonad.StackSet hiding (filter)
|
||||||
|
@ -23,14 +23,12 @@ module XMonad.Actions.CycleWorkspaceByScreen (
|
|||||||
, repeatableAction
|
, repeatableAction
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad
|
|
||||||
import Data.IORef
|
import Data.IORef
|
||||||
import Data.List
|
|
||||||
import Data.Maybe
|
|
||||||
|
|
||||||
import Graphics.X11.Xlib.Extras
|
import Graphics.X11.Xlib.Extras
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.Hooks.WorkspaceHistory
|
import XMonad.Hooks.WorkspaceHistory
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
|
@ -43,14 +43,10 @@ module XMonad.Actions.DynamicProjects
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
import Control.Applicative ((<|>))
|
|
||||||
import Control.Monad (when, unless)
|
|
||||||
import Data.Char (isSpace)
|
|
||||||
import Data.List (sort, union, stripPrefix)
|
|
||||||
import Data.Map.Strict (Map)
|
import Data.Map.Strict (Map)
|
||||||
import qualified Data.Map.Strict as Map
|
import qualified Data.Map.Strict as Map
|
||||||
import Data.Maybe (fromMaybe, isNothing)
|
|
||||||
import System.Directory (setCurrentDirectory, getHomeDirectory, makeAbsolute)
|
import System.Directory (setCurrentDirectory, getHomeDirectory, makeAbsolute)
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Actions.DynamicWorkspaces
|
import XMonad.Actions.DynamicWorkspaces
|
||||||
import XMonad.Prompt
|
import XMonad.Prompt
|
||||||
|
@ -36,11 +36,11 @@ module XMonad.Actions.DynamicWorkspaceGroups
|
|||||||
, WSGPrompt
|
, WSGPrompt
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List (find)
|
|
||||||
import Control.Arrow ((&&&))
|
import Control.Arrow ((&&&))
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (find)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import XMonad.Prompt
|
import XMonad.Prompt
|
||||||
|
@ -44,7 +44,7 @@ import XMonad.Actions.CycleWS (findWorkspace, WSType(..), Direction1D(..), doTo)
|
|||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.Maybe (fromJust, fromMaybe)
|
import XMonad.Prelude (fromJust, fromMaybe)
|
||||||
import Data.Ord (comparing)
|
import Data.Ord (comparing)
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -35,14 +35,12 @@ module XMonad.Actions.DynamicWorkspaces (
|
|||||||
WorkspaceIndex
|
WorkspaceIndex
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import XMonad.Prelude (find, isNothing, when)
|
||||||
import XMonad hiding (workspaces)
|
import XMonad hiding (workspaces)
|
||||||
import XMonad.StackSet hiding (filter, modify, delete)
|
import XMonad.StackSet hiding (filter, modify, delete)
|
||||||
import XMonad.Prompt.Workspace ( Wor(Wor), workspacePrompt )
|
import XMonad.Prompt.Workspace ( Wor(Wor), workspacePrompt )
|
||||||
import XMonad.Prompt ( XPConfig, mkXPrompt )
|
import XMonad.Prompt ( XPConfig, mkXPrompt )
|
||||||
import XMonad.Util.WorkspaceCompare ( getSortByIndex )
|
import XMonad.Util.WorkspaceCompare ( getSortByIndex )
|
||||||
import Data.List (find)
|
|
||||||
import Data.Maybe (isNothing)
|
|
||||||
import Control.Monad (when)
|
|
||||||
import qualified Data.Map.Strict as Map
|
import qualified Data.Map.Strict as Map
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
|
||||||
|
@ -38,18 +38,13 @@ module XMonad.Actions.EasyMotion ( -- * Usage
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet as W
|
import XMonad.Prelude
|
||||||
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Util.Font (releaseXMF, initXMF, Align(AlignCenter), XMonadFont(..), textExtentsXMF)
|
import XMonad.Util.Font (releaseXMF, initXMF, Align(AlignCenter), XMonadFont(..), textExtentsXMF)
|
||||||
import XMonad.Util.XUtils (fi, createNewWindow, paintAndWrite, deleteWindow, showWindow)
|
import XMonad.Util.XUtils (createNewWindow, paintAndWrite, deleteWindow, showWindow)
|
||||||
import Control.Monad (replicateM)
|
|
||||||
import Control.Arrow ((&&&))
|
import Control.Arrow ((&&&))
|
||||||
import Data.Functor (($>))
|
import qualified Data.Map.Strict as M (Map, elems, map, mapWithKey)
|
||||||
import Data.Maybe (isJust, listToMaybe)
|
|
||||||
import qualified Data.Map.Strict as M (Map, map, mapWithKey, elems)
|
|
||||||
import Data.Set (toList)
|
|
||||||
import Graphics.X11.Xlib.Extras (getWindowAttributes, getEvent)
|
|
||||||
import qualified Data.List as L (filter, partition, find, nub)
|
|
||||||
import Data.List (sortOn)
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
--
|
--
|
||||||
@ -275,9 +270,9 @@ handleSelectWindow c = do
|
|||||||
$ M.mapWithKey (\sid ks -> buildOverlays ks <$> sortedOverlayWindows sid) m
|
$ M.mapWithKey (\sid ks -> buildOverlays ks <$> sortedOverlayWindows sid) m
|
||||||
where
|
where
|
||||||
screenById :: ScreenId -> Maybe (W.Screen WorkspaceId (Layout Window) Window ScreenId ScreenDetail)
|
screenById :: ScreenId -> Maybe (W.Screen WorkspaceId (Layout Window) Window ScreenId ScreenDetail)
|
||||||
screenById sid = L.find ((== sid) . screen) (W.screens ws)
|
screenById sid = find ((== sid) . W.screen) (W.screens ws)
|
||||||
visibleWindowsOnScreen :: ScreenId -> [Window]
|
visibleWindowsOnScreen :: ScreenId -> [Window]
|
||||||
visibleWindowsOnScreen sid = L.filter (`elem` toList mappedWins) $ W.integrate' $ screenById sid >>= W.stack . W.workspace
|
visibleWindowsOnScreen sid = filter (`elem` toList mappedWins) $ W.integrate' $ screenById sid >>= W.stack . W.workspace
|
||||||
sortedOverlayWindows :: ScreenId -> X [OverlayWindow]
|
sortedOverlayWindows :: ScreenId -> X [OverlayWindow]
|
||||||
sortedOverlayWindows sid = sortOverlayWindows <$> buildOverlayWindows dpy th (visibleWindowsOnScreen sid)
|
sortedOverlayWindows sid = sortOverlayWindows <$> buildOverlayWindows dpy th (visibleWindowsOnScreen sid)
|
||||||
status <- io $ grabKeyboard dpy rw True grabModeAsync grabModeAsync currentTime
|
status <- io $ grabKeyboard dpy rw True grabModeAsync grabModeAsync currentTime
|
||||||
@ -331,7 +326,7 @@ selectWindow conf =
|
|||||||
where
|
where
|
||||||
-- make sure the key lists don't contain: backspace, our cancel key, or duplicates
|
-- make sure the key lists don't contain: backspace, our cancel key, or duplicates
|
||||||
sanitise :: [KeySym] -> [KeySym]
|
sanitise :: [KeySym] -> [KeySym]
|
||||||
sanitise = L.nub . L.filter (`notElem` [xK_BackSpace, cancelKey conf])
|
sanitise = nub . filter (`notElem` [xK_BackSpace, cancelKey conf])
|
||||||
sanitiseKeys :: ChordKeys -> ChordKeys
|
sanitiseKeys :: ChordKeys -> ChordKeys
|
||||||
sanitiseKeys cKeys =
|
sanitiseKeys cKeys =
|
||||||
case cKeys of
|
case cKeys of
|
||||||
@ -381,12 +376,12 @@ handleKeyboard dpy drawFn cancel selected deselected = do
|
|||||||
case x of
|
case x of
|
||||||
Backspace -> redraw >> handleKeyboard dpy drawFn cancel selected deselected
|
Backspace -> redraw >> handleKeyboard dpy drawFn cancel selected deselected
|
||||||
_ -> return x
|
_ -> return x
|
||||||
isNextOverlayKey keySym = isJust (L.find ((== Just keySym) . listToMaybe .chord) selected)
|
isNextOverlayKey keySym = isJust (find ((== Just keySym) . listToMaybe .chord) selected)
|
||||||
handleNextOverlayKey keySym =
|
handleNextOverlayKey keySym =
|
||||||
case fg of
|
case fg of
|
||||||
[x] -> return $ Selected x
|
[x] -> return $ Selected x
|
||||||
_ -> handleKeyboard dpy drawFn cancel (trim fg) (clear bg) >>= retryBackspace
|
_ -> handleKeyboard dpy drawFn cancel (trim fg) (clear bg) >>= retryBackspace
|
||||||
where
|
where
|
||||||
(fg, bg) = L.partition ((== Just keySym) . listToMaybe . chord) selected
|
(fg, bg) = partition ((== Just keySym) . listToMaybe . chord) selected
|
||||||
trim = map (\o -> o { chord = tail $ chord o })
|
trim = map (\o -> o { chord = tail $ chord o })
|
||||||
clear = map (\o -> o { chord = [] })
|
clear = map (\o -> o { chord = [] })
|
||||||
|
@ -18,9 +18,7 @@ module XMonad.Actions.FindEmptyWorkspace (
|
|||||||
viewEmptyWorkspace, tagToEmptyWorkspace, sendToEmptyWorkspace
|
viewEmptyWorkspace, tagToEmptyWorkspace, sendToEmptyWorkspace
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List
|
import XMonad.Prelude
|
||||||
import Data.Maybe ( isNothing )
|
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet
|
import XMonad.StackSet
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ module XMonad.Actions.FlexibleResize (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Util.XUtils (fi)
|
import XMonad.Prelude (fi)
|
||||||
import Foreign.C.Types
|
import Foreign.C.Types
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -27,8 +27,7 @@ module XMonad.Actions.FloatSnap (
|
|||||||
ifClick') where
|
ifClick') where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import Data.List (sort)
|
import XMonad.Prelude (fromJust, isNothing, listToMaybe, sort)
|
||||||
import Data.Maybe (listToMaybe,fromJust,isNothing)
|
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
|
|
||||||
|
@ -78,15 +78,14 @@ module XMonad.Actions.GridSelect (
|
|||||||
-- * Types
|
-- * Types
|
||||||
TwoDState,
|
TwoDState,
|
||||||
) where
|
) where
|
||||||
import Data.Maybe
|
import Control.Arrow ((***))
|
||||||
import Data.Bits
|
import Data.Bits
|
||||||
import Data.Char
|
|
||||||
import Data.Ord (comparing)
|
import Data.Ord (comparing)
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Control.Arrow
|
|
||||||
import Data.List as L
|
import Data.List as L
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import XMonad hiding (liftX)
|
import XMonad hiding (liftX)
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.Util.Font
|
import XMonad.Util.Font
|
||||||
import XMonad.Prompt (mkUnmanagedWindow)
|
import XMonad.Prompt (mkUnmanagedWindow)
|
||||||
import XMonad.StackSet as W
|
import XMonad.StackSet as W
|
||||||
|
@ -35,15 +35,17 @@ module XMonad.Actions.GroupNavigation ( -- * Usage
|
|||||||
|
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Foldable as Fold
|
import Data.Map ((!))
|
||||||
import Data.Map as Map
|
import qualified Data.Map as Map
|
||||||
import Data.Sequence as Seq
|
import Data.Sequence (Seq, ViewL (EmptyL, (:<)), viewl, (<|), (><), (|>))
|
||||||
import Data.Set as Set
|
import qualified Data.Sequence as Seq
|
||||||
|
import qualified Data.Set as Set
|
||||||
import Graphics.X11.Types
|
import Graphics.X11.Types
|
||||||
import Prelude hiding (concatMap, drop, elem, filter, null, reverse)
|
import Prelude hiding (concatMap, drop, elem, filter, null, reverse)
|
||||||
import XMonad.Core
|
import XMonad.Core
|
||||||
import XMonad.ManageHook
|
import XMonad.ManageHook
|
||||||
import XMonad.Operations (windows, withFocused)
|
import XMonad.Operations (windows, withFocused)
|
||||||
|
import XMonad.Prelude (elem, foldl')
|
||||||
import qualified XMonad.StackSet as SS
|
import qualified XMonad.StackSet as SS
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
|
||||||
@ -132,7 +134,7 @@ orderedWindowList dir = withWindowSet $ \ss -> do
|
|||||||
wsids <- asks (Seq.fromList . workspaces . config)
|
wsids <- asks (Seq.fromList . workspaces . config)
|
||||||
let wspcs = orderedWorkspaceList ss wsids
|
let wspcs = orderedWorkspaceList ss wsids
|
||||||
wins = dirfun dir
|
wins = dirfun dir
|
||||||
$ Fold.foldl' (><) Seq.empty
|
$ foldl' (><) Seq.empty
|
||||||
$ fmap (Seq.fromList . SS.integrate' . SS.stack) wspcs
|
$ fmap (Seq.fromList . SS.integrate' . SS.stack) wspcs
|
||||||
cur = SS.peek ss
|
cur = SS.peek ss
|
||||||
return $ maybe wins (rotfun wins) cur
|
return $ maybe wins (rotfun wins) cur
|
||||||
@ -146,7 +148,7 @@ orderedWorkspaceList :: WindowSet -> Seq String -> Seq WindowSpace
|
|||||||
orderedWorkspaceList ss wsids = rotateTo isCurWS wspcs'
|
orderedWorkspaceList ss wsids = rotateTo isCurWS wspcs'
|
||||||
where
|
where
|
||||||
wspcs = SS.workspaces ss
|
wspcs = SS.workspaces ss
|
||||||
wspcsMap = Fold.foldl' (\m ws -> Map.insert (SS.tag ws) ws m) Map.empty wspcs
|
wspcsMap = foldl' (\m ws -> Map.insert (SS.tag ws) ws m) Map.empty wspcs
|
||||||
wspcs' = fmap (wspcsMap !) wsids
|
wspcs' = fmap (wspcsMap !) wsids
|
||||||
isCurWS ws = SS.tag ws == SS.tag (SS.workspace $ SS.current ss)
|
isCurWS ws = SS.tag ws == SS.tag (SS.workspace $ SS.current ss)
|
||||||
|
|
||||||
@ -172,26 +174,11 @@ updateHistory :: HistoryDB -> X HistoryDB
|
|||||||
updateHistory (HistoryDB oldcur oldhist) = withWindowSet $ \ss -> do
|
updateHistory (HistoryDB oldcur oldhist) = withWindowSet $ \ss -> do
|
||||||
let newcur = SS.peek ss
|
let newcur = SS.peek ss
|
||||||
wins = Set.fromList $ SS.allWindows ss
|
wins = Set.fromList $ SS.allWindows ss
|
||||||
newhist = flt (`Set.member` wins) (ins oldcur oldhist)
|
newhist = Seq.filter (`Set.member` wins) (ins oldcur oldhist)
|
||||||
return $ HistoryDB newcur (del newcur newhist)
|
return $ HistoryDB newcur (del newcur newhist)
|
||||||
where
|
where
|
||||||
ins x xs = maybe xs (<| xs) x
|
ins x xs = maybe xs (<| xs) x
|
||||||
del x xs = maybe xs (\x' -> flt (/= x') xs) x
|
del x xs = maybe xs (\x' -> Seq.filter (/= x') xs) x
|
||||||
|
|
||||||
--- Two replacements for Seq.filter and Seq.breakl available only in
|
|
||||||
--- containers-0.3.0.0, which only ships with ghc 6.12. Once we
|
|
||||||
--- decide to no longer support ghc < 6.12, these should be replaced
|
|
||||||
--- with Seq.filter and Seq.breakl.
|
|
||||||
|
|
||||||
flt :: (a -> Bool) -> Seq a -> Seq a
|
|
||||||
flt p = Fold.foldl (\xs x -> if p x then xs |> x else xs) Seq.empty
|
|
||||||
|
|
||||||
brkl :: (a -> Bool) -> Seq a -> (Seq a, Seq a)
|
|
||||||
brkl p xs = flip Seq.splitAt xs
|
|
||||||
$ snd
|
|
||||||
$ Fold.foldr (\x (i, j) -> if p x then (i-1, i-1) else (i-1, j)) (l, l) xs
|
|
||||||
where
|
|
||||||
l = Seq.length xs
|
|
||||||
|
|
||||||
--- Some sequence helpers --------------------------------------------
|
--- Some sequence helpers --------------------------------------------
|
||||||
|
|
||||||
@ -205,7 +192,7 @@ rotate xs = rotate' (viewl xs)
|
|||||||
-- Rotates the sequence until an element matching the given condition
|
-- Rotates the sequence until an element matching the given condition
|
||||||
-- is at the beginning of the sequence.
|
-- is at the beginning of the sequence.
|
||||||
rotateTo :: (a -> Bool) -> Seq a -> Seq a
|
rotateTo :: (a -> Bool) -> Seq a -> Seq a
|
||||||
rotateTo cond xs = let (lxs, rxs) = brkl cond xs in rxs >< lxs
|
rotateTo cond xs = let (lxs, rxs) = Seq.breakl cond xs in rxs >< lxs
|
||||||
|
|
||||||
--- A monadic find ---------------------------------------------------
|
--- A monadic find ---------------------------------------------------
|
||||||
|
|
||||||
@ -239,4 +226,3 @@ isOnAnyVisibleWS = do
|
|||||||
visibleWs = w `elem` allVisible
|
visibleWs = w `elem` allVisible
|
||||||
unfocused = maybe True (w /=) $ SS.peek ws
|
unfocused = maybe True (w /=) $ SS.peek ws
|
||||||
return $ visibleWs && unfocused
|
return $ visibleWs && unfocused
|
||||||
|
|
||||||
|
@ -27,11 +27,10 @@ module XMonad.Actions.KeyRemap (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.Util.Paste
|
import XMonad.Util.Paste
|
||||||
import Data.List
|
|
||||||
|
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
import Control.Monad
|
|
||||||
|
|
||||||
|
|
||||||
data KeymapTable = KeymapTable [((KeyMask, KeySym), (KeyMask, KeySym))] deriving (Typeable, Show)
|
data KeymapTable = KeymapTable [((KeyMask, KeySym), (KeyMask, KeySym))] deriving (Typeable, Show)
|
||||||
|
@ -18,10 +18,9 @@ module XMonad.Actions.Launcher(
|
|||||||
, launcherPrompt
|
, launcherPrompt
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List (find, findIndex, isPrefixOf, tails)
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Maybe (isJust)
|
|
||||||
import XMonad hiding (config)
|
import XMonad hiding (config)
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.Prompt
|
import XMonad.Prompt
|
||||||
import XMonad.Util.Run
|
import XMonad.Util.Run
|
||||||
|
|
||||||
|
@ -51,13 +51,11 @@ module XMonad.Actions.MessageFeedback
|
|||||||
|
|
||||||
import XMonad ( Window )
|
import XMonad ( Window )
|
||||||
import XMonad.Core ( X(), Message, SomeMessage(..), LayoutClass(..), windowset, catchX, WorkspaceId, Layout, whenJust )
|
import XMonad.Core ( X(), Message, SomeMessage(..), LayoutClass(..), windowset, catchX, WorkspaceId, Layout, whenJust )
|
||||||
import XMonad.StackSet ( Workspace, current, workspace, layout, tag )
|
|
||||||
import XMonad.Operations ( updateLayout, windowBracket, modifyWindowSet )
|
import XMonad.Operations ( updateLayout, windowBracket, modifyWindowSet )
|
||||||
|
import XMonad.Prelude ( isJust, liftA2, void )
|
||||||
|
import XMonad.StackSet ( Workspace, current, workspace, layout, tag )
|
||||||
|
|
||||||
import Data.Maybe ( isJust )
|
|
||||||
import Control.Monad ( void )
|
|
||||||
import Control.Monad.State ( gets )
|
import Control.Monad.State ( gets )
|
||||||
import Control.Applicative ( liftA2 )
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -35,6 +35,7 @@ module XMonad.Actions.Minimize
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (fromMaybe, join, listToMaybe)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import qualified XMonad.Layout.BoringWindows as BW
|
import qualified XMonad.Layout.BoringWindows as BW
|
||||||
@ -43,8 +44,6 @@ import XMonad.Util.Minimize
|
|||||||
import XMonad.Util.WindowProperties (getProp32)
|
import XMonad.Util.WindowProperties (getProp32)
|
||||||
|
|
||||||
import Foreign.C.Types (CLong)
|
import Foreign.C.Types (CLong)
|
||||||
import Control.Monad (join)
|
|
||||||
import Data.Maybe (fromMaybe, listToMaybe)
|
|
||||||
import qualified Data.List as L
|
import qualified Data.List as L
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
|
@ -21,14 +21,13 @@ module XMonad.Actions.MouseGestures (
|
|||||||
mkCollect
|
mkCollect
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Util.Types (Direction2D(..))
|
import XMonad.Util.Types (Direction2D(..))
|
||||||
|
|
||||||
import Data.IORef
|
import Data.IORef
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Map (Map)
|
import Data.Map (Map)
|
||||||
import Data.Maybe
|
|
||||||
import Control.Monad
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
--
|
--
|
||||||
|
@ -57,11 +57,10 @@ module XMonad.Actions.Navigation2D ( -- * Usage
|
|||||||
, Direction2D(..)
|
, Direction2D(..)
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Applicative
|
|
||||||
import qualified Data.List as L
|
import qualified Data.List as L
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Maybe
|
|
||||||
import Data.Ord (comparing)
|
import Data.Ord (comparing)
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad hiding (Screen)
|
import XMonad hiding (Screen)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
@ -890,10 +889,6 @@ swap win winset = W.focusWindow cur
|
|||||||
centerOf :: Rectangle -> (Position, Position)
|
centerOf :: Rectangle -> (Position, Position)
|
||||||
centerOf r = (rect_x r + fi (rect_width r) `div` 2, rect_y r + fi (rect_height r) `div` 2)
|
centerOf r = (rect_x r + fi (rect_width r) `div` 2, rect_y r + fi (rect_height r) `div` 2)
|
||||||
|
|
||||||
-- | Shorthand for integer conversions
|
|
||||||
fi :: (Integral a, Num b) => a -> b
|
|
||||||
fi = fromIntegral
|
|
||||||
|
|
||||||
-- | Functions to choose the subset of windows to operate on
|
-- | Functions to choose the subset of windows to operate on
|
||||||
thisLayer, otherLayer :: a -> a -> a
|
thisLayer, otherLayer :: a -> a -> a
|
||||||
thisLayer = curry fst
|
thisLayer = curry fst
|
||||||
|
@ -26,12 +26,9 @@ module XMonad.Actions.OnScreen (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (fromMaybe, guard)
|
||||||
import XMonad.StackSet hiding (new)
|
import XMonad.StackSet hiding (new)
|
||||||
|
|
||||||
import Control.Monad (guard)
|
|
||||||
-- import Control.Monad.State.Class (gets)
|
|
||||||
import Data.Maybe (fromMaybe)
|
|
||||||
|
|
||||||
|
|
||||||
-- | Focus data definitions
|
-- | Focus data definitions
|
||||||
data Focus = FocusNew -- ^ always focus the new screen
|
data Focus = FocusNew -- ^ always focus the new screen
|
||||||
|
@ -30,11 +30,9 @@ module XMonad.Actions.PhysicalScreens (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (findIndex, on, sortBy)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import Data.List (sortBy,findIndex)
|
|
||||||
import Data.Function (on)
|
|
||||||
|
|
||||||
{- $usage
|
{- $usage
|
||||||
|
|
||||||
This module allows you name Xinerama screens from XMonad using their
|
This module allows you name Xinerama screens from XMonad using their
|
||||||
|
@ -38,11 +38,9 @@ module XMonad.Actions.Plane
|
|||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
import Control.Monad
|
|
||||||
import Data.List
|
|
||||||
import Data.Map hiding (split)
|
import Data.Map hiding (split)
|
||||||
import Data.Maybe
|
|
||||||
|
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet hiding (workspaces)
|
import XMonad.StackSet hiding (workspaces)
|
||||||
import XMonad.Util.Run
|
import XMonad.Util.Run
|
||||||
|
@ -32,9 +32,8 @@ module XMonad.Actions.Prefix
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Maybe
|
|
||||||
import Control.Monad (liftM2)
|
|
||||||
|
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Util.ExtensibleState as XS
|
import XMonad.Util.ExtensibleState as XS
|
||||||
import XMonad.Util.Paste (sendKey)
|
import XMonad.Util.Paste (sendKey)
|
||||||
|
@ -25,7 +25,7 @@ module XMonad.Actions.RotateSome (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Arrow ((***))
|
import Control.Arrow ((***))
|
||||||
import Data.List (partition, sortOn, (\\))
|
import XMonad.Prelude (partition, sortOn, (\\))
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import XMonad (Window, WindowSpace, Rectangle, X, runLayout, screenRect, windows, withWindowSet)
|
import XMonad (Window, WindowSpace, Rectangle, X, runLayout, screenRect, windows, withWindowSet)
|
||||||
import XMonad.StackSet (Screen (Screen), Stack (Stack), current, floating, modify', stack)
|
import XMonad.StackSet (Screen (Screen), Stack (Stack), current, floating, modify', stack)
|
||||||
|
@ -65,13 +65,12 @@ module XMonad.Actions.Search ( -- * Usage
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Codec.Binary.UTF8.String (encode)
|
import Codec.Binary.UTF8.String (encode)
|
||||||
import Data.Char (isAlphaNum, isAscii)
|
|
||||||
import Data.List (isPrefixOf)
|
|
||||||
import Text.Printf
|
import Text.Printf
|
||||||
import XMonad (X (), liftIO)
|
import XMonad (X (), liftIO)
|
||||||
import XMonad.Prompt (XPConfig (), XPrompt (showXPrompt, nextCompletion, commandToComplete),
|
import XMonad.Prompt (XPConfig (), XPrompt (showXPrompt, nextCompletion, commandToComplete),
|
||||||
getNextCompletion,
|
getNextCompletion,
|
||||||
historyCompletionP, mkXPrompt)
|
historyCompletionP, mkXPrompt)
|
||||||
|
import XMonad.Prelude (isAlphaNum, isAscii, isPrefixOf)
|
||||||
import XMonad.Prompt.Shell (getBrowser)
|
import XMonad.Prompt.Shell (getBrowser)
|
||||||
import XMonad.Util.Run (safeSpawn)
|
import XMonad.Util.Run (safeSpawn)
|
||||||
import XMonad.Util.XSelection (getSelection)
|
import XMonad.Util.XSelection (getSelection)
|
||||||
|
@ -23,11 +23,10 @@ module XMonad.Actions.ShowText
|
|||||||
, ShowTextConfig(..)
|
, ShowTextConfig(..)
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad (when)
|
|
||||||
import Data.Map (Map,empty,insert,lookup)
|
import Data.Map (Map,empty,insert,lookup)
|
||||||
import Data.Monoid (All)
|
|
||||||
import Prelude hiding (lookup)
|
import Prelude hiding (lookup)
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (All, fi, when)
|
||||||
import XMonad.StackSet (current,screen)
|
import XMonad.StackSet (current,screen)
|
||||||
import XMonad.Util.Font (Align(AlignCenter)
|
import XMonad.Util.Font (Align(AlignCenter)
|
||||||
, initXMF
|
, initXMF
|
||||||
@ -37,7 +36,6 @@ import XMonad.Util.Font (Align(AlignCenter)
|
|||||||
import XMonad.Util.Timer (startTimer)
|
import XMonad.Util.Timer (startTimer)
|
||||||
import XMonad.Util.XUtils (createNewWindow
|
import XMonad.Util.XUtils (createNewWindow
|
||||||
, deleteWindow
|
, deleteWindow
|
||||||
, fi
|
|
||||||
, showWindow
|
, showWindow
|
||||||
, paintAndWrite)
|
, paintAndWrite)
|
||||||
import qualified XMonad.Util.ExtensibleState as ES
|
import qualified XMonad.Util.ExtensibleState as ES
|
||||||
|
@ -29,15 +29,13 @@ module XMonad.Actions.SpawnOn (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Exception (tryJust)
|
import Control.Exception (tryJust)
|
||||||
import Control.Monad (guard)
|
|
||||||
import Data.List (isInfixOf)
|
|
||||||
import Data.Maybe (isJust)
|
|
||||||
import System.IO.Error (isDoesNotExistError)
|
import System.IO.Error (isDoesNotExistError)
|
||||||
import System.IO.Unsafe (unsafePerformIO)
|
import System.IO.Unsafe (unsafePerformIO)
|
||||||
import System.Posix.Types (ProcessID)
|
import System.Posix.Types (ProcessID)
|
||||||
import Text.Printf (printf)
|
import Text.Printf (printf)
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import XMonad.Hooks.ManageHelpers
|
import XMonad.Hooks.ManageHelpers
|
||||||
|
@ -20,10 +20,9 @@ module XMonad.Actions.Submap (
|
|||||||
submapDefaultWithKey
|
submapDefaultWithKey
|
||||||
) where
|
) where
|
||||||
import Data.Bits
|
import Data.Bits
|
||||||
import Data.Maybe (fromMaybe)
|
import XMonad.Prelude (fix, fromMaybe)
|
||||||
import XMonad hiding (keys)
|
import XMonad hiding (keys)
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Control.Monad.Fix (fix)
|
|
||||||
|
|
||||||
{- $usage
|
{- $usage
|
||||||
|
|
||||||
|
@ -57,15 +57,13 @@ module XMonad.Actions.SwapPromote
|
|||||||
|
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.List
|
|
||||||
import Data.Maybe
|
|
||||||
import Control.Arrow
|
import Control.Arrow
|
||||||
import Control.Monad
|
|
||||||
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -26,14 +26,12 @@ module XMonad.Actions.TagWindows (
|
|||||||
TagPrompt,
|
TagPrompt,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List (nub,sortBy)
|
|
||||||
import Control.Monad
|
|
||||||
import Control.Exception as E
|
import Control.Exception as E
|
||||||
|
|
||||||
import XMonad.StackSet hiding (filter)
|
|
||||||
|
|
||||||
import XMonad.Prompt
|
|
||||||
import XMonad hiding (workspaces)
|
import XMonad hiding (workspaces)
|
||||||
|
import XMonad.Prelude
|
||||||
|
import XMonad.Prompt
|
||||||
|
import XMonad.StackSet hiding (filter)
|
||||||
|
|
||||||
econst :: Monad m => a -> IOException -> m a
|
econst :: Monad m => a -> IOException -> m a
|
||||||
econst = const . return
|
econst = const . return
|
||||||
|
@ -19,11 +19,11 @@ module XMonad.Actions.TiledWindowDragging
|
|||||||
dragWindow
|
dragWindow
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Layout.DraggingVisualizer
|
import XMonad.Layout.DraggingVisualizer
|
||||||
import Control.Monad
|
|
||||||
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
@ -32,7 +32,7 @@ import Control.Monad
|
|||||||
-- > import XMonad.Layout.DraggingVisualizer
|
-- > import XMonad.Layout.DraggingVisualizer
|
||||||
--
|
--
|
||||||
-- then edit your 'layoutHook' by adding the draggingVisualizer to your layout:
|
-- then edit your 'layoutHook' by adding the draggingVisualizer to your layout:
|
||||||
--
|
--
|
||||||
-- > myLayout = draggingVisualizer $ layoutHook def
|
-- > myLayout = draggingVisualizer $ layoutHook def
|
||||||
--
|
--
|
||||||
-- Then add a mouse binding for 'dragWindow':
|
-- Then add a mouse binding for 'dragWindow':
|
||||||
@ -54,10 +54,10 @@ dragWindow window = whenX (isClient window) $ do
|
|||||||
|
|
||||||
mouseDrag
|
mouseDrag
|
||||||
(\posX posY ->
|
(\posX posY ->
|
||||||
let rect = Rectangle (fInt (fInt winX + (posX - fInt offsetX)))
|
let rect = Rectangle (fi (fi winX + (posX - fi offsetX)))
|
||||||
(fInt (fInt winY + (posY - fInt offsetY)))
|
(fi (fi winY + (posY - fi offsetY)))
|
||||||
(fInt winWidth)
|
(fi winWidth)
|
||||||
(fInt winHeight)
|
(fi winHeight)
|
||||||
in sendMessage $ DraggingWindow window rect
|
in sendMessage $ DraggingWindow window rect
|
||||||
)
|
)
|
||||||
(sendMessage DraggingStopped >> performWindowSwitching window)
|
(sendMessage DraggingStopped >> performWindowSwitching window)
|
||||||
@ -67,13 +67,13 @@ dragWindow window = whenX (isClient window) $ do
|
|||||||
getPointerOffset :: Window -> X (Int, Int)
|
getPointerOffset :: Window -> X (Int, Int)
|
||||||
getPointerOffset win = do
|
getPointerOffset win = do
|
||||||
(_, _, _, oX, oY, _, _, _) <- withDisplay (\d -> io $ queryPointer d win)
|
(_, _, _, oX, oY, _, _, _) <- withDisplay (\d -> io $ queryPointer d win)
|
||||||
return (fInt oX, fInt oY)
|
return (fi oX, fi oY)
|
||||||
|
|
||||||
-- | return a tuple of windowX, windowY, windowWidth, windowHeight
|
-- | return a tuple of windowX, windowY, windowWidth, windowHeight
|
||||||
getWindowPlacement :: Window -> X (Int, Int, Int, Int)
|
getWindowPlacement :: Window -> X (Int, Int, Int, Int)
|
||||||
getWindowPlacement window = do
|
getWindowPlacement window = do
|
||||||
wa <- withDisplay (\d -> io $ getWindowAttributes d window)
|
wa <- withDisplay (\d -> io $ getWindowAttributes d window)
|
||||||
return (fInt $ wa_x wa, fInt $ wa_y wa, fInt $ wa_width wa, fInt $ wa_height wa)
|
return (fi $ wa_x wa, fi $ wa_y wa, fi $ wa_width wa, fi $ wa_height wa)
|
||||||
|
|
||||||
|
|
||||||
performWindowSwitching :: Window -> X ()
|
performWindowSwitching :: Window -> X ()
|
||||||
@ -91,11 +91,3 @@ performWindowSwitching win = do
|
|||||||
switchEntries a b x | x == a = b
|
switchEntries a b x | x == a = b
|
||||||
| x == b = a
|
| x == b = a
|
||||||
| otherwise = x
|
| otherwise = x
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- | shorthand for fromIntegral
|
|
||||||
fInt :: Integral a => Integral b => a -> b
|
|
||||||
fInt = fromIntegral
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,15 +63,12 @@ module XMonad.Actions.TopicSpace
|
|||||||
where
|
where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
|
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import qualified XMonad.Hooks.DynamicLog as DL
|
import qualified XMonad.Hooks.DynamicLog as DL
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import Control.Applicative (liftA2)
|
|
||||||
import Control.Monad (replicateM_, unless, when)
|
|
||||||
import Data.List ((\\), elemIndex, nub, sort, sortOn)
|
|
||||||
import Data.Maybe (fromJust, fromMaybe, isNothing, listToMaybe)
|
|
||||||
import System.IO (hClose, hPutStr)
|
import System.IO (hClose, hPutStr)
|
||||||
|
|
||||||
import XMonad.Prompt (XPConfig)
|
import XMonad.Prompt (XPConfig)
|
||||||
|
@ -64,13 +64,12 @@ module XMonad.Actions.TreeSelect
|
|||||||
|
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.List (find)
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.Tree
|
import Data.Tree
|
||||||
import Foreign
|
import Foreign
|
||||||
import System.IO
|
import System.IO
|
||||||
import System.Posix.Process (forkProcess, executeFile)
|
import System.Posix.Process (forkProcess, executeFile)
|
||||||
import XMonad hiding (liftX)
|
import XMonad hiding (liftX)
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.StackSet as W
|
import XMonad.StackSet as W
|
||||||
import XMonad.Util.Font
|
import XMonad.Util.Font
|
||||||
import XMonad.Util.NamedWindows
|
import XMonad.Util.NamedWindows
|
||||||
|
@ -20,9 +20,8 @@ module XMonad.Actions.UpdateFocus (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import Control.Monad (when)
|
|
||||||
import Data.Monoid
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- To make the focus update on mouse movement within an unfocused window, add the
|
-- To make the focus update on mouse movement within an unfocused window, add the
|
||||||
|
@ -24,12 +24,11 @@ module XMonad.Actions.UpdatePointer
|
|||||||
where
|
where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Util.XUtils (fi)
|
import XMonad.Prelude
|
||||||
import Control.Arrow
|
|
||||||
import Control.Monad
|
|
||||||
import XMonad.StackSet (member, peek, screenDetail, current)
|
import XMonad.StackSet (member, peek, screenDetail, current)
|
||||||
import Data.Maybe
|
|
||||||
import Control.Exception
|
import Control.Exception (SomeException, try)
|
||||||
|
import Control.Arrow ((&&&), (***))
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
@ -107,4 +106,3 @@ lerp r a b = (1 - r) * realToFrac a + r * realToFrac b
|
|||||||
clip :: Ord a => (a, a) -> a -> a
|
clip :: Ord a => (a, a) -> a -> a
|
||||||
clip (lower, upper) x = if x < lower then lower
|
clip (lower, upper) x = if x < lower then lower
|
||||||
else if x > upper then upper else x
|
else if x > upper then upper else x
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ module XMonad.Actions.Warp (
|
|||||||
warpToWindow
|
warpToWindow
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List
|
import XMonad.Prelude
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet as W
|
import XMonad.StackSet as W
|
||||||
|
|
||||||
|
@ -36,10 +36,8 @@ module XMonad.Actions.WindowGo (
|
|||||||
module XMonad.ManageHook
|
module XMonad.ManageHook
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad
|
|
||||||
import Data.Char (toLower)
|
|
||||||
import qualified Data.List as L (nub,sortBy)
|
import qualified Data.List as L (nub,sortBy)
|
||||||
import Data.Monoid
|
import XMonad.Prelude
|
||||||
import XMonad (Query(), X(), ManageHook, WindowSet, withWindowSet, runQuery, liftIO, ask)
|
import XMonad (Query(), X(), ManageHook, WindowSet, withWindowSet, runQuery, liftIO, ask)
|
||||||
import Graphics.X11 (Window)
|
import Graphics.X11 (Window)
|
||||||
import XMonad.ManageHook
|
import XMonad.ManageHook
|
||||||
|
@ -29,7 +29,7 @@ import qualified XMonad.StackSet as W
|
|||||||
import XMonad.Actions.GridSelect
|
import XMonad.Actions.GridSelect
|
||||||
import XMonad.Layout.Maximize
|
import XMonad.Layout.Maximize
|
||||||
import XMonad.Actions.Minimize
|
import XMonad.Actions.Minimize
|
||||||
import XMonad.Util.XUtils (fi)
|
import XMonad.Prelude (fi)
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
--
|
--
|
||||||
|
@ -40,15 +40,14 @@ module XMonad.Actions.WindowNavigation (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (catMaybes, fromMaybe, listToMaybe, sortBy)
|
||||||
import XMonad.Util.Types (Direction2D(..))
|
import XMonad.Util.Types (Direction2D(..))
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import Control.Arrow (second)
|
import Control.Arrow (second)
|
||||||
import Data.IORef
|
import Data.IORef
|
||||||
import Data.List (sortBy)
|
|
||||||
import Data.Map (Map())
|
import Data.Map (Map())
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Maybe (catMaybes, fromMaybe, listToMaybe)
|
|
||||||
import Data.Ord (comparing)
|
import Data.Ord (comparing)
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ module XMonad.Actions.WithAll (
|
|||||||
sinkAll, withAll,
|
sinkAll, withAll,
|
||||||
withAll', killAll) where
|
withAll', killAll) where
|
||||||
|
|
||||||
import Data.Foldable hiding (foldr)
|
import XMonad.Prelude hiding (foldr)
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet
|
import XMonad.StackSet
|
||||||
|
@ -44,6 +44,7 @@ module XMonad.Actions.WorkspaceNames (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (fromMaybe, isInfixOf, (<&>), (>=>))
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
|
||||||
@ -54,11 +55,7 @@ import XMonad.Prompt (mkXPrompt, XPConfig)
|
|||||||
import XMonad.Prompt.Workspace (Wor(Wor))
|
import XMonad.Prompt.Workspace (Wor(Wor))
|
||||||
import XMonad.Util.WorkspaceCompare (getSortByIndex)
|
import XMonad.Util.WorkspaceCompare (getSortByIndex)
|
||||||
|
|
||||||
import Control.Monad ((>=>))
|
|
||||||
import Data.Functor ((<&>))
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Maybe (fromMaybe)
|
|
||||||
import Data.List (isInfixOf)
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@ file:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@ file:
|
||||||
@ -177,7 +174,7 @@ workspaceNamePrompt conf job = do
|
|||||||
(job . toWsId pairs)
|
(job . toWsId pairs)
|
||||||
where toWsId pairs name = fromMaybe "" (lookup name pairs)
|
where toWsId pairs name = fromMaybe "" (lookup name pairs)
|
||||||
contains completions input =
|
contains completions input =
|
||||||
return $ filter (Data.List.isInfixOf input) completions
|
return $ filter (isInfixOf input) completions
|
||||||
|
|
||||||
-- | Workspace list transformation for
|
-- | Workspace list transformation for
|
||||||
-- 'XMonad.Hooks.EwmhDesktops.ewmhDesktopsLogHookCustom' that exposes
|
-- 'XMonad.Hooks.EwmhDesktops.ewmhDesktopsLogHookCustom' that exposes
|
||||||
|
@ -62,7 +62,7 @@ import qualified XMonad.StackSet as W
|
|||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
import System.Exit
|
import System.Exit
|
||||||
import Control.Monad(when)
|
import XMonad.Prelude(when)
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- To use this module, start with the following @~\/.xmonad\/xmonad.hs@:
|
-- To use this module, start with the following @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -4,10 +4,7 @@
|
|||||||
module XMonad.Config.Dmwit where
|
module XMonad.Config.Dmwit where
|
||||||
|
|
||||||
-- system imports
|
-- system imports
|
||||||
import Control.Monad
|
|
||||||
import Control.Monad.Trans
|
import Control.Monad.Trans
|
||||||
import Data.Char
|
|
||||||
import Data.List
|
|
||||||
import Data.Map (Map, fromList)
|
import Data.Map (Map, fromList)
|
||||||
import Data.Ratio
|
import Data.Ratio
|
||||||
import Data.Word
|
import Data.Word
|
||||||
@ -31,6 +28,7 @@ import XMonad.Layout.Grid
|
|||||||
import XMonad.Layout.IndependentScreens
|
import XMonad.Layout.IndependentScreens
|
||||||
import XMonad.Layout.Magnifier
|
import XMonad.Layout.Magnifier
|
||||||
import XMonad.Layout.NoBorders
|
import XMonad.Layout.NoBorders
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.Util.Dzen hiding (x, y)
|
import XMonad.Util.Dzen hiding (x, y)
|
||||||
import XMonad.Util.SpawnOnce
|
import XMonad.Util.SpawnOnce
|
||||||
-- }}}
|
-- }}}
|
||||||
@ -111,7 +109,6 @@ fullscreenMPlayer = className =? "MPlayer" --> do
|
|||||||
Just (16 :% 9) -> viewFullOn 1 "5" win
|
Just (16 :% 9) -> viewFullOn 1 "5" win
|
||||||
_ -> doFloat
|
_ -> doFloat
|
||||||
where
|
where
|
||||||
fi = fromIntegral :: Dimension -> Double
|
|
||||||
approx (n, d) = approxRational (fi n / fi d) (1/100)
|
approx (n, d) = approxRational (fi n / fi d) (1/100)
|
||||||
|
|
||||||
operationOn f s n w = do
|
operationOn f s n w = do
|
||||||
|
@ -31,7 +31,7 @@ import XMonad
|
|||||||
import XMonad.Config.Desktop
|
import XMonad.Config.Desktop
|
||||||
import XMonad.Util.Run (safeSpawn)
|
import XMonad.Util.Run (safeSpawn)
|
||||||
import XMonad.Util.Ungrab
|
import XMonad.Util.Ungrab
|
||||||
import Data.Char (toUpper)
|
import XMonad.Prelude (toUpper)
|
||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ module XMonad.Config.Monad where
|
|||||||
import XMonad hiding (terminal, keys)
|
import XMonad hiding (terminal, keys)
|
||||||
import qualified XMonad as X
|
import qualified XMonad as X
|
||||||
import Control.Monad.Writer
|
import Control.Monad.Writer
|
||||||
import Data.Monoid
|
import XMonad.Prelude
|
||||||
import Data.Accessor
|
import Data.Accessor
|
||||||
import Data.Accessor.Basic hiding (set)
|
import Data.Accessor.Basic hiding (set)
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ ifThenElse,
|
|||||||
import Prelude hiding ((>>), mod)
|
import Prelude hiding ((>>), mod)
|
||||||
import qualified Prelude as P ((>>=), (>>))
|
import qualified Prelude as P ((>>=), (>>))
|
||||||
|
|
||||||
import Data.Monoid (All)
|
import XMonad.Prelude (All)
|
||||||
|
|
||||||
import XMonad hiding (xmonad, XConfig(..))
|
import XMonad hiding (xmonad, XConfig(..))
|
||||||
import XMonad (XConfig(XConfig))
|
import XMonad (XConfig(XConfig))
|
||||||
|
@ -25,7 +25,7 @@ module XMonad.Hooks.CurrentWorkspaceOnTop (
|
|||||||
import XMonad
|
import XMonad
|
||||||
import qualified XMonad.StackSet as S
|
import qualified XMonad.StackSet as S
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
import Control.Monad(when)
|
import XMonad.Prelude(when)
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -24,6 +24,7 @@ import Prelude
|
|||||||
import XMonad hiding (windowEvent
|
import XMonad hiding (windowEvent
|
||||||
,(-->)
|
,(-->)
|
||||||
)
|
)
|
||||||
|
import XMonad.Prelude hiding (fi, bool)
|
||||||
|
|
||||||
import XMonad.Hooks.DebugKeyEvents (debugKeyEvents)
|
import XMonad.Hooks.DebugKeyEvents (debugKeyEvents)
|
||||||
import XMonad.Util.DebugWindow (debugWindow)
|
import XMonad.Util.DebugWindow (debugWindow)
|
||||||
@ -33,15 +34,7 @@ import XMonad.Util.DebugWindow (debugWindow)
|
|||||||
import Control.Exception as E
|
import Control.Exception as E
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
import Data.Char (isDigit)
|
|
||||||
import Data.Maybe (fromJust)
|
|
||||||
import Data.List (genericIndex
|
|
||||||
,genericLength
|
|
||||||
,unfoldr
|
|
||||||
)
|
|
||||||
import Codec.Binary.UTF8.String
|
import Codec.Binary.UTF8.String
|
||||||
import Data.Maybe (fromMaybe)
|
|
||||||
import Data.Monoid
|
|
||||||
import Foreign
|
import Foreign
|
||||||
import Foreign.C.Types
|
import Foreign.C.Types
|
||||||
import Numeric (showHex)
|
import Numeric (showHex)
|
||||||
@ -286,7 +279,7 @@ newtype Decoder a = Decoder (ReaderT Decode (StateT DecodeState X) a)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
-- | Retrive, parse, and dump a window property. As all the high-level property
|
-- | Retrive, parse, and dump a window property. As all the high-level property
|
||||||
-- interfaces lose information necessary to decode properties correctly, we
|
-- interfaces lose information necessary to decode properties correctly, we
|
||||||
-- work at the lowest level available.
|
-- work at the lowest level available.
|
||||||
dumpProperty :: Atom -> String -> Window -> Int -> X String
|
dumpProperty :: Atom -> String -> Window -> Int -> X String
|
||||||
dumpProperty a n w i = do
|
dumpProperty a n w i = do
|
||||||
@ -413,8 +406,8 @@ runDecode c s (Decoder p) = runStateT (runReaderT p c) s
|
|||||||
bytes :: Int -> Int
|
bytes :: Int -> Int
|
||||||
bytes w = w `div` 8
|
bytes w = w `div` 8
|
||||||
|
|
||||||
-- | The top level property decoder, for a wide variety of standard ICCCM and
|
-- | The top level property decoder, for a wide variety of standard ICCCM and
|
||||||
-- EWMH window properties. We pass part of the 'ReaderT' as arguments for
|
-- EWMH window properties. We pass part of the 'ReaderT' as arguments for
|
||||||
-- pattern matching.
|
-- pattern matching.
|
||||||
dumpProp :: Atom -> String -> Decoder Bool
|
dumpProp :: Atom -> String -> Decoder Bool
|
||||||
|
|
||||||
@ -900,7 +893,7 @@ dumpMwmInfo = do
|
|||||||
guardType ta $ dumpList' [("flags" ,dumpBits mwmHints,cARDINAL)
|
guardType ta $ dumpList' [("flags" ,dumpBits mwmHints,cARDINAL)
|
||||||
,("window",dumpWindow ,wINDOW )
|
,("window",dumpWindow ,wINDOW )
|
||||||
]
|
]
|
||||||
|
|
||||||
-- the most common case
|
-- the most common case
|
||||||
dumpEnum :: [String] -> Decoder Bool
|
dumpEnum :: [String] -> Decoder Bool
|
||||||
dumpEnum ss = dumpEnum' ss cARDINAL
|
dumpEnum ss = dumpEnum' ss cARDINAL
|
||||||
@ -1000,7 +993,7 @@ dumpMDPrereg = do
|
|||||||
append "total size = "
|
append "total size = "
|
||||||
withIndent 13 dump32
|
withIndent 13 dump32
|
||||||
dumpMDBlocks $ fromIntegral dsc
|
dumpMDBlocks $ fromIntegral dsc
|
||||||
|
|
||||||
dumpMDBlocks :: Int -> Decoder Bool
|
dumpMDBlocks :: Int -> Decoder Bool
|
||||||
dumpMDBlocks _ = propSimple "(drop site info)" -- @@@ maybe later if needed
|
dumpMDBlocks _ = propSimple "(drop site info)" -- @@@ maybe later if needed
|
||||||
|
|
||||||
@ -1024,7 +1017,7 @@ dumpPercent = guardType cARDINAL $ do
|
|||||||
n <- getInt' 32
|
n <- getInt' 32
|
||||||
case n of
|
case n of
|
||||||
Nothing -> return False
|
Nothing -> return False
|
||||||
Just n' ->
|
Just n' ->
|
||||||
let pct = 100 * fromIntegral n' / fromIntegral (maxBound :: Word32)
|
let pct = 100 * fromIntegral n' / fromIntegral (maxBound :: Word32)
|
||||||
pct :: Double
|
pct :: Double
|
||||||
in append $ show (round pct :: Integer) ++ "%"
|
in append $ show (round pct :: Integer) ++ "%"
|
||||||
|
@ -19,6 +19,7 @@ module XMonad.Hooks.DebugKeyEvents (-- * Usage
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad.Core
|
import XMonad.Core
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.Operations (cleanMask)
|
import XMonad.Operations (cleanMask)
|
||||||
|
|
||||||
import Graphics.X11.Xlib
|
import Graphics.X11.Xlib
|
||||||
@ -26,8 +27,6 @@ import Graphics.X11.Xlib.Extras
|
|||||||
|
|
||||||
import Control.Monad.State (gets)
|
import Control.Monad.State (gets)
|
||||||
import Data.Bits
|
import Data.Bits
|
||||||
import Data.List (intercalate)
|
|
||||||
import Data.Monoid
|
|
||||||
import Numeric (showHex)
|
import Numeric (showHex)
|
||||||
import System.IO (hPutStrLn
|
import System.IO (hPutStrLn
|
||||||
,stderr)
|
,stderr)
|
||||||
|
@ -24,6 +24,7 @@ module XMonad.Hooks.DebugStack (debugStack
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad.Core
|
import XMonad.Core
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import XMonad.Util.DebugWindow
|
import XMonad.Util.DebugWindow
|
||||||
@ -31,10 +32,7 @@ import XMonad.Util.DebugWindow
|
|||||||
import Graphics.X11.Types (Window)
|
import Graphics.X11.Types (Window)
|
||||||
import Graphics.X11.Xlib.Extras (Event)
|
import Graphics.X11.Xlib.Extras (Event)
|
||||||
|
|
||||||
import Control.Monad (foldM)
|
|
||||||
import Data.Map (member)
|
import Data.Map (member)
|
||||||
import Data.Monoid (All(..))
|
|
||||||
import Data.List (intercalate)
|
|
||||||
|
|
||||||
-- | Print the state of the current window stack for the current workspace to
|
-- | Print the state of the current window stack for the current workspace to
|
||||||
-- @stderr@, which for most installations goes to @~/.xsession-errors@.
|
-- @stderr@, which for most installations goes to @~/.xsession-errors@.
|
||||||
|
@ -29,15 +29,9 @@ module XMonad.Hooks.DynamicBars (
|
|||||||
|
|
||||||
import Prelude
|
import Prelude
|
||||||
|
|
||||||
import Control.Monad
|
|
||||||
import Control.Monad.Trans (lift)
|
import Control.Monad.Trans (lift)
|
||||||
import Control.Monad.Writer (WriterT, execWriterT, tell)
|
import Control.Monad.Writer (WriterT, execWriterT, tell)
|
||||||
|
|
||||||
import Data.List
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.Monoid
|
|
||||||
import Data.Foldable (traverse_)
|
|
||||||
|
|
||||||
import Graphics.X11.Xinerama
|
import Graphics.X11.Xinerama
|
||||||
import Graphics.X11.Xlib
|
import Graphics.X11.Xlib
|
||||||
import Graphics.X11.Xlib.Extras
|
import Graphics.X11.Xlib.Extras
|
||||||
@ -46,6 +40,7 @@ import Graphics.X11.Xrandr
|
|||||||
import System.IO
|
import System.IO
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Hooks.DynamicLog
|
import XMonad.Hooks.DynamicLog
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
@ -23,12 +23,9 @@ module XMonad.Hooks.DynamicHooks (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
|
||||||
import Data.List
|
|
||||||
import Data.Maybe (listToMaybe)
|
|
||||||
import Data.Monoid
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- Provides two new kinds of 'ManageHooks' that can be defined at runtime.
|
-- Provides two new kinds of 'ManageHooks' that can be defined at runtime.
|
||||||
--
|
--
|
||||||
|
@ -33,9 +33,7 @@ import qualified XMonad.StackSet as S
|
|||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
import XMonad.Hooks.DynamicLog
|
import XMonad.Hooks.DynamicLog
|
||||||
import Data.Functor ((<&>))
|
import XMonad.Prelude (for, (<&>), (<=<), (>=>))
|
||||||
import Data.Traversable (for)
|
|
||||||
import Control.Monad ((<=<), (>=>))
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- Dynamically augment Workspace's 'WorkspaceId' as shown on a status bar
|
-- Dynamically augment Workspace's 'WorkspaceId' as shown on a status bar
|
||||||
|
@ -26,8 +26,7 @@
|
|||||||
module XMonad.Hooks.DynamicProperty where
|
module XMonad.Hooks.DynamicProperty where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import Data.Monoid
|
import XMonad.Prelude
|
||||||
import Control.Monad (when)
|
|
||||||
|
|
||||||
-- |
|
-- |
|
||||||
-- Run a 'ManageHook' when a specific property is changed on a window. Note
|
-- Run a 'ManageHook' when a specific property is changed on a window. Note
|
||||||
@ -36,7 +35,7 @@ import Control.Monad (when)
|
|||||||
-- their titles on the fly!):
|
-- their titles on the fly!):
|
||||||
--
|
--
|
||||||
-- dynamicPropertyChange "WM_NAME" (className =? "Iceweasel" <&&> title =? "whatever" --> doShift "2")
|
-- dynamicPropertyChange "WM_NAME" (className =? "Iceweasel" <&&> title =? "whatever" --> doShift "2")
|
||||||
--
|
--
|
||||||
-- Note that the fixity of (-->) won't allow it to be mixed with ($), so you
|
-- Note that the fixity of (-->) won't allow it to be mixed with ($), so you
|
||||||
-- can't use the obvious $ shorthand.
|
-- can't use the obvious $ shorthand.
|
||||||
--
|
--
|
||||||
@ -46,9 +45,9 @@ import Control.Monad (when)
|
|||||||
-- other 'ManageHook':
|
-- other 'ManageHook':
|
||||||
--
|
--
|
||||||
-- > , handleEventHook = dynamicPropertyChange "WM_NAME" myDynHook <+> handleEventHook baseConfig
|
-- > , handleEventHook = dynamicPropertyChange "WM_NAME" myDynHook <+> handleEventHook baseConfig
|
||||||
-- >
|
-- >
|
||||||
-- > {- ... -}
|
-- > {- ... -}
|
||||||
-- >
|
-- >
|
||||||
-- > myDynHook = composeAll [...]
|
-- > myDynHook = composeAll [...]
|
||||||
--
|
--
|
||||||
dynamicPropertyChange :: String -> ManageHook -> Event -> X All
|
dynamicPropertyChange :: String -> ManageHook -> Event -> X All
|
||||||
|
@ -33,18 +33,14 @@ module XMonad.Hooks.EwmhDesktops (
|
|||||||
|
|
||||||
import Codec.Binary.UTF8.String (encode)
|
import Codec.Binary.UTF8.String (encode)
|
||||||
import Data.Bits
|
import Data.Bits
|
||||||
import Data.List
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.Monoid
|
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import Control.Monad
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import XMonad.Hooks.SetWMName
|
import XMonad.Hooks.SetWMName
|
||||||
import qualified XMonad.Util.ExtensibleState as E
|
import qualified XMonad.Util.ExtensibleState as E
|
||||||
import XMonad.Util.XUtils (fi)
|
|
||||||
import XMonad.Util.WorkspaceCompare
|
import XMonad.Util.WorkspaceCompare
|
||||||
import XMonad.Util.WindowProperties (getProp32)
|
import XMonad.Util.WindowProperties (getProp32)
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
@ -27,9 +27,8 @@ module XMonad.Hooks.FadeInactive (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import Control.Applicative (liftA2)
|
|
||||||
import Control.Monad
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -49,6 +49,7 @@ module XMonad.Hooks.FadeWindows (-- * Usage
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad.Core
|
import XMonad.Core
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.ManageHook (liftX)
|
import XMonad.ManageHook (liftX)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
@ -56,12 +57,10 @@ import XMonad.Hooks.FadeInactive (setOpacity
|
|||||||
,isUnfocused
|
,isUnfocused
|
||||||
)
|
)
|
||||||
|
|
||||||
import Control.Monad (forM_)
|
|
||||||
import Control.Monad.Reader (ask
|
import Control.Monad.Reader (ask
|
||||||
,asks)
|
,asks)
|
||||||
import Control.Monad.State (gets)
|
import Control.Monad.State (gets)
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Monoid
|
|
||||||
|
|
||||||
import Graphics.X11.Xlib.Extras (Event(..))
|
import Graphics.X11.Xlib.Extras (Event(..))
|
||||||
|
|
||||||
|
@ -62,14 +62,11 @@ module XMonad.Hooks.Focus
|
|||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
import Data.Maybe
|
import Control.Arrow ((&&&))
|
||||||
import Data.Monoid
|
|
||||||
import qualified Data.Semigroup as S
|
|
||||||
import Control.Monad
|
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
import Control.Arrow hiding ((<+>))
|
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
import XMonad.Hooks.ManageHelpers (currentWs)
|
import XMonad.Hooks.ManageHelpers (currentWs)
|
||||||
@ -385,8 +382,8 @@ instance MonadReader Focus FocusQuery where
|
|||||||
local f (FocusQuery mx) = FocusQuery (local f mx)
|
local f (FocusQuery mx) = FocusQuery (local f mx)
|
||||||
instance MonadIO FocusQuery where
|
instance MonadIO FocusQuery where
|
||||||
liftIO mx = FocusQuery (liftIO mx)
|
liftIO mx = FocusQuery (liftIO mx)
|
||||||
instance S.Semigroup a => S.Semigroup (FocusQuery a) where
|
instance Semigroup a => Semigroup (FocusQuery a) where
|
||||||
(<>) = liftM2 (S.<>)
|
(<>) = liftM2 (<>)
|
||||||
instance Monoid a => Monoid (FocusQuery a) where
|
instance Monoid a => Monoid (FocusQuery a) where
|
||||||
mempty = return mempty
|
mempty = return mempty
|
||||||
mappend = (<>)
|
mappend = (<>)
|
||||||
@ -577,4 +574,3 @@ activateOnCurrentWs = manageFocus (liftQuery activated <&&> newOnCur --> switchF
|
|||||||
activateOnCurrentKeepFocus :: ManageHook
|
activateOnCurrentKeepFocus :: ManageHook
|
||||||
activateOnCurrentKeepFocus = manageFocus (liftQuery activated <&&> newOnCur --> keepFocus)
|
activateOnCurrentKeepFocus = manageFocus (liftQuery activated <&&> newOnCur --> keepFocus)
|
||||||
<+> activateOnCurrent'
|
<+> activateOnCurrent'
|
||||||
|
|
||||||
|
@ -21,10 +21,8 @@ module XMonad.Hooks.InsertPosition (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad(ManageHook, MonadReader(ask))
|
import XMonad(ManageHook, MonadReader(ask))
|
||||||
|
import XMonad.Prelude (Endo (Endo), find, fromMaybe)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import Data.Maybe(fromMaybe)
|
|
||||||
import Data.List(find)
|
|
||||||
import Data.Monoid(Endo(Endo))
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -29,11 +29,11 @@ module XMonad.Hooks.ManageDebug (debugManageHook
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (when)
|
||||||
import XMonad.Hooks.DebugStack
|
import XMonad.Hooks.DebugStack
|
||||||
import XMonad.Util.DebugWindow
|
import XMonad.Util.DebugWindow
|
||||||
import XMonad.Util.EZConfig
|
import XMonad.Util.EZConfig
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
import Control.Monad (when)
|
|
||||||
|
|
||||||
-- persistent state for manageHook debugging to trigger logHook debugging
|
-- persistent state for manageHook debugging to trigger logHook debugging
|
||||||
data ManageStackDebug = MSD (Bool,Bool) deriving Typeable
|
data ManageStackDebug = MSD (Bool,Bool) deriving Typeable
|
||||||
|
@ -39,14 +39,11 @@ import Foreign.C.Types (CLong)
|
|||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
import XMonad.Util.Types
|
import XMonad.Util.Types
|
||||||
import XMonad.Util.WindowProperties (getProp32s)
|
import XMonad.Util.WindowProperties (getProp32s)
|
||||||
import XMonad.Util.XUtils (fi)
|
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
import Data.Monoid (All(..))
|
import XMonad.Prelude (All (..), fi, filterM, foldlM, void, when, (<=<))
|
||||||
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Control.Monad (when, filterM, void, (<=<))
|
|
||||||
import Data.Foldable (foldlM)
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- To use this module, add the following import to @~\/.xmonad\/xmonad.hs@:
|
-- To use this module, add the following import to @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -59,14 +59,10 @@ module XMonad.Hooks.ManageHelpers (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Util.WindowProperties (getProp32s)
|
import XMonad.Util.WindowProperties (getProp32s)
|
||||||
|
|
||||||
import Control.Monad (filterM)
|
|
||||||
import Data.List ((\\))
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.Monoid
|
|
||||||
|
|
||||||
import System.Posix (ProcessID)
|
import System.Posix (ProcessID)
|
||||||
|
|
||||||
-- | Denotes a side of a screen. @S@ stands for South, @NE@ for Northeast
|
-- | Denotes a side of a screen. @S@ stands for South, @NE@ for Northeast
|
||||||
|
@ -19,11 +19,9 @@ module XMonad.Hooks.Minimize
|
|||||||
minimizeEventHook
|
minimizeEventHook
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.Monoid
|
|
||||||
import Control.Monad(when)
|
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Actions.Minimize
|
import XMonad.Actions.Minimize
|
||||||
|
import XMonad.Prelude
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -34,18 +34,14 @@ module XMonad.Hooks.Place ( -- * Usage
|
|||||||
|
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as S
|
import qualified XMonad.StackSet as S
|
||||||
|
|
||||||
import XMonad.Layout.WindowArranger
|
import XMonad.Layout.WindowArranger
|
||||||
import XMonad.Actions.FloatKeys
|
import XMonad.Actions.FloatKeys
|
||||||
import XMonad.Util.XUtils
|
|
||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.Ratio ((%))
|
import Data.Ratio ((%))
|
||||||
import Data.List (sortBy, minimumBy, partition)
|
|
||||||
import Data.Maybe (fromMaybe, catMaybes)
|
|
||||||
import Data.Monoid (Endo(..))
|
|
||||||
import Control.Monad (guard, join)
|
|
||||||
import Control.Monad.Trans (lift)
|
import Control.Monad.Trans (lift)
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -34,15 +34,13 @@ module XMonad.Hooks.PositionStoreHooks (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Util.PositionStore
|
import XMonad.Util.PositionStore
|
||||||
import XMonad.Hooks.ManageDocks
|
import XMonad.Hooks.ManageDocks
|
||||||
import XMonad.Layout.Decoration
|
import XMonad.Layout.Decoration
|
||||||
|
|
||||||
import System.Random(randomRIO)
|
import System.Random(randomRIO)
|
||||||
import Control.Monad(when)
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.Monoid
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -45,16 +45,13 @@ module XMonad.Hooks.RefocusLast (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (All (..), asum, fromMaybe, when)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
import XMonad.Util.Stack (findS, mapZ_)
|
import XMonad.Util.Stack (findS, mapZ_)
|
||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
|
|
||||||
import Data.Maybe (fromMaybe)
|
|
||||||
import Data.Monoid (All(..))
|
|
||||||
import Data.Foldable (asum)
|
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import Control.Monad (when)
|
|
||||||
|
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
@ -292,4 +289,3 @@ withRecents :: (Window -> Window -> X ()) -> X ()
|
|||||||
withRecents f = withWindowSet $ \ws -> withRecentsIn (W.currentTag ws) () f
|
withRecents f = withWindowSet $ \ws -> withRecentsIn (W.currentTag ws) () f
|
||||||
|
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ module XMonad.Hooks.RestoreMinimized
|
|||||||
, restoreMinimizedEventHook
|
, restoreMinimizedEventHook
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.Monoid
|
import XMonad.Prelude
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
|
||||||
|
@ -30,10 +30,8 @@ module XMonad.Hooks.ScreenCorners
|
|||||||
, screenCornerLayoutHook
|
, screenCornerLayoutHook
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.Monoid
|
import XMonad.Prelude
|
||||||
import Data.List (find)
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Util.XUtils (fi)
|
|
||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
@ -26,12 +26,10 @@ module XMonad.Hooks.ServerMode
|
|||||||
, serverModeEventHookF
|
, serverModeEventHookF
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad (when)
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.Monoid
|
|
||||||
import System.IO
|
import System.IO
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.Actions.Commands
|
import XMonad.Actions.Commands
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
@ -47,7 +45,7 @@ import XMonad.Actions.Commands
|
|||||||
-- in stderr (so that you can read it in @~\/.xsession-errors@). Uses "XMonad.Actions.Commands#defaultCommands" as the default.
|
-- in stderr (so that you can read it in @~\/.xsession-errors@). Uses "XMonad.Actions.Commands#defaultCommands" as the default.
|
||||||
--
|
--
|
||||||
-- > main = xmonad def { handleEventHook = serverModeEventHook }
|
-- > main = xmonad def { handleEventHook = serverModeEventHook }
|
||||||
--
|
--
|
||||||
-- > xmonadctl 0 # tells xmonad to output command list
|
-- > xmonadctl 0 # tells xmonad to output command list
|
||||||
-- > xmonadctl 1 # tells xmonad to switch to workspace 1
|
-- > xmonadctl 1 # tells xmonad to switch to workspace 1
|
||||||
--
|
--
|
||||||
|
@ -41,15 +41,11 @@ module XMonad.Hooks.SetWMName (
|
|||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
import Control.Monad (join)
|
|
||||||
import Data.Char (ord)
|
|
||||||
import Data.List (nub)
|
|
||||||
import Data.Maybe (fromJust, listToMaybe, maybeToList)
|
|
||||||
import Foreign.C.Types (CChar)
|
import Foreign.C.Types (CChar)
|
||||||
|
|
||||||
import Foreign.Marshal.Alloc (alloca)
|
import Foreign.Marshal.Alloc (alloca)
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (fromJust, join, listToMaybe, maybeToList, nub, ord)
|
||||||
|
|
||||||
-- | sets WM name
|
-- | sets WM name
|
||||||
setWMName :: String -> X ()
|
setWMName :: String -> X ()
|
||||||
@ -117,4 +113,3 @@ getSupportWindow = withDisplay $ \dpy -> do
|
|||||||
-- | Get WM name.
|
-- | Get WM name.
|
||||||
getWMName :: X String
|
getWMName :: X String
|
||||||
getWMName = getSupportWindow >>= runQuery title
|
getWMName = getSupportWindow >>= runQuery title
|
||||||
|
|
||||||
|
@ -53,7 +53,6 @@ module XMonad.Hooks.StatusBar (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Exception (SomeException, try)
|
import Control.Exception (SomeException, try)
|
||||||
import Control.Monad (void)
|
|
||||||
import qualified Codec.Binary.UTF8.String as UTF8 (encode)
|
import qualified Codec.Binary.UTF8.String as UTF8 (encode)
|
||||||
import System.Posix.Signals (sigTERM, signalProcessGroup)
|
import System.Posix.Signals (sigTERM, signalProcessGroup)
|
||||||
import System.Posix.Types (ProcessID)
|
import System.Posix.Types (ProcessID)
|
||||||
@ -63,6 +62,7 @@ import qualified Data.Map as M
|
|||||||
import Foreign.C (CChar)
|
import Foreign.C (CChar)
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (void)
|
||||||
|
|
||||||
import XMonad.Util.Run
|
import XMonad.Util.Run
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{-# LANGUAGE ScopedTypeVariables #-}
|
{-# LANGUAGE ScopedTypeVariables #-}
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
{-# LANGUAGE PatternGuards #-}
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- |
|
-- |
|
||||||
-- Module : XMonad.Hooks.StatusBar.PP
|
-- Module : XMonad.Hooks.StatusBar.PP
|
||||||
@ -46,15 +46,10 @@ module XMonad.Hooks.StatusBar.PP (
|
|||||||
|
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Applicative (liftA2)
|
|
||||||
import Control.Monad (msum)
|
|
||||||
import Data.Char (isSpace)
|
|
||||||
import Data.List (intercalate, isPrefixOf, sortOn, stripPrefix)
|
|
||||||
import Data.Maybe (catMaybes, fromMaybe, isJust, mapMaybe)
|
|
||||||
|
|
||||||
import qualified XMonad.StackSet as S
|
import qualified XMonad.StackSet as S
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
|
|
||||||
import XMonad.Util.NamedWindows
|
import XMonad.Util.NamedWindows
|
||||||
import XMonad.Util.WorkspaceCompare
|
import XMonad.Util.WorkspaceCompare
|
||||||
|
@ -39,9 +39,9 @@ module XMonad.Hooks.ToggleHook ( -- * Usage
|
|||||||
import Prelude hiding (all)
|
import Prelude hiding (all)
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (guard, join)
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
|
||||||
import Control.Monad (join,guard)
|
|
||||||
import Control.Arrow (first, second)
|
import Control.Arrow (first, second)
|
||||||
|
|
||||||
import Data.Map
|
import Data.Map
|
||||||
|
@ -70,6 +70,7 @@ module XMonad.Hooks.UrgencyHook (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (delete, fromMaybe, listToMaybe, maybeToList, when, (\\))
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import XMonad.Hooks.ManageHelpers (windowTag)
|
import XMonad.Hooks.ManageHelpers (windowTag)
|
||||||
@ -79,10 +80,7 @@ import XMonad.Util.NamedWindows (getName)
|
|||||||
import XMonad.Util.Timer (TimerId, startTimer, handleTimer)
|
import XMonad.Util.Timer (TimerId, startTimer, handleTimer)
|
||||||
import XMonad.Util.WindowProperties (getProp32)
|
import XMonad.Util.WindowProperties (getProp32)
|
||||||
|
|
||||||
import Control.Monad (when)
|
|
||||||
import Data.Bits (testBit)
|
import Data.Bits (testBit)
|
||||||
import Data.List (delete, (\\))
|
|
||||||
import Data.Maybe (listToMaybe, maybeToList, fromMaybe)
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import System.IO (hPutStrLn, stderr)
|
import System.IO (hPutStrLn, stderr)
|
||||||
import Foreign.C.Types (CLong)
|
import Foreign.C.Types (CLong)
|
||||||
|
@ -24,6 +24,7 @@ module XMonad.Hooks.WallpaperSetter (
|
|||||||
-- $todo
|
-- $todo
|
||||||
) where
|
) where
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as S
|
import qualified XMonad.StackSet as S
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
|
||||||
@ -34,13 +35,8 @@ import System.FilePath ((</>))
|
|||||||
import System.Random (randomRIO)
|
import System.Random (randomRIO)
|
||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.List (sortBy)
|
|
||||||
import Data.Char (isAlphaNum)
|
|
||||||
import Data.Ord (comparing)
|
import Data.Ord (comparing)
|
||||||
|
|
||||||
import Control.Monad
|
|
||||||
import Data.Maybe
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- This module requires imagemagick and feh to be installed, as these are utilized
|
-- This module requires imagemagick and feh to be installed, as these are utilized
|
||||||
-- for the required image transformations and the actual setting of the wallpaper.
|
-- for the required image transformations and the actual setting of the wallpaper.
|
||||||
|
@ -44,14 +44,12 @@ module XMonad.Hooks.WindowSwallowing
|
|||||||
)
|
)
|
||||||
where
|
where
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
import XMonad.Util.WindowProperties
|
import XMonad.Util.WindowProperties
|
||||||
import XMonad.Util.Run ( runProcessWithInput )
|
import XMonad.Util.Run ( runProcessWithInput )
|
||||||
import Data.Semigroup ( All(..) )
|
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import Data.List ( isInfixOf )
|
|
||||||
import Control.Monad ( when )
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module by including the following in your @~\/.xmonad/xmonad.hs@:
|
-- You can use this module by including the following in your @~\/.xmonad/xmonad.hs@:
|
||||||
@ -237,9 +235,3 @@ instance ExtensionClass SwallowingState where
|
|||||||
, stackBeforeWindowClosing = Nothing
|
, stackBeforeWindowClosing = Nothing
|
||||||
, floatingBeforeClosing = mempty
|
, floatingBeforeClosing = mempty
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fi :: (Integral a, Num b) => a -> b
|
|
||||||
fi = fromIntegral
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,11 +21,10 @@ module XMonad.Hooks.WorkspaceByPos (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Util.XUtils (fi)
|
|
||||||
|
|
||||||
import Data.Maybe
|
import Control.Monad.Except (lift, runExceptT, throwError)
|
||||||
import Control.Monad.Error ((<=<),guard,lift,runErrorT,throwError)
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
@ -43,7 +42,7 @@ needsMoving :: Window -> X (Maybe WorkspaceId)
|
|||||||
needsMoving w = withDisplay $ \d -> do
|
needsMoving w = withDisplay $ \d -> do
|
||||||
-- only relocate windows with non-zero position
|
-- only relocate windows with non-zero position
|
||||||
wa <- io $ getWindowAttributes d w
|
wa <- io $ getWindowAttributes d w
|
||||||
fmap (const Nothing `either` Just) . runErrorT $ do
|
fmap (const Nothing `either` Just) . runExceptT $ do
|
||||||
guard $ wa_x wa /= 0 || wa_y wa /= 0
|
guard $ wa_x wa /= 0 || wa_y wa /= 0
|
||||||
ws <- gets windowset
|
ws <- gets windowset
|
||||||
sc <- lift $ fromMaybe (W.current ws)
|
sc <- lift $ fromMaybe (W.current ws)
|
||||||
|
@ -34,7 +34,7 @@ import Prelude
|
|||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet hiding (delete, filter, new)
|
import XMonad.StackSet hiding (delete, filter, new)
|
||||||
import Data.List (delete, find, foldl', groupBy, nub, sortBy)
|
import XMonad.Prelude (delete, find, foldl', groupBy, nub, sortBy)
|
||||||
import qualified XMonad.Util.ExtensibleState as XS
|
import qualified XMonad.Util.ExtensibleState as XS
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -19,12 +19,10 @@ module XMonad.Hooks.XPropManage (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Exception as E
|
import Control.Exception as E
|
||||||
import Data.Char (chr)
|
|
||||||
import Data.Monoid (Endo(..))
|
|
||||||
|
|
||||||
import Control.Monad.Trans (lift)
|
import Control.Monad.Trans (lift)
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (Endo (..), chr)
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -20,7 +20,7 @@ module XMonad.Layout.AutoMaster (
|
|||||||
-- $usage
|
-- $usage
|
||||||
autoMaster, AutoMaster
|
autoMaster, AutoMaster
|
||||||
) where
|
) where
|
||||||
import Control.Monad
|
import XMonad.Prelude
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
@ -26,11 +26,10 @@ module XMonad.Layout.AvoidFloats (
|
|||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
|
import XMonad.Prelude (fi, maximumBy, maybeToList, sortBy)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import Data.List
|
|
||||||
import Data.Ord
|
import Data.Ord
|
||||||
import Data.Maybe
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
|
|
||||||
@ -116,7 +115,7 @@ instance LayoutModifier AvoidFloats Window where
|
|||||||
toRect :: WindowAttributes -> Rectangle
|
toRect :: WindowAttributes -> Rectangle
|
||||||
toRect wa = let b = fi $ wa_border_width wa
|
toRect wa = let b = fi $ wa_border_width wa
|
||||||
in Rectangle (fi $ wa_x wa) (fi $ wa_y wa) (fi $ wa_width wa + 2*b) (fi $ wa_height wa + 2*b)
|
in Rectangle (fi $ wa_x wa) (fi $ wa_y wa) (fi $ wa_width wa + 2*b) (fi $ wa_height wa + 2*b)
|
||||||
|
|
||||||
bigEnough :: Rectangle -> Bool
|
bigEnough :: Rectangle -> Bool
|
||||||
bigEnough rect = rect_width rect >= fi (minw lm) && rect_height rect >= fi (minh lm)
|
bigEnough rect = rect_width rect >= fi (minw lm) && rect_height rect >= fi (minh lm)
|
||||||
|
|
||||||
@ -218,9 +217,6 @@ findGaps br rs = let (gaps,end) = foldr findGaps' ([], left br) $ sortBy (flip $
|
|||||||
inBounds :: Rectangle -> Bool
|
inBounds :: Rectangle -> Bool
|
||||||
inBounds r = left r < right br && left br < right r
|
inBounds r = left r < right br && left br < right r
|
||||||
|
|
||||||
fi :: (Integral a, Num b) => a -> b
|
|
||||||
fi x = fromIntegral x
|
|
||||||
|
|
||||||
(?:) :: Maybe a -> [a] -> [a]
|
(?:) :: Maybe a -> [a] -> [a]
|
||||||
Just x ?: xs = x:xs
|
Just x ?: xs = x:xs
|
||||||
_ ?: xs = xs
|
_ ?: xs = xs
|
||||||
|
@ -34,6 +34,7 @@ module XMonad.Layout.BinarySpacePartition (
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Util.Stack hiding (Zipper)
|
import XMonad.Util.Stack hiding (Zipper)
|
||||||
import XMonad.Util.Types
|
import XMonad.Util.Types
|
||||||
@ -45,9 +46,6 @@ import XMonad.Util.XUtils
|
|||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.List ((\\), elemIndex, foldl')
|
|
||||||
import Data.Maybe (fromMaybe, isNothing, isJust, mapMaybe, catMaybes)
|
|
||||||
import Control.Monad
|
|
||||||
import Data.Ratio ((%))
|
import Data.Ratio ((%))
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -31,7 +31,7 @@ import XMonad
|
|||||||
import XMonad.Layout.Decoration
|
import XMonad.Layout.Decoration
|
||||||
import XMonad.Layout.WindowArranger
|
import XMonad.Layout.WindowArranger
|
||||||
import XMonad.Util.XUtils
|
import XMonad.Util.XUtils
|
||||||
import Control.Monad(when)
|
import XMonad.Prelude(when)
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -36,8 +36,8 @@ import XMonad.Layout.LayoutModifier(ModifiedLayout(..),
|
|||||||
LayoutModifier(handleMessOrMaybeModifyIt, redoLayout))
|
LayoutModifier(handleMessOrMaybeModifyIt, redoLayout))
|
||||||
import XMonad(Typeable, LayoutClass, Message, X, fromMessage,
|
import XMonad(Typeable, LayoutClass, Message, X, fromMessage,
|
||||||
broadcastMessage, sendMessage, windows, withFocused, Window)
|
broadcastMessage, sendMessage, windows, withFocused, Window)
|
||||||
import Data.List((\\), union)
|
import XMonad.Prelude (fromMaybe, listToMaybe, maybeToList, union, (\\))
|
||||||
import Data.Maybe(fromMaybe, listToMaybe, maybeToList)
|
import XMonad.Util.Stack (reverseS)
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ module XMonad.Layout.Circle (
|
|||||||
Circle (..)
|
Circle (..)
|
||||||
) where -- actually it's an ellipse
|
) where -- actually it's an ellipse
|
||||||
|
|
||||||
import Data.List
|
import XMonad.Prelude
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet (integrate, peek)
|
import XMonad.StackSet (integrate, peek)
|
||||||
|
|
||||||
|
@ -22,9 +22,8 @@ module XMonad.Layout.Combo (
|
|||||||
CombineTwo
|
CombineTwo
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List ( delete, intersect, (\\) )
|
|
||||||
import Data.Maybe ( isJust )
|
|
||||||
import XMonad hiding (focus)
|
import XMonad hiding (focus)
|
||||||
|
import XMonad.Prelude (delete, intersect, isJust, (\\))
|
||||||
import XMonad.StackSet ( integrate', Workspace (..), Stack(..) )
|
import XMonad.StackSet ( integrate', Workspace (..), Stack(..) )
|
||||||
import XMonad.Layout.WindowNavigation ( MoveWindowToWindow(..) )
|
import XMonad.Layout.WindowNavigation ( MoveWindowToWindow(..) )
|
||||||
import qualified XMonad.StackSet as W ( differentiate )
|
import qualified XMonad.StackSet as W ( differentiate )
|
||||||
|
@ -24,9 +24,7 @@ module XMonad.Layout.ComboP (
|
|||||||
Property(..)
|
Property(..)
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List ( delete, intersect, (\\) )
|
import XMonad.Prelude
|
||||||
import Data.Maybe ( isJust )
|
|
||||||
import Control.Monad
|
|
||||||
import XMonad hiding (focus)
|
import XMonad hiding (focus)
|
||||||
import XMonad.StackSet ( Workspace (..), Stack(..) )
|
import XMonad.StackSet ( Workspace (..), Stack(..) )
|
||||||
import XMonad.Layout.WindowNavigation
|
import XMonad.Layout.WindowNavigation
|
||||||
|
@ -19,7 +19,7 @@ module XMonad.Layout.Cross(
|
|||||||
|
|
||||||
import XMonad( Dimension, Rectangle(..), LayoutClass(..), Resize(..), fromMessage )
|
import XMonad( Dimension, Rectangle(..), LayoutClass(..), Resize(..), fromMessage )
|
||||||
import XMonad.StackSet( focus, up, down )
|
import XMonad.StackSet( focus, up, down )
|
||||||
import Control.Monad( msum )
|
import XMonad.Prelude( msum )
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -36,12 +36,10 @@ module XMonad.Layout.Decoration
|
|||||||
, DecorationState, OrigWin
|
, DecorationState, OrigWin
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad (when)
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.List
|
|
||||||
import Foreign.C.Types(CInt)
|
import Foreign.C.Types(CInt)
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
import XMonad.Hooks.UrgencyHook
|
import XMonad.Hooks.UrgencyHook
|
||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
|
@ -30,7 +30,7 @@ import XMonad.Hooks.ManageDocks
|
|||||||
import XMonad.Util.Font
|
import XMonad.Util.Font
|
||||||
import XMonad.Util.PositionStore
|
import XMonad.Util.PositionStore
|
||||||
|
|
||||||
import Data.Maybe
|
import XMonad.Prelude
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
|
|
||||||
minimizeButtonOffset :: Int
|
minimizeButtonOffset :: Int
|
||||||
|
@ -23,7 +23,7 @@ module XMonad.Layout.Dishes (
|
|||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet (integrate)
|
import XMonad.StackSet (integrate)
|
||||||
import Control.Monad (ap)
|
import XMonad.Prelude (ap)
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@:
|
||||||
|
@ -27,7 +27,7 @@ module XMonad.Layout.Dwindle ( -- * Usage
|
|||||||
, Chirality(..)
|
, Chirality(..)
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List ( unfoldr )
|
import XMonad.Prelude ( unfoldr )
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.StackSet ( integrate, Stack )
|
import XMonad.StackSet ( integrate, Stack )
|
||||||
import XMonad.Util.Types ( Direction2D(..) )
|
import XMonad.Util.Types ( Direction2D(..) )
|
||||||
|
@ -22,8 +22,6 @@ module XMonad.Layout.FixedColumn (
|
|||||||
FixedColumn(..)
|
FixedColumn(..)
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad (msum)
|
|
||||||
import Data.Maybe (fromMaybe)
|
|
||||||
import Graphics.X11.Xlib (Window, rect_width)
|
import Graphics.X11.Xlib (Window, rect_width)
|
||||||
import Graphics.X11.Xlib.Extras ( getWMNormalHints
|
import Graphics.X11.Xlib.Extras ( getWMNormalHints
|
||||||
, getWindowAttributes
|
, getWindowAttributes
|
||||||
@ -31,6 +29,7 @@ import Graphics.X11.Xlib.Extras ( getWMNormalHints
|
|||||||
, sh_resize_inc
|
, sh_resize_inc
|
||||||
, wa_border_width)
|
, wa_border_width)
|
||||||
|
|
||||||
|
import XMonad.Prelude (fromMaybe, msum)
|
||||||
import XMonad.Core (X, LayoutClass(..), fromMessage, io, withDisplay)
|
import XMonad.Core (X, LayoutClass(..), fromMessage, io, withDisplay)
|
||||||
import XMonad.Layout (Resize(..), IncMasterN(..), tile)
|
import XMonad.Layout (Resize(..), IncMasterN(..), tile)
|
||||||
import XMonad.StackSet as W
|
import XMonad.StackSet as W
|
||||||
|
@ -32,6 +32,7 @@ module XMonad.Layout.Fullscreen
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude
|
||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
import XMonad.Layout.NoBorders (SmartBorder, smartBorders)
|
import XMonad.Layout.NoBorders (SmartBorder, smartBorders)
|
||||||
import XMonad.Hooks.EwmhDesktops (fullscreenStartup)
|
import XMonad.Hooks.EwmhDesktops (fullscreenStartup)
|
||||||
@ -40,11 +41,7 @@ import XMonad.Util.WindowProperties
|
|||||||
import qualified XMonad.Util.Rectangle as R
|
import qualified XMonad.Util.Rectangle as R
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import Data.List
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.Monoid
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Control.Monad
|
|
||||||
import Control.Arrow (second)
|
import Control.Arrow (second)
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -35,14 +35,12 @@ module XMonad.Layout.Gaps (
|
|||||||
weakModifyGaps, modifyGap, setGaps, setGap
|
weakModifyGaps, modifyGap, setGaps, setGap
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import XMonad.Prelude (delete, fi)
|
||||||
import XMonad.Core
|
import XMonad.Core
|
||||||
import Graphics.X11 (Rectangle(..))
|
import Graphics.X11 (Rectangle(..))
|
||||||
|
|
||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
import XMonad.Util.Types (Direction2D(..))
|
import XMonad.Util.Types (Direction2D(..))
|
||||||
import XMonad.Util.XUtils (fi)
|
|
||||||
|
|
||||||
import Data.List (delete)
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- You can use this module by importing it into your @~\/.xmonad\/xmonad.hs@ file:
|
-- You can use this module by importing it into your @~\/.xmonad\/xmonad.hs@ file:
|
||||||
|
@ -27,7 +27,7 @@ module XMonad.Layout.GridVariants ( -- * Usage
|
|||||||
, Orientation(..)
|
, Orientation(..)
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad
|
import XMonad.Prelude
|
||||||
import XMonad
|
import XMonad
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
|
@ -54,15 +54,12 @@ module XMonad.Layout.Groups ( -- * Usage
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude hiding (group)
|
||||||
import qualified XMonad.StackSet as W
|
import qualified XMonad.StackSet as W
|
||||||
|
|
||||||
import XMonad.Util.Stack
|
import XMonad.Util.Stack
|
||||||
|
|
||||||
import Data.Maybe (isJust, isNothing, fromMaybe, catMaybes, fromJust)
|
|
||||||
import Data.List ((\\))
|
|
||||||
import Control.Arrow ((>>>))
|
import Control.Arrow ((>>>))
|
||||||
import Control.Applicative ((<|>))
|
|
||||||
import Control.Monad (forM,void)
|
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
-- This module provides a layout combinator that allows you
|
-- This module provides a layout combinator that allows you
|
||||||
|
@ -47,7 +47,7 @@ import qualified XMonad.Layout.Groups as G
|
|||||||
|
|
||||||
import XMonad.Actions.MessageFeedback (sendMessageB)
|
import XMonad.Actions.MessageFeedback (sendMessageB)
|
||||||
|
|
||||||
import Control.Monad (unless)
|
import XMonad.Prelude (unless)
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
-- $usage
|
-- $usage
|
||||||
|
@ -24,10 +24,10 @@ module XMonad.Layout.HintedGrid (
|
|||||||
import Prelude hiding ((.))
|
import Prelude hiding ((.))
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
|
import XMonad.Prelude (replicateM, sortBy)
|
||||||
import XMonad.StackSet
|
import XMonad.StackSet
|
||||||
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State (runState)
|
||||||
import Data.List
|
|
||||||
import Data.Ord
|
import Data.Ord
|
||||||
|
|
||||||
infixr 9 .
|
infixr 9 .
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user