mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-14 11:45:54 -07:00
XMonad.Util.EZConfig: minor cleanups
This commit is contained in:
@@ -35,7 +35,7 @@ import XMonad.Actions.Submap
|
|||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.List (foldl', intersperse, sortBy, groupBy, nub)
|
import Data.List (foldl', intersperse, sortBy, groupBy, nub)
|
||||||
import Data.Ord (comparing)
|
import Data.Ord (comparing)
|
||||||
import Data.Maybe (catMaybes, isNothing, isJust, fromJust)
|
import Data.Maybe
|
||||||
import Control.Arrow (first, (&&&))
|
import Control.Arrow (first, (&&&))
|
||||||
|
|
||||||
import Text.ParserCombinators.ReadP
|
import Text.ParserCombinators.ReadP
|
||||||
@@ -205,16 +205,14 @@ op `on` f = \x y -> f x `op` f y
|
|||||||
-- @(KeyMask,KeySym)@ pairs. Key sequences which fail to parse will
|
-- @(KeyMask,KeySym)@ pairs. Key sequences which fail to parse will
|
||||||
-- be ignored.
|
-- be ignored.
|
||||||
readKeymap :: XConfig l -> [(String, X())] -> [([(KeyMask,KeySym)], X())]
|
readKeymap :: XConfig l -> [(String, X())] -> [([(KeyMask,KeySym)], X())]
|
||||||
readKeymap c = catMaybes . map (maybeKeys . first (readKeySequence c))
|
readKeymap c = mapMaybe (maybeKeys . first (readKeySequence c))
|
||||||
where maybeKeys (Nothing,_) = Nothing
|
where maybeKeys (Nothing,_) = Nothing
|
||||||
maybeKeys (Just k, act) = Just (k, act)
|
maybeKeys (Just k, act) = Just (k, act)
|
||||||
|
|
||||||
-- | Parse a sequence of keys, returning Nothing if there is
|
-- | Parse a sequence of keys, returning Nothing if there is
|
||||||
-- a parse failure (no parse, or ambiguous parse).
|
-- a parse failure (no parse, or ambiguous parse).
|
||||||
readKeySequence :: XConfig l -> String -> Maybe [(KeyMask, KeySym)]
|
readKeySequence :: XConfig l -> String -> Maybe [(KeyMask, KeySym)]
|
||||||
readKeySequence c s = case parses s of
|
readKeySequence c = listToMaybe . parses
|
||||||
[k] -> Just k
|
|
||||||
_ -> Nothing
|
|
||||||
where parses = map fst . filter (null.snd) . readP_to_S (parseKeySequence c)
|
where parses = map fst . filter (null.snd) . readP_to_S (parseKeySequence c)
|
||||||
|
|
||||||
-- | Parse a sequence of key combinations separated by spaces, e.g.
|
-- | Parse a sequence of key combinations separated by spaces, e.g.
|
||||||
|
Reference in New Issue
Block a user