[xmonad] EZConfig changes for Util.NamedActions
vogt.adam at gmail.com
vogt.adam at gmail.com
Sun May 3 22:54:09 EDT 2009
Hello
To allow Util.NamedActions to be used with EZConfig, I had to generalize
some type signatures in EZConfig and add an additional function.
What do you think of these changes, should I go ahead and apply them?
Thanks,
Adam
-------------- next part --------------
Sun May 3 22:40:17 EDT 2009 Adam Vogt <vogt.adam at gmail.com>
* Add U.NamedActions: present a list of keybindings including submaps
New patches:
[Add U.NamedActions: present a list of keybindings including submaps
Adam Vogt <vogt.adam at gmail.com>**20090504024017
Ignore-this: 181c3ee603c82e0c56406ba8552fd394
] {
hunk ./XMonad/Util/EZConfig.hs 30
-- * Emacs-style keybinding specifications
mkKeymap, checkKeymap,
+ mkNamedKeymap
) where
import XMonad
hunk ./XMonad/Util/EZConfig.hs 36
import XMonad.Actions.Submap
+import XMonad.Util.NamedActions
+
import qualified Data.Map as M
import Data.List (foldl', intersperse, sortBy, groupBy, nub)
import Data.Ord (comparing)
hunk ./XMonad/Util/EZConfig.hs 355
mkKeymap :: XConfig l -> [(String, X ())] -> M.Map (KeyMask, KeySym) (X ())
mkKeymap c = M.fromList . mkSubmaps . readKeymap c
+mkNamedKeymap :: XConfig l -> [(String, NamedAction)] -> [((KeyMask, KeySym), NamedAction)]
+mkNamedKeymap c = mkNamedSubmaps . readKeymap c
+
-- | Given a list of pairs of parsed key sequences and actions,
-- group them into submaps in the appropriate way.
hunk ./XMonad/Util/EZConfig.hs 360
+
+mkNamedSubmaps :: [([(KeyMask, KeySym)], NamedAction)] -> [((KeyMask, KeySym), NamedAction)]
+mkNamedSubmaps binds = map combine gathered
+ where gathered = groupBy fstKey
+ . sortBy (comparing fst)
+ $ binds
+ combine [([k],act)] = (k,act)
+ combine ks = (head . fst . head $ ks,
+ submapName . mkNamedSubmaps $ map (first tail) ks)
+ fstKey = (==) `on` (head . fst)
+
mkSubmaps :: [ ([(KeyMask,KeySym)], X ()) ] -> [((KeyMask, KeySym), X ())]
mkSubmaps binds = map combine gathered
where gathered = groupBy fstKey
hunk ./XMonad/Util/EZConfig.hs 388
-- description, action) pairs, parse the key sequences into lists of
-- @(KeyMask,KeySym)@ pairs. Key sequences which fail to parse will
-- be ignored.
-readKeymap :: XConfig l -> [(String, X())] -> [([(KeyMask,KeySym)], X())]
+readKeymap :: XConfig l -> [(String, t)] -> [([(KeyMask, KeySym)], t)]
readKeymap c = mapMaybe (maybeKeys . first (readKeySequence c))
where maybeKeys (Nothing,_) = Nothing
maybeKeys (Just k, act) = Just (k, act)
addfile ./XMonad/Util/NamedActions.hs
hunk ./XMonad/Util/NamedActions.hs 1
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# LANGUAGE FlexibleInstances, StandaloneDeriving #-}
+{-# LANGUAGE ExistentialQuantification, FlexibleContexts #-}
+--------------------------------------------------------------------
+-- |
+-- Module : XMonad.Util.NamedActions
+-- Copyright : Adam Vogt <vogt.adam at gmail.com>
+-- License : BSD3-style (see LICENSE)
+--
+-- Maintainer : Adam Vogt <vogt.adam at gmail.com>
+-- Stability : unstable
+-- Portability : unportable
+--
+-- Present a list of the keybindings in use.
+--------------------------------------------------------------------
+
+module XMonad.Util.NamedActions (
+ -- * Usage:
+ -- $usage
+ sendMessage',
+ spawn',
+ submapName,
+ addDescrKeys,
+ xMessage,
+
+ showKmSimple,
+ showKm,
+
+ noName,
+ oneName,
+ addName,
+
+ (^++^),
+
+ NamedAction(..),
+ HasName,
+ defaultKeysDescr
+ ) where
+
+import XMonad.Actions.Submap(submap)
+import XMonad(KeySym, KeyMask, X, Layout, Message,
+ XConfig(workspaces, terminal, modMask, layoutHook, keys, XConfig),
+ io, spawn, whenJust, ChangeLayout(NextLayout), IncMasterN(..),
+ Resize(..), kill, refresh, screenWorkspace, sendMessage, setLayout,
+ windows, withFocused, controlMask, mod1Mask, mod2Mask, mod3Mask,
+ mod4Mask, mod5Mask, shiftMask, xK_1, xK_9, xK_Return, xK_Tab, xK_c,
+ xK_comma, xK_e, xK_h, xK_j, xK_k, xK_l, xK_m, xK_n, xK_p,
+ xK_period, xK_q, xK_r, xK_space, xK_t, xK_w, keysymToString)
+import System.Posix.Process(executeFile, forkProcess)
+import Control.Arrow(Arrow((***), second, (&&&), first))
+import Data.Bits(Bits((.|.), complement, (.&.)))
+import Data.Function((.), const, ($), flip, id, on)
+import Data.List((++), filter, zip, map, concatMap, elem, head,
+ last, null, unlines, groupBy, intercalate, partition, sortBy)
+import System.Exit(ExitCode(ExitSuccess), exitWith)
+
+import qualified Data.Map as M
+import qualified XMonad.StackSet as W
+
+-- $usage
+-- Here is an example config that demonstrates the usage of 'sendMessage'',
+-- 'mkNamedKeymap', 'addDescrKeys', and '^++^'
+--
+-- > import XMonad
+-- > import XMonad.Util.NamedActions
+-- > import XMonad.Util.EZConfig
+-- >
+-- > main = xmonad $ addDescrKeys ((mod4Mask, xK_d), xMessage) myKeys
+-- > defaultConfig { modMask = mod4Mask }
+-- >
+-- > myKeys = flip mkNamedKeymap $
+-- > [("M-x a", addName "useless..." $ spawn "xmessage foo"),
+-- > ("M-c", sendMessage' Expand)]
+-- > ^++^
+-- > [("<XF86AudioPlay>", spawn "mpc toggle" :: X ()),
+-- > ("<XF86AudioNext>", spawn "mpc next"]
+--
+-- Due to the type of '^++^', you can combine bindings whose actions are @X ()@
+-- as well as actions that have descriptions. However you cannot mix the two in
+-- a single list, unless each is prefixed with 'addName' or 'noName'. '^++^'
+-- works with traditional-style keybindings too.
+--
+-- Also note the unfortunate necessity of a type annotation, since 'spawn' is
+-- too general.
+
+deriving instance Show XMonad.Resize
+deriving instance Show XMonad.IncMasterN
+
+-- | 'sendMessage' but add a description that is @show message at . Note that not
+-- all messages have show instances.
+sendMessage' :: (Message a, Show a) => a -> NamedAction
+sendMessage' x = NamedAction $ (XMonad.sendMessage x,show x)
+
+-- | 'spawn' but the description is the string passed
+spawn' :: String -> NamedAction
+spawn' x = addName x $ spawn x
+
+class HasName a where
+ showName :: a -> [String]
+ showName = const [""]
+ getAction :: a -> X ()
+
+instance HasName (X ()) where
+ getAction = id
+
+instance HasName (IO ()) where
+ getAction = io
+
+instance HasName (X (),String) where
+ showName = (:[]) . snd
+ getAction = fst
+
+instance HasName (X (),[String]) where
+ showName = snd
+ getAction = fst
+
+-- show only the outermost description
+instance HasName (NamedAction,String) where
+ showName = (:[]) . snd
+ getAction = getAction . fst
+
+instance HasName NamedAction where
+ showName (NamedAction x) = showName x
+ getAction (NamedAction x) = getAction x
+
+-- | An existential wrapper so that different types can be combined in lists,
+-- and maps
+data NamedAction = forall a. HasName a => NamedAction a
+
+-- | 'submap', but propagate the descriptions of the actions. Does this belong
+-- in "XMonad.Actions.Submap"?
+submapName :: (HasName a) => [((KeyMask, KeySym), a)] -> NamedAction
+submapName = NamedAction . (submap . M.map getAction . M.fromList &&& showKm)
+ . map (second NamedAction)
+
+-- | Combine keymap lists with actions that may or may not have names
+(^++^) :: (HasName b, HasName b1) =>
+ [(d, b)] -> [(d, b1)] -> [(d, NamedAction)]
+a ^++^ b = map (second NamedAction) a ++ map (second NamedAction) b
+
+-- | Or allow another lookup table?
+modToString :: KeyMask -> String
+modToString mask = concatMap (++"-") $ filter (not . null)
+ $ map (uncurry w)
+ [(mod1Mask, "M1")
+ ,(mod2Mask, "M2")
+ ,(mod3Mask, "M3")
+ ,(mod4Mask, "M4")
+ ,(mod5Mask, "M5")
+ ,(controlMask, "C")
+ ,(shiftMask,"Shift")]
+ where w m str = if m .&. complement mask == 0 then str else ""
+
+keyToString :: (KeyMask, KeySym) -> [Char]
+keyToString = uncurry (++) . (modToString *** keysymToString)
+
+-- | Squeezes bindings from [xK_1 .. xK_9]
+showKm :: [((KeyMask, KeySym), NamedAction)] -> [[Char]]
+showKm = uncurry (flip (++))
+ . second showKmSimple
+ . first (map ( intercalate " ... " . showKmSimple . uncurry (:)
+ . (head &&& (:[]) . last)
+ . sortBy (compare `on` (snd . fst)))
+ . groupBy ((==) `on` (fst . fst))
+ )
+ . partition ((`elem` [xK_1 .. xK_9]) . snd . fst)
+
+showKmSimple :: [((KeyMask, KeySym), NamedAction)] -> [[Char]]
+showKmSimple = concatMap (\(k,e) -> map ((keyToString k ++) . smartSpace) $ showName e)
+ where smartSpace [] = []
+ smartSpace xs = ' ':xs
+
+-- | An action to send to 'addDescrKeys' for showing the keybindings. See also 'showKm' and 'showKmSimple'
+xMessage :: [((KeyMask, KeySym), NamedAction)] -> NamedAction
+xMessage x = addName "Show Keybindings" $ io $ do
+ forkProcess $ executeFile "xmessage" True ["-default", "okay", unlines $ showKm x] Nothing
+ return ()
+
+-- | Merge the supplied keys with 'defaultKeysDescr'
+addDescrKeys :: (HasName b1, HasName b) =>
+ ((KeyMask, KeySym),[((KeyMask, KeySym), NamedAction)] -> b)
+ -> (XConfig Layout -> [((KeyMask, KeySym), b1)])
+ -> XConfig l
+ -> XConfig l
+addDescrKeys k ks = addDescrKeys' k (\l -> defaultKeysDescr l ^++^ ks l)
+
+-- | Without merging with 'defaultKeysDescr'
+addDescrKeys' :: (HasName b) =>
+ ((KeyMask, KeySym),[((KeyMask, KeySym), NamedAction)] -> b)
+ -> (XConfig Layout -> [((KeyMask, KeySym), NamedAction)]) -> XConfig l -> XConfig l
+addDescrKeys' (k,f) ks conf =
+ let shk l = f $ [(k,f $ ks l)] ^++^ ks l
+ keylist l = M.map getAction $ M.fromList $ ks l ^++^ [(k, shk l)]
+ in conf { keys = keylist }
+
+-- | A version of the default keys from 'XMonad.Config.defaultConfig', but with
+-- 'NamedAction' instead of @X ()@
+defaultKeysDescr :: XConfig Layout -> [((KeyMask, KeySym), NamedAction)]
+defaultKeysDescr conf@(XConfig {XMonad.modMask = modm}) =
+ -- launching and killing programs
+ [ ((modm .|. shiftMask, xK_Return), addName "Launch Terminal" $ spawn $ XMonad.terminal conf) -- %! Launch terminal
+ , ((modm, xK_p ), addName "Launch dmenu" $ spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"") -- %! Launch dmenu
+ , ((modm .|. shiftMask, xK_p ), addName "Launch gmrun" $ spawn "gmrun") -- %! Launch gmrun
+ , ((modm .|. shiftMask, xK_c ), addName "Close the focused window" kill) -- %! Close the focused window
+
+ , ((modm, xK_space ), sendMessage' NextLayout) -- %! Rotate through the available layout algorithms
+ , ((modm .|. shiftMask, xK_space ), addName "Reset the layout" $ setLayout $ XMonad.layoutHook conf) -- %! Reset the layouts on the current workspace to default
+
+ , ((modm, xK_n ), addName "Refresh" refresh) -- %! Resize viewed windows to the correct size
+
+ -- move focus up or down the window stack
+ , ((modm, xK_Tab ), addName "Focus down" $ windows W.focusDown) -- %! Move focus to the next window
+ , ((modm .|. shiftMask, xK_Tab ), addName "Focus up" $ windows W.focusUp ) -- %! Move focus to the previous window
+ , ((modm, xK_j ), addName "Focus down" $ windows W.focusDown) -- %! Move focus to the next window
+ , ((modm, xK_k ), addName "Focus up" $ windows W.focusUp ) -- %! Move focus to the previous window
+ , ((modm, xK_m ), addName "Focus the master" $ windows W.focusMaster ) -- %! Move focus to the master window
+
+ -- modifying the window order
+ , ((modm, xK_Return), addName "Swap with the master" $ windows W.swapMaster) -- %! Swap the focused window and the master window
+ , ((modm .|. shiftMask, xK_j ), addName "Swap down" $ windows W.swapDown ) -- %! Swap the focused window with the next window
+ , ((modm .|. shiftMask, xK_k ), addName "Swap up" $ windows W.swapUp ) -- %! Swap the focused window with the previous window
+
+ -- resizing the master/slave ratio
+ , ((modm, xK_h ), sendMessage' Shrink) -- %! Shrink the master area
+ , ((modm, xK_l ), sendMessage' Expand) -- %! Expand the master area
+
+ -- floating layer support
+ , ((modm, xK_t ), addName "Push floating to tiled" $ withFocused $ windows . W.sink) -- %! Push window back into tiling
+
+ -- increase or decrease number of windows in the master area
+ , ((modm , xK_comma ), sendMessage' (IncMasterN 1)) -- %! Increment the number of windows in the master area
+ , ((modm , xK_period), sendMessage' (IncMasterN (-1))) -- %! Deincrement the number of windows in the master area
+
+ -- quit, or restart
+ , ((modm .|. shiftMask, xK_q ), addName "Quit" $ io (exitWith ExitSuccess)) -- %! Quit xmonad
+ , ((modm , xK_q ), addName "Restart" $ spawn "xmonad --recompile && xmonad --restart") -- %! Restart xmonad
+ ]
+ ++
+ -- mod-[1..9] %! Switch to workspace N
+ -- mod-shift-[1..9] %! Move client to workspace N
+ [((m .|. modm, k), addName (n ++ i) $ windows $ f i)
+ | (f, m, n) <- [(W.greedyView, 0, "Switch to workspace "), (W.shift, shiftMask, "Move client to workspace ")]
+ , (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]]
+ ++
+ -- mod-{w,e,r} %! Switch to physical/Xinerama screens 1, 2, or 3
+ -- mod-shift-{w,e,r} %! Move client to screen 1, 2, or 3
+ [((m .|. modm, key), addName (n ++ show sc) $ screenWorkspace sc >>= flip whenJust (windows . f))
+ | (f, m, n) <- [(W.view, 0, "Switch to screen number "), (W.shift, shiftMask, "Move client to screen number ")]
+ , (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]]
+
+-- | These are just the @NamedAction@ constructor but with a more specialized
+-- type, so that you don't have to supply any annotations, for ex coercing
+-- spawn to @X ()@ from the more general @MonadIO m => m ()@
+noName :: X () -> NamedAction
+noName = NamedAction
+
+oneName :: (X (), String) -> NamedAction
+oneName = NamedAction
+
+addName :: String -> X () -> NamedAction
+addName = flip (curry NamedAction)
hunk ./xmonad-contrib.cabal 212
XMonad.Util.Font
XMonad.Util.Invisible
XMonad.Util.Loggers
+ XMonad.Util.NamedActions
XMonad.Util.NamedScratchpad
XMonad.Util.NamedWindows
XMonad.Util.Run
}
Context:
[U.Loggers: add maildirNew, other loggers, and logger formatting utilities
wirtwolff at gmail.com**20090412041356
Ignore-this: 73240ab34348ad895c3d66c2a2e8e40f
Rework of the Logger portions of patches originally from seanmce33 at gmail.com
to apply without conflicts, plus several formatting utilities for use with
X (Maybe String) aka Loggers.
]
[ThreeCol - Update docs to match reality
Anders Engstrom <ankaan at gmail.com>**20090503190755
Ignore-this: e63f3ee533dd9bcf0f32da2316dde1dd
]
[Remove some excess whitespace in XMonad.AppLauncher
Adam Vogt <vogt.adam at gmail.com>**20090503183416
Ignore-this: b5bfa9625b5b080c20398cf1aa396a08
]
[Export ThreeColMid from L.ThreeColumnsMiddle
Adam Vogt <vogt.adam at gmail.com>**20090425161710
Ignore-this: f08d23d108ae9aa4ad176fd9dd275409
The configs that import it should continue to work with this module, though the
type of the ThreeColMid constructor is now ThreeCol (previously ThreeColMid).
]
[ThreeColumns support middle column, with more backwards compatiblity
Adam Vogt <vogt.adam at gmail.com>**20090414061819
Ignore-this: 5a8991269904986e0e012e955c6d4712
]
[X.L.ThreeColumnsMiddle merged into X.L.ThreeColumns with some new features
Anders Engstrom <ankaan at gmail.com>**20090411113636
Ignore-this: 1d5bb8de98f8ade3780444ed99f5a12f
]
[nameTail - Remove the first word of a layout description
Anders Engstrom <ankaan at gmail.com>**20090503105950
Ignore-this: a44c5e38163ed98ffc244cdd206632d1
]
[Add H.InsertPosition: add new windows to different positions in a workspace
Adam Vogt <vogt.adam at gmail.com>**20090503020303
Ignore-this: 7e7d5fa5b42698799cabe600159a75f7
]
[Add changeMaster function to L.Mosaic
Adam Vogt <vogt.adam at gmail.com>**20090501233136
Ignore-this: eca2a48fb987bb871ad93e6c6bf1a186
]
[Optimizer bug does not affect 6.10.2 (issue 226)
Adam Vogt <vogt.adam at gmail.com>**20090430034823
Ignore-this: f43f9bf9502ebb19743c3b417ef02347
]
[Remove -XScopedTypeVariables requirement with L.SubLayouts
Adam Vogt <vogt.adam at gmail.com>**20090428222749
Ignore-this: dbb08e3c1641796603fdaf7b929cdf6d
This should keep the code -Wall clean on ghc-6.8 in addition to ghc-6.10
]
[Add SubLayouts: a layout combinator for nesting layouts.
Adam Vogt <vogt.adam at gmail.com>**20090423013135
Ignore-this: abb21b19bfbc567953419b3035b6a295
]
[Document and extend BoringWindows to support multiple sources of boring.
Adam Vogt <vogt.adam at gmail.com>**20090406041301
Ignore-this: 7375c8912ede6a6a44db4a4b91ffbc33
The Replace and Merge messages are added to support layouts sending a list of
windows that should be skipped over. The sources are tagged by a string key, so
it is possible though unlikely for different sources of boring windows to
interfere with eachother.
]
[Add Apply message to L.WindowNavigation
Adam Vogt <vogt.adam at gmail.com>**20090303065701
Ignore-this: e808729ddd2375778a96775568b8b621
]
[X.A.TopicSpace: remove the allTopics lists from the configuration.
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20090423172939
Ignore-this: 1ac344b32865b38e53b968cc037b0a01
]
[added colour themes
perlkat at katspace.org**20090227065315
These themes are colour themes only; they use the default font settings.
I thought the existing themes were rather dull, so these give more bright
(but tasteful) colours; shades of peacock feathers, shades of autumn.
]
[Prompt.hs: setSuccess True also on Keypad Enter
sean.escriva at gmail.com**20090409162609
Ignore-this: cf04f87c546f89bd32a94de3a2a93b22
]
[Update focus on mouse moves within inactive windows
Daniel Schoepe <asgaroth_ at gmx.de>**20090407191819
Ignore-this: 36c05c60420520dab708401d8a80fc85
This patch adds functionality to update the focus on moves in unfocused windows, which would make sense if one wanted the focus to follow the mouse.
Currently this only happens when the mouse enters/leaves a window.
This patch should fix issue #205.
]
[Add promoteWarp event to L.MagicFocus
Adam Vogt <vogt.adam at gmail.com>**20090322221456
Ignore-this: 12ad5fc144a35fb605f53b744d8146ef
This event enables A.UpdatePointer behavior without causing infinite loops in
combination with magicFocus
]
[Add TowardsCentre option to UpdatePointer
Adam Vogt <vogt.adam at gmail.com>**20090322215811
Ignore-this: d543d8f090b03a6c26b3a0427be3a051
This option is like Nearest, but it places the pointer a configurable
percentage towards the centre of the window, instead of right at the edge.
]
[Remove excess whitespace in A.UpdatePointer
Adam Vogt <vogt.adam at gmail.com>**20090322215553
Ignore-this: 6fbc63642b946461e0fafcb44016824
]
[Combo fix ReleaseResources when no windows are available, new fix
Anders Engstrom <ankaan at gmail.com>**20090224172018
Ignore-this: b59603df8e4cfc1fb2cf9070cea615b3
]
[OneBig_resize.dpatch
portnov84 at rambler.ru**20090221142300
Ignore-this: c02b25bd370ee449aab28005eb4418cf
Add Shrink/Expand messages handling for OneBig layout.
]
[OneBig_layout.dpatch
portnov84 at rambler.ru**20090220172634
Ignore-this: 9d4f308d13f003aa4236417307a66c15
Add the OneBig layout, which places one (master) window at top left corner of
screen (width and height of master window are parameters of layout), and other
(slave) windows at bottom and at right of master, trying to give equal space
for each slave window.
]
[Properly encode destop names before sending them to X server in XMonad.Hooks.EwmhDesktops
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20090220184137
Ignore-this: 6a22ea8bdc49f8484e18f04aaeb545ae
]
[Make utf8-string regular dependency
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20090220183318
Ignore-this: b38936b037c1172ec69905fa345f7afe
The reason for this is that EWMH specification require
utf8 encoded strings.
]
[Update haddock description for Actions.GridSelect
Daniel Schoepe <asgaroth_ at gmx.de>**20090422172510
Ignore-this: db5a2c009f7e88647f168ccb225d6219
]
[X.H.DynamicLog: provides trim, inverse of pad
sean.escriva at gmail.com**20090409163513
Ignore-this: 9d92ff592f2bc4f041b85d1314058fdc
]
[Mouse support for GridSelect
Daniel Schoepe <asgaroth_ at gmx.de>**20090409223302
Ignore-this: 38669e39c8676233d71f457c0b697500
GridSelect now allows selecting an element by a click with the left mouse button.
]
[Generalize GridSelect to arbitrary elements
Daniel Schoepe <asgaroth_ at gmx.de>**20090409155704
Ignore-this: 69fbce85232871482adcce06c1a5fe62
This patch generalizes Actions.GridSelect to work for arbitrary (String,a)-lists. The changes break configurations that used `gridSelect' directly, which is now named gridSelectWindow. As an example for uses of the GridSelect-UI, I included a function to spawn an application from a list of commands(`spawnSelected').
]
[Improve composability of X.H.Place, drop simple(st)Float support
quentin.moser at unifr.ch**20090415184550
Ignore-this: 8a0fb64aa0db27b242b7ad4bcba1a3ca
]
[Fixed X.H.Place.position
quentin.moser at unifr.ch**20090409084946
Ignore-this: 29e3936800194916a859976ff126dbfe
]
[Module for automatic placement of floating windows
quentin.moser at unifr.ch**20090408080953
Ignore-this: 1874df995fc02a0b80051db39d91a2e1
]
[X.H.FloatNext: new module, float the next spawned window(s)
quentin.moser at unifr.ch**20090415181907
Ignore-this: 95e1c9daa3ca43bfb058f6a881a97f3a
]
[ComboP
konstantin.sobolev at gmail.com**20090415014327
Ignore-this: 73bb986165a7bba466aae789a5448170
]
[New module: XMonad.Actions.TopicSpace
Nicolas Pouillard <nicolas.pouillard at gmail.com>**20090419085239
Ignore-this: 4c20592ea6ca74f38545c5a1a002ef91
]
[NamedScratchpad
konstantin.sobolev at gmail.com**20090419045542
Ignore-this: b442cb08123d2413e0bb144a73bf3f57
]
[More configurability for Layout.NoBorders (typeclass method)
Adam Vogt <vogt.adam at gmail.com>**20090325050206
Ignore-this: 91fe0bc6217b910b7348ff497b922e11
This method uses a typeclass to pass a function to the layoutmodifier. It is
flexible, but a bit indirect and perhaps the flexibility is not required.
]
[Add XMonad.Actions.PhysicalScreens
nelhage at mit.edu**20090321001320
Add an XMonad.Actions.PhysicalScreens contrib module that allows
addressing of screens by physical ordering, rather than the arbitrary
ScreenID.
]
[pointWithin has moved to the core
Joachim Breitner <mail at joachim-breitner.de>**20081008154245]
[UpdatePointer even to empty workspaces
Joachim Breitner <mail at joachim-breitner.de>**20081007080041
This makes UpdatePointer more Xinerama-compatible: If the user switches to a
screen with an empty workspace, the pointer is moved to that workspace, which I
think is expected behavoiur.
]
[More predictable aspect ratio in GridVariants.Grid
Norbert Zeh <nzeh at cs.dal.ca>**20090311013617
The old version fairly arbitrarily decided to prefer windows that are too
high over those that are too wide. The new version chooses the number of
columns so that all windows on the screen are as close as possible to the
desired aspect ratio. As a side effect, the layout changes much more
predictably under addition and removal of clients.
]
[X.L.Master: fix number of windows
Ismael Carnales <icarnales at gmail.com>**20090301051509
Ignore-this: 2af132159450d4fb72eb52024eda71b5
]
[U.EZConfig: add xK_Print <Print> to special keys
wirtwolff at gmail.com**20090302230741
Ignore-this: 9560b7c7c4424edb5cea6eec45e2b41d
Many setups are expecting xK_Print rather than
xK_Sys_Req, so make it available in additionalKeysP.
]
[More flexibility for H.FadeInactive
Daniel Schoepe <asgaroth_ at gmx.de>**20090309160020
Ignore-this: ebfa2eadb439763276b372107cdf8d6c
]
[Prompt.Shell: escape ampersand
Valery V. Vorotyntsev <valery.vv at gmail.com>**20090312091314
Ignore-this: 7200b76af8109bab794157da46cb0030
Ampersand (&) is a special character and should be escaped.
]
[Cleanup X.L.Mosaic, without breaking it
Adam Vogt <vogt.adam at gmail.com>**20090219022417
Ignore-this: d49ed55fe8dc2204256dff9252384745
]
[X.L.Mosaic: prevent users from causing non-termination with negative elements
Adam Vogt <vogt.adam at gmail.com>**20090210022727
Ignore-this: 370a7d6249906f1743c6692758ce5aeb
]
[better Layout.NoBorders.smartBorders behavior on xinerama
Adam Vogt <vogt.adam at gmail.com>**20090314170058
Ignore-this: 36737ce2fa2087c4a16ddf226d3b0f0a
Now smartBorders shows borders when you have multiple screens with one window
each. In the case where only one window is visible, no borders are drawn.
]
[H.DynamicLog: revised dzenStrip and xmobarStrip functions
wirtwolff at gmail.com**20090314041517
Ignore-this: 9897c60b8dfc59344939b7aebc370953
Reconcile darcswatch patch with pushed version of dzenStrip.
]
[X.H.DynamicLog: Add dzenStrip to remove formatting, for use in dzenPP's ppUrgent.
Braden Shepherdson <Braden.Shepherdson at gmail.com>**20090314032818
Ignore-this: fd96a1a4b112d0f71589b639b83ec3e
This function was written by Wirt Wolff. This change should allow UrgencyHook
to work out of the box with dzen and dzenPP, rather than the colours being
overridden so even though UrgencyHook is working, it doesn't change colours.
]
[X.H.ManageHelpers: export isInProperty
Roman Cheplyaka <roma at ro-che.info>**20090308201112]
[L.Cross: clarify documentation
wirtwolff at gmail.com**20090222042220
Ignore-this: 4a5dcf71e63d045f27e2340e1def5cc8
Amend-record earlier patch to work with byorgey's fix,
this one is just the documentation typo fixes and
clarifications.
]
[documentation for IndependentScreens
daniel at wagner-home.com**20090221235959]
[eliminate a haddock warning in BoringWindows
daniel at wagner-home.com**20090221235836]
[merge IndependentScreens
daniel at wagner-home.com**20090221232142]
[add IndependentScreens to xmonad-contrib.cabal
daniel at wagner-home.com**20090221231632]
[add type information for IndependentScreens
daniel at wagner-home.com**20090221231525]
[add some boilerplate comments at the top of IndependentScreens
Brent Yorgey <byorgey at cis.upenn.edu>**20090221230850]
[IndependentScreens, v0.0
daniel at wagner-home.com**20090221225229]
[U.Run: remove waitForProcess to close Issue 268
wirtwolff at gmail.com**20090220214153
Ignore-this: a6780565fde40a4aac9023cc55fc2273
http://code.google.com/p/xmonad/issues/detail?id=268
Submitting with some trepidation, since I've nearly no
understanding of process handling. Should be ok, no
warnings by sjanssen when asking about it in hpaste or
earlier email, and tested locally by spawning excessive
numbers of dzens: did not leave zombies or raise exceptions.
]
[change Cross data declaration into a record so that Haddock will parse the per-argument comments
Brent Yorgey <byorgey at cis.upenn.edu>**20090221224742]
[X.L.Master: turn it to a Layout modifier and update the code
Ismael Carnales <icarnales at gmail.com>**20090213020453
Ignore-this: 69513ad2b60dc4aeb49d64ca30e6f9f8
]
[Use doShift in my config
Spencer Janssen <spencerjanssen at gmail.com>**20090219042040
Ignore-this: 1f103d21bbceec8d48384f975f18eaec
]
[SpawnOn: use doShift. This resolves problems where SpawnOn would shift the wrong window
Spencer Janssen <spencerjanssen at gmail.com>**20090219041856
Ignore-this: 6ae639a638db8eff77203f3f2e481a4e
]
[SpawnOn: delete seen pids
Spencer Janssen <spencerjanssen at gmail.com>**20090213013011
Ignore-this: 8b15a60bba1edf1bab5fb77ac54eb12f
]
[X.U.Loggers: handle possible EOF (reported by dyfrgi)
Roman Cheplyaka <roma at ro-che.info>**20090216213842]
[U.Scratchpad: add general spawn action to close issue 249
wirtwolff at gmail.com**20090214003642
Ignore-this: 925ad9db4ecc934dcd86320f383ed44a
Adds scratchpadSpawnActionCustom where user specifies how to set
resource to "scratchpad". This allows use of gnome-terminal, etc.
Add detail to RationalRectangle documentation; strip trailing spaces.
]
[SpawnOn: add 'exec' to shell strings where possible
Spencer Janssen <spencerjanssen at gmail.com>**20090212234608
Ignore-this: c7de4e05803d60b10f38004dcbda4732
]
[Add Cross Layout
'Luis Cabellos <zhen.sydow at gmail.com>'**20090209174802]
[Fix an undefined in EwmhDesktops
Daniel Schoepe <asgaroth_ at gmx.de>**20090209152308
Ignore-this: f60a43d7ba90164ebcf700090dfb2480
]
[X.U.WindowProperties: docs (description and sections)
Roman Cheplyaka <roma at ro-che.info>**20090208231422]
[X.U.WindowProperties: Add getProp32 and getProp32s, helpers to get properties from windows
Ismael Carnales <icarnales at gmail.com>**20090205013031
Ignore-this: c5481fd5d97b15ca049e2da2605f65c1
]
[cleanup and make X.L.Mosaic behavior more intuitive wrt. areas
Adam Vogt <vogt.adam at gmail.com>**20090208221629
Ignore-this: 3c3c6faa203cbb1c1db909e5bf018b6f
]
[minor typo in XMonad/Util/EZConfig.hs
Joachim Breitner <mail at joachim-breitner.de>**20090208192224
Ignore-this: 7ffee60858785c3e31fdd5383c9bb784
]
[Multimedia keys support for EZConfig
Khudyakov Alexey <alexey.skladnoy at gmail.com>**20090207173330
Ignore-this: 21183dd7c192682daa18e3768828f88d
]
[+A.CycleWindows: bindings to cycle windows in new ways
wirtwolff at gmail.com**20090207170622
Ignore-this: 51634299addf224cbbc421adb4b048f5
Provides binding actions and customizable pure stack operations
to cycle through a list of permutations of the stack (recent),
cycle nth into focus, cycle through focus excluding a neighbor,
cycle unfocused, shift a window halfway around the stack.
Esp. for Full, two or three pane layouts, but useful for any
layout with many windows.
]
[XMonad.Actions.CopyWindow: fmt & qualify stackset import
gwern0 at gmail.com**20090206171833
Ignore-this: 4d08f5a7627020b188f59fc637b53ae8
]
[XMonad.Actions.CopyWindow runOrCopy
lan3ny at gmail.com**20080602205742]
[ManageHelpers: reduce duplicated code in predicates
Ismael Carnales <icarnales at gmail.com>**20090204021847
Ignore-this: e28a912d4f897eba68ab3edfddf9f26b
]
[Remove X.U.SpawnOnWorkspace (superseded by X.A.SpawnOn)
Roman Cheplyaka <roma at ro-che.info>**20090204103635]
[X.A.SpawnOn: add docs
Roman Cheplyaka <roma at ro-che.info>**20090204102424
Add more documentation, including documentation from
X.U.SpawnOnWorkspace by Daniel Schoepe.
]
[Remove silliness from XMonad.Doc.Configuring
Spencer Janssen <spencerjanssen at gmail.com>**20090204055626]
[Adjustments to use the new event hook feature instead of Hooks.EventHook
Daniel Schoepe <asgaroth_ at gmx.de>**20090203160046
Ignore-this: f8c239bc8e301cbd6fa509ef748af542
]
[Easier Colorizers for X.A.GridSelect
quentin.moser at unifr.ch**20090128001702
Ignore-this: df3e0423824e40537ffdb4bc7363655d
]
[X.A.SpawOn: fix usage doc
Roman Cheplyaka <roma at ro-che.info>**20090202102042]
[Added GridVariants.SplitGrid
Norbert Zeh <nzeh at cs.dal.ca>**20090129152146
GridVariants.TallGrid behaved weird when transformed using Mirror
or Reflect. The new layout SplitGrid does away with the need for
such transformations by taking a parameter to specify horizontal
or vertical splits.
]
[FixedColumn: added missing nmaster to the usage doc
Ismael Carnales <icarnales at gmail.com>**20090130195239
Ignore-this: 642aa0bc9e68e7518acc8af30324b97a
]
[XMonad.Actions.Search: fix whitespace & tabs
gwern0 at gmail.com**20090129025246
Ignore-this: 894e479ccc46160848c4d70c2361c929
]
[xmonad-action-search-intelligent-searchengines
Michal Trybus <komar007 at gmail.com>**20090128101938
Changed the XMonad.Action.Search to use a function instead of String to prepare the search URL.Added a few useful functions used to connect many search engines together and do intelligent prefixed searches (more doc in haddock)The API has not changed with the only exception of search function, which now accepts a function instead of String.
]
[XMonad.Prompt autocompletion fix
quentin.moser at unifr.ch**20090127184145
Ignore-this: 635cbf6420722a4edef1ae9c40b36e1b
]
[X.A.SinkAll: re-add accidentally deleted usage documentation
Brent Yorgey <byorgey at cis.upenn.edu>**20090127222533]
[move XMonad.Actions.SinkAll functionality to more general XMonad.Actions.WithAll, and re-export sinkAll from X.A.SinkAll for backwards compatibility
Brent Yorgey <byorgey at cis.upenn.edu>**20090127222355]
[adds generic 'all windows on current workspace' functionality
loupgaroublond at gmail.com**20081221224850]
[placement patch to XMonad.Layout.LayoutHints
quentin.moser at unifr.ch**20090126195950
Ignore-this: 87a5efa9c841d378a808b1a4309f18
]
[XMonad.Actions.MessageFeedback module
quentin.moser at unifr.ch**20090126181059
Ignore-this: 82e58357a44f98c35ccf6ad0ef98b552
]
[submapDefault
Anders Engstrom <ankaan at gmail.com>**20090118152933
Ignore-this: c8958d47eb584a7de04a81eb087f05d1
Add support for a default action to take when the entered key does not match any entry.
]
[X.A.CycleWS: convert tabs to spaces (closes #266)
Roman Cheplyaka <roma at ro-che.info>**20090127185604]
[Mosaic picks the middle aspect layout, unless overriden
Adam Vogt <vogt.adam at gmail.com>**20090126032421
Ignore-this: aaa31da14720bffd478db0029563aea5
]
[Mosaic: stop preventing access to the widest layouts
Adam Vogt <vogt.adam at gmail.com>**20090125045256
Ignore-this: c792060fe2eaf532f433cfa8eb1e8fe3
]
[X.L.Mosaic add documentation, update interface and aspect ratio behavior
Adam Vogt <vogt.adam at gmail.com>**20090125041229
Ignore-this: e78027707fc844b3307ea87f28efed73
]
[Use currentTag, thanks asgaroth
Spencer Janssen <spencerjanssen at gmail.com>**20090125213331
Ignore-this: dd1a3d96038de6479eca3b9798d38437
]
[Support for spawning most applications on a specific workspace
Daniel Schoepe <asgaroth_ at gmx.de>**20090125191045
Ignore-this: 26076d54b131e037b42c87e4fde63200
]
[X.L.Mosaic: haddock fix
Roman Cheplyaka <roma at ro-che.info>**20090124235908]
[A mosaic layout based on MosaicAlt
Adam Vogt <vogt.adam at gmail.com>**20090124022058
Ignore-this: 92bad7498f1ac402012e3eba6cbb2693
The position of a window in the stack determines its position and layout. And
the overall tendency to make wide or tall windows can be changed, though not
all of the options presented by MosaicAlt can be reached, the layout changes
with each aspect ratio message.
]
[uninstallSignalHandlers in spawnPipe
Spencer Janssen <spencerjanssen at gmail.com>**20090122002745
Ignore-this: e8cfe0f18f278c95d492628da8326fd7
]
[Create a new session for spawnPiped processes
Spencer Janssen <spencerjanssen at gmail.com>**20090122000441
Ignore-this: 37529c5fe8b4bf1b97fffb043bb3dfb0
]
[TAG 0.8.1
Spencer Janssen <spencerjanssen at gmail.com>**20090118220647]
[Use spawnOn in my config
Spencer Janssen <spencerjanssen at gmail.com>**20090117041026
Ignore-this: 3f92e4bbe4f2874b86a6c7ad66a31bbb
]
[Add XMonad.Actions.SpawnOn
Spencer Janssen <spencerjanssen at gmail.com>**20090117040432
Ignore-this: 63869d1ab11f2ed5aab1690763065800
]
[Bump version to 0.8.1
Spencer Janssen <spencerjanssen at gmail.com>**20090116223607
Ignore-this: 1c201e87080e4404f51cadc108b228a1
]
[Compile without optimizations on x86_64 and GHC 6.10
Spencer Janssen <spencerjanssen at gmail.com>**20090108231650
Ignore-this: a803235b8022793f648e8953d9f05e0c
This is a workaround for http://xmonad.org/bugs/226
]
[Update all uses of doubleFork/waitForProcess
Spencer Janssen <spencerjanssen at gmail.com>**20090116210315
Ignore-this: 4e15b7f3fd6af3b7317449608f5246b0
]
[Update to my config
Spencer Janssen <spencerjanssen at gmail.com>**20090116204553
Ignore-this: 81017fa5b99855fc8ed1fe8892929f53
]
[Adjustments to new userCode function
Daniel Schoepe <asgaroth_ at gmx.de>**20090110221310]
[X.U.EZConfig: expand documentation
Brent Yorgey <byorgey at cis.upenn.edu>**20090116153143]
[add a bit of documentation to HintedTile
Brent Yorgey <byorgey at cis.upenn.edu>**20090114065126]
[ManageHelpers: add isDialog
johanngiwer at web.de**20090108232505]
[CenteredMaster
portnov84 at rambler.ru**20090111134513
centerMaster layout modifier places master window at top of other, at center of screen. Other windows are managed by base layout.
topRightMaster is similar, but places master window at top right corner.
]
[XMonad.Util.XSelection: update maintainer information
gwern0 at gmail.com**20090110213000
Ignore-this: 1592ba07f2ed5d2258c215c2d175190a
]
[X.U.XSelection: get rid of warning about missing newline, add Haddock link
Brent Yorgey <byorgey at cis.upenn.edu>**20090102194357]
[adds haddock documentation for transformPromptSelection
loupgaroublond at gmail.com**20090102190954
also renames the function per mailing list recommendation
]
[adds a weird function to XSelection
loupgaroublond at gmail.com**20081222020730
This enables you to pass a function of (String -> String) to a selection function to modify the string before executing it. This way, you can input your own escape routines to make it shell command line safe, and/or do other fancier things.
]
[ThreeColumnsMiddle
xmonad at c-otto.de**20090102091019]
[fix-fromJust-errors
rupa at lrrr.us**20081224045509
bogner wrote all this stuff and i just tested it.
I had:
myLogHook = ewmhDesktopLogHookCustom ScratchpadFilterOutWorkspace >> updatePointer Nearest
Everytime I invoked or hid Scratchpad, it would leave a 'Maybe.fromJust: Nothing' line in .xsession-errors, and updatePointer would stop working.
]
[ Prompt: Change Filemode to 600 for history-file (fixes bug 244)
Dominik Bruhn <dominik at dbruhn.de>**20081218001601]
[X.L.Monitor: changes in message passing
Roman Cheplyaka <roma at ro-che.info>**20081226220851
- transform mbName (Maybe String) to name (String)
- slghtly change semantics of messages, document it
]
[X.L.Monitor: change interface
Roman Cheplyaka <roma at ro-che.info>**20081226213118
- remove add*Monitor
- add manageMonitor, monitor template
]
[X.U.WindowProperties: propertyToQuery+docs
Roman Cheplyaka <roma at ro-che.info>**20081225080702]
[X.L.Monitor: docs
Roman Cheplyaka <roma at ro-che.info>**20081225073904]
[hlintify XUtils, XSelection, Search, WindowGo
gwern0 at gmail.com**20081220153302
Ignore-this: 7e877484e3cd8954b74232ea83180fa9
]
[fix focus issue for XMonad.Actions.Warp.banishScreen
Norbert Zeh <nzeh at cs.dal.ca>**20081212203532
This patch ensures that the focus (or in fact the whose windowset)
does not change as a result of a banishScreen. The way this is implemented
will become problematic if xmonad ever goes multithreaded.
]
[addition of XMonad.Actions.Warp.banishScreen
Norbert Zeh <nzeh at cs.dal.ca>**20081212192621
This works on top of warpToScreen and, thus, suffers from the same issue:
focus change.
]
[fixed documentation for banish
Norbert Zeh <nzeh at cs.dal.ca>**20081212191819
banish actually warps to the specified corner of the current window, not
the screen.
]
[addition of combined TallGrid layout
Norbert Zeh <nzeh at cs.dal.ca>**20081212184836
Added a module XMonad.Layouts.GridVariants, which defines layouts
Grid and TallGrid. The former is a customizable version of Grid. The latter
is a combination of Grid and Tall (see doc of the module).
]
[Add FixedColumn, a layout like Tall but based on the resize hints of windows
Justin Bogner <mail at justinbogner.com>**20081213073054]
[XMonad.Actions.WindowGo: fix a floating-related focus bug
gwern0 at gmail.com**20081205150755
Ignore-this: c8b6625aa2bd4136937acbd2ad64ffd3
If a floating window was focused, a cross-workspace 'raise' would cause a loop of
shifting windows. Apparently the problem was 'focus' and its mouse-handling. Spencer
suggested that the calls to focus be replaced with 'focusWindow', which resolved it.
]
[Prompt.hs: +greenXPConfig and amberXPConfig
gwern0 at gmail.com**20081119213122
Ignore-this: 95ac7dbe9c8fe3618135966f251f4fc6
]
[Prompt.hs: increase font size to 12 from niggardly 10
gwern0 at gmail.com**20081119212523
Ignore-this: 74a6e1ac5e1774da4ffc7c6667c034c
]
[Prompt.hs: replace magic numbers with understandable names
gwern0 at gmail.com**20081119212502
Ignore-this: 8401c0213be9a32c925e1bd0ba5e01f1
]
[X.L.Monitor: recommend doHideIgnore (docs)
Roman Cheplyaka <roma at ro-che.info>**20081215190710]
[X.L.Monitor: docs
Roman Cheplyaka <roma at ro-che.info>**20081215184423]
[X.L.Monitor: export Monitor datatype
Roman Cheplyaka <roma at ro-che.info>**20081215184318]
[X.H.ManageHelpers: add doHideIgnore
Roman Cheplyaka <roma at ro-che.info>**20081215182758]
[Add KDE 4 config, thanks to Shirakawasuna on IRC
Spencer Janssen <spencerjanssen at gmail.com>**20081211071141
Ignore-this: 51698961ab5b6e569c294d174f2804a9
]
[I use the deleteConsecutive history filter
Spencer Janssen <spencerjanssen at gmail.com>**20081025070438]
[Remove XMonad.Config.PlainConfig, it has been turned into the separate xmonad-light project.
Braden Shepherdson <Braden.Shepherdson at gmail.com>**20081203161534]
[XMonad.Prompt: swap up and down per bug #243
gwern0 at gmail.com**20081203013323
Ignore-this: 8ab0481a0da7a983f501ac2fec4a68e8
]
[Fix boolean operator precedence in GridSelect keybindings
Aleksandar Dimitrov <aleks.dimitrov at googlemail.com>**20081201120928
The vim-like hjkl keys were ORed to the key event AND arrow keys.
]
[GridSelect.hs: navigate grid with h,j,k,l as well as arrow keys
sean.escriva at gmail.com**20081122084725]
[Export setOpacity from FadeInactive. Document how to make monitor transparent (X.L.Monitor)
Roman Cheplyaka <roma at ro-che.info>**20081117153027]
[Monitor: use broadcastMessage instead of sendMessage; this solves several issues
Roman Cheplyaka <roma at ro-che.info>**20081117133957]
[FadeInactive: fade all inactive windows (including focused windows on visible screens)
Roman Cheplyaka <roma at ro-che.info>**20081117130115]
[Monitor: documented one more issue
Roman Cheplyaka <roma at ro-che.info>**20081117113807]
[Monitor: improved the docs
Roman Cheplyaka <roma at ro-che.info>**20081117073709]
[added XMonad.Layout.Monitor
Roman Cheplyaka <roma at ro-che.info>**20081115104735]
[WindowProperties: added allWithProperty
Roman Cheplyaka <roma at ro-che.info>**20081115104525]
[ManageHelpers: added doSideFloat (generalization of doCenterFloat)
Roman Cheplyaka <roma at ro-che.info>**20081114113015]
[GridSelect: Export default_colorizer
Dominik Bruhn <dominik at dbruhn.de>**20081112140005]
[Simplify code for restriction-calculation and remove compiletime warnings
Dominik Bruhn <dominik at dbruhn.de>**20081112134630]
[Simplify handle/eventLoop, introduce findInWindowMap, partial updates for key movements (less flickering)
Clemens Fruhwirth <clemens at endorphin.org>**20081111100405
* handle/eventLoop carried the display and the drawing window as
parameters. The display is available from the embedded X monad, the
drawing windows was added.
* updateWindows now takes a list of windows to
update. updateAllWindows updates all windows.
* only the windows that are modified by key movements are redrawn
now. This means less flickering.
]
[GridSelect: force cursor stay in visible area
Roman Cheplyaka <roma at ro-che.info>**20081111063348]
[GridSelect: fix infiniteness problem with diamondRestrict
Roman Cheplyaka <roma at ro-che.info>**20081111055350]
[GridSelect: remove tabs
Roman Cheplyaka <roma at ro-che.info>**20081111053647]
[Exported shrinkWhile from Decoration to use in GridSelect
Roman Cheplyaka <roma at ro-che.info>**20081110191534]
[GridSelect: added link to a screenshot
Roman Cheplyaka <roma at ro-che.info>**20081110190617]
[GridSelect: various improvements
Roman Cheplyaka <roma at ro-che.info>**20081110184644
Added documentation
Restricted export list for the sake of haddock
Added functions:
withSelectedWindow
bringSelected (by Clemens Fruhwirth)
goToSelected (by Dominik Bruhn)
]
[Initial version of GridSelect.hs with a lot room for improvement/cleanups
Clemens Fruhwirth <clemens at endorphin.org>**20081107115114]
[documentation: XMonad.Util.Search.hs, add EZConfig keybindings example
sean.escriva at gmail.com**20081106171707]
[typo
Don Stewart <dons at galois.com>**20081104043044
Ignore-this: bdac0ff3316c821bce321b51c62f6e89
]
[place an upper bound on the version of base we support
Don Stewart <dons at galois.com>**20081104035857
Ignore-this: 29139cc4f0ecb299b56ae99f7d20b854
]
[explicit import list for things in the process library
Don Stewart <dons at galois.com>**20081104035319
Ignore-this: 91b7f96421828788760e8bcff7dec317
]
[Work around ghc 6.10 bug #2738
Don Stewart <dons at galois.com>**20081104034819
Ignore-this: c75da9693fa642025eac0d074869423d
]
[windowPromptBringCopy
deadguysfrom at gmail.com**20081023173019]
[generic menu and window bringer
Travis B. Hartwell <nafai at travishartwell.net>**20081027005523]
[Search.hs: +hackage search, courtesy of byorgey
gwern0 at gmail.com**20081031214937
Ignore-this: 24db0ceed49f8bd37ce98ccf8f8ca2ab
]
[Prompt.hs rename deleteConsecutiveDuplicates
gwern0 at gmail.com**20081008205131
That name is really unwieldy and long.
]
[Prompt.hs: have historyCompletion filter dupes
gwern0 at gmail.com**20081008204710
Specifically, it calls deleteConsecutiveDuplicates on the end product. uniqSort reverses order in an unfortunate way, so we don't use that.
The use-case is when a user has added the same input many times - as it stands, if the history records 30 'top's or whatever, the completion will show 30 'top' entries! This fixes that.
]
[Prompt.hs: tweak haddocks
gwern0 at gmail.com**20081008204649]
[Prompt.hs: mv uniqSort to next to its confreres, and mention the trade-off
gwern0 at gmail.com**20081008192645]
[Do not consider XMONAD_TIMER unknown
Joachim Breitner <mail at joachim-breitner.de>**20081008195643]
[Kill window without focusing it first
Joachim Breitner <mail at joachim-breitner.de>**20081005002533
This patch requires the patch "add killWindow function" in xmonad.
Before this patch, people would experience ?workspace flicker? when closing
a window via EWMH that is not on the current workspace, for example when
quitting pidgin via the panel icon.
]
[let MagnifyLess actually magnify less
daniel at wagner-home.com**20081015153911]
[Actions.Search: add a few search engines
intrigeri at boum.org**20081008104033
Add Debian {package, bug, tracking system} search engines, as well as Google
Images and isohunt.
]
[Implement HiddenNonEmptyWS with HiddenWS and NonEmptyWS
Joachim Breitner <mail at joachim-breitner.de>**20081006211027
(Just to reduce code duplication)
]
[Add straightforward HiddenWS to WSType
Joachim Breitner <mail at joachim-breitner.de>**20081006210548
With NonEmptyWS and HiddenNonEmptyWS present, HiddenWS is obviously missing.
]
[Merge emptyLayoutMod into redoLayout
Joachim Breitner <mail at joachim-breitner.de>**20081005190220
This removes the emptyLayoutMod method from the LayoutModifier class, and
change the Stack parameter to redoLayout to a Maybe Stack one. It also changes
all affected code. This should should be a refactoring without any change in
program behaviour.
]
[SmartBorders even for empty layouts
Joachim Breitner <mail at joachim-breitner.de>**20081005184426
Fixes: http://code.google.com/p/xmonad/issues/detail?id=223
]
[Paste.hs: improve haddocks
gwern0 at gmail.com**20080927150158]
[Paste.hs: fix haddock
gwern0 at gmail.com**20080927145238]
[minor explanatory comment
daniel at wagner-home.com**20081003015919]
[XMonad.Layout.HintedGrid: add GridRatio (--no-test because of haddock breakage)
Lukas Mai <l.mai at web.de>**20080930141715]
[XMonad.Util.Font: UTF8 -> USE_UTF8
Lukas Mai <l.mai at web.de>**20080930140056]
[Paste.hs: implement noModMask suggestion
gwern0 at gmail.com**20080926232056]
[fix a divide by zero error in Grid
daniel at wagner-home.com**20080926204148]
[-DUTF8 flag with -DUSE_UTF8
gwern0 at gmail.com**20080921154014]
[XSelection.hs: use CPP to compile against utf8-string
gwern0 at gmail.com**20080920151615]
[add XMonad.Config.Azerty
Devin Mullins <me at twifkak.com>**20080924044946]
[flip GridRatio to match convention (x/y)
Devin Mullins <me at twifkak.com>**20080922033354]
[let Grid have a configurable aspect ratio goal
daniel at wagner-home.com**20080922010950]
[Paste.hs: +warning about ASCII limitations
gwern0 at gmail.com**20080921155038]
[Paste.hs: shorten comment lines to under 80 columns per sjanssen
gwern0 at gmail.com**20080921154950]
[Forgot to enable historyFilter :(
Spencer Janssen <spencerjanssen at gmail.com>**20080921094254]
[Prompt: add configurable history filters
Spencer Janssen <spencerjanssen at gmail.com>**20080921093453]
[Update my config to use 'statusBar'
Spencer Janssen <spencerjanssen at gmail.com>**20080921063513]
[Rename pasteKey functions to sendKey
Spencer Janssen <spencerjanssen at gmail.com>**20080921062016]
[DynamicLog: doc fixes
Spencer Janssen <spencerjanssen at gmail.com>**20080921061314]
[Move XMonad.Util.XPaste to XMonad.Util.Paste
Spencer Janssen <spencerjanssen at gmail.com>**20080921060947]
[Depend on X11 >= 1.4.3
Spencer Janssen <spencerjanssen at gmail.com>**20080921055456]
[statusBar now supplies the action to toggle struts
Spencer Janssen <spencerjanssen at gmail.com>**20080918013858]
[cleanup - use currentTag
Devin Mullins <me at twifkak.com>**20080921011159]
[XPaste.hs: improve author info
gwern0 at gmail.com**20080920152342]
[+XMonad.Util.XPaste: a module for pasting strings to windows
gwern0 at gmail.com**20080920152106]
[UrgencyHook bug fix: cleanupUrgents should clean up reminders, too
Devin Mullins <me at twifkak.com>**20080920062117]
[Sketch of XMonad.Config.Monad
Spencer Janssen <spencerjanssen at gmail.com>**20080917081838]
[raiseMaster
seanmce33 at gmail.com**20080912184830]
[Add missing space between dzen command and flags
Daniel Neri <daniel.neri at sigicom.com>**20080915131009]
[Big DynamicLog refactor. Added statusBar, improved compositionality for dzen and xmobar
Spencer Janssen <spencerjanssen at gmail.com>**20080913205931
Compatibility notes:
- dzen type change
- xmobar type change
- dynamicLogDzen removed
- dynamicLogXmobar removed
]
[Take maintainership of XMonad.Prompt
Spencer Janssen <spencerjanssen at gmail.com>**20080911230442]
[Overhaul Prompt to use a zipper for history navigation. Fixes issue #216
Spencer Janssen <spencerjanssen at gmail.com>**20080911225940]
[Use the new completion on tab setting
Spencer Janssen <spencerjanssen at gmail.com>**20080911085940]
[Only start to show the completion window with more than one match
Joachim Breitner <mail at joachim-breitner.de>**20080908110129]
[XPrompt: Add showCompletionOnTab option
Joachim Breitner <mail at joachim-breitner.de>**20080908105758
This patch partially implements
http://code.google.com/p/xmonad/issues/detail?id=215
It adds a XPConfig option that, if enabled, hides the completion window
until the user presses Tab once. Default behaviour is preserved.
TODO: If Tab causes a unique completion, continue to hide the completion
window.
]
[XMonad.Actions.Plane.planeKeys: function to make easier to configure
Marco T?lio Gontijo e Silva <marcot at riseup.net>**20080714153601]
[XMonad.Actions.Plane: removed unneeded hiding
Marco T?lio Gontijo e Silva <marcot at riseup.net>**20080714152631]
[Improvements in documentation
Marco T?lio Gontijo e Silva <marcot at riseup.net>**20080709002425]
[Fix haddock typos in XMonad.Config.{Desktop,Gnome,Kde}
Spencer Janssen <spencerjanssen at gmail.com>**20080911040808]
[add clearUrgents for your keys
Devin Mullins <me at twifkak.com>**20080909055425]
[add reminder functionality to UrgencyHook
Devin Mullins <me at twifkak.com>**20080824200548
I'm considering rewriting remindWhen and suppressWhen as UrgencyHookModifiers, so to speak. Bleh.
]
[TAG 0.8
Spencer Janssen <spencerjanssen at gmail.com>**20080905195420]
Patch bundle hash:
2df246dd8f838839a66704297b3bd13109f8c468
More information about the xmonad
mailing list