
Tue Apr 14 21:43:27 EDT 2009 konstantin.sobolev@gmail.com * ComboP

Applied! konstantin.sobolev:
Tue Apr 14 21:43:27 EDT 2009 konstantin.sobolev@gmail.com * ComboP
Content-Description: A darcs patch for your repository!
New patches:
[ComboP konstantin.sobolev@gmail.com**20090415014327 Ignore-this: 73bb986165a7bba466aae789a5448170 ] { addfile ./XMonad/Layout/ComboP.hs hunk ./XMonad/Layout/ComboP.hs 1 +{-# LANGUAGE TypeSynonymInstances, DeriveDataTypeable, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternGuards #-} +----------------------------------------------------------------------------- +-- | +-- Module : XMonad.Layout.ComboP +-- Copyright : (c) Konstantin Sobolev
+-- License : BSD-style (see LICENSE) +-- +-- Maintainer : Konstantin Sobolev +-- Stability : unstable +-- Portability : unportable +-- +-- A layout that combines multiple layouts and allows to specify where to put +-- new windows. +-- +----------------------------------------------------------------------------- + +module XMonad.Layout.ComboP ( + -- * Usage + -- $usage + combineTwoP, + CombineTwoP, + SwapWindow(..), + Property(..) + ) where + +import Data.List ( delete, intersect, (\\) ) +import Data.Maybe ( isJust ) +import Control.Monad +import XMonad hiding (focus) +import XMonad.StackSet ( integrate, Workspace (..), Stack(..) ) +import XMonad.Layout.WindowNavigation +import XMonad.Util.WindowProperties +import qualified XMonad.StackSet as W + +-- $usage +-- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@: +-- +-- > import XMonad.Layout.ComboP +-- +-- and add something like +-- +-- > combineTwoP (TwoPane 0.03 0.5) (tabbed shrinkText defaultTConf) (tabbed shrinkText defaultTConf) (ClassName "Firefox") +-- +-- to your layouts. This way all windows with class = \"Firefox\" will always go +-- to the left pane, all others - to the right. +-- +-- For more detailed instructions on editing the layoutHook see: +-- +-- "XMonad.Doc.Extending#Editing_the_layout_hook" +-- +-- 'combineTwoP' is a simple layout combinator based on 'combineTwo' from Combo, with +-- addition of a 'Property' which tells where to put new windows. Windows mathing +-- the property will go into the first part, all others will go into the second +-- part. It supports @Move@ messages as 'combineTwo' does, but it also introduces +-- 'SwapWindow' message which sends focused window to the other part. It is +-- required becase @Move@ commands don't work when one of the parts is empty. +-- To use it, import \"XMonad.Layout.WindowNavigation\", and add the following key +-- bindings (or something similar): +-- +-- > , ((modMask x .|. controlMask .|. shiftMask, xK_Right), sendMessage $ Move R) +-- > , ((modMask x .|. controlMask .|. shiftMask, xK_Left ), sendMessage $ Move L) +-- > , ((modMask x .|. controlMask .|. shiftMask, xK_Up ), sendMessage $ Move U) +-- > , ((modMask x .|. controlMask .|. shiftMask, xK_Down ), sendMessage $ Move D) +-- > , ((modMask x .|. controlMask .|. shiftMask, xK_s ), sendMessage $ SwapWindow) +-- +-- For detailed instruction on editing the key binding see +-- "XMonad.Doc.Extending#Editing_key_bindings". + +data SwapWindow = SwapWindow -- ^ Swap window between panes + | SwapWindowN Int -- ^ Swap window between panes in the N-th nested ComboP. @SwapWindowN 0@ equals to SwapWindow + deriving (Read, Show, Typeable) +instance Message SwapWindow + +data CombineTwoP l l1 l2 a = C2P [a] [a] [a] l (l1 a) (l2 a) Property + deriving (Read, Show) + +combineTwoP :: (LayoutClass super(), LayoutClass l1 Window, LayoutClass l2 Window) => + super () -> l1 Window -> l2 Window -> Property -> CombineTwoP (super ()) l1 l2 Window +combineTwoP = C2P [] [] [] + +instance (LayoutClass l (), LayoutClass l1 Window, LayoutClass l2 Window) => + LayoutClass (CombineTwoP (l ()) l1 l2) Window where + doLayout (C2P f w1 w2 super l1 l2 prop) rinput s = + let origws = W.integrate s -- passed in windows + w1c = origws `intersect` w1 -- current windows in the first pane + w2c = origws `intersect` w2 -- current windows in the second pane + new = origws \\ (w1c ++ w2c) -- new windows + superstack = Just Stack { focus=(), up=[], down=[()] } + f' = focus s:delete (focus s) f -- list of focused windows, contains 2 elements at most + in do + matching <- (hasProperty prop) `filterM` new -- new windows matching predecate + let w1' = w1c ++ matching -- updated first pane windows + w2' = w2c ++ (new \\ matching) -- updated second pane windows + s1 = differentiate f' w1' -- first pane stack + s2 = differentiate f' w2' -- second pane stack + ([((),r1),((),r2)], msuper') <- runLayout (Workspace "" super superstack) rinput + (wrs1, ml1') <- runLayout (Workspace "" l1 s1) r1 + (wrs2, ml2') <- runLayout (Workspace "" l2 s2) r2 + return (wrs1++wrs2, Just $ C2P f' w1' w2' (maybe super id msuper') + (maybe l1 id ml1') (maybe l2 id ml2') prop) + + handleMessage us@(C2P f ws1 ws2 super l1 l2 prop) m + | Just SwapWindow <- fromMessage m = swap us + | Just (SwapWindowN 0) <- fromMessage m = swap us + | Just (SwapWindowN n) <- fromMessage m = forwardToFocused us $ SomeMessage $ SwapWindowN $ n-1 + + | Just (MoveWindowToWindow w1 w2) <- fromMessage m, + w1 `elem` ws1, + w2 `elem` ws2 = return $ Just $ C2P f (delete w1 ws1) (w1:ws2) super l1 l2 prop + + | Just (MoveWindowToWindow w1 w2) <- fromMessage m, + w1 `elem` ws2, + w2 `elem` ws1 = return $ Just $ C2P f (w1:ws1) (delete w1 ws2) super l1 l2 prop + + | otherwise = do ml1' <- handleMessage l1 m + ml2' <- handleMessage l2 m + msuper' <- handleMessage super m + if isJust msuper' || isJust ml1' || isJust ml2' + then return $ Just $ C2P f ws1 ws2 + (maybe super id msuper') + (maybe l1 id ml1') + (maybe l2 id ml2') prop + else return Nothing + + description (C2P _ _ _ super l1 l2 prop) = "combining " ++ description l1 ++ " and "++ + description l2 ++ " with " ++ description super ++ " using "++ (show prop) + +-- send focused window to the other pane. Does nothing if we don't +-- own the focused window +swap :: (LayoutClass s a, LayoutClass l1 Window, LayoutClass l2 Window) => + CombineTwoP (s a) l1 l2 Window -> X (Maybe (CombineTwoP (s a) l1 l2 Window)) +swap (C2P f ws1 ws2 super l1 l2 prop) = do + mst <- gets (W.stack . W.workspace . W.current . windowset) + let (ws1', ws2') = case mst of + Nothing -> (ws1, ws2) + Just st -> if foc `elem` ws1 + then (foc `delete` ws1, foc:ws2) + else if foc `elem` ws2 + then (foc:ws1, foc `delete` ws2) + else (ws1, ws2) + where foc = W.focus st + if (ws1,ws2) == (ws1',ws2') + then return Nothing + else return $ Just $ C2P f ws1' ws2' super l1 l2 prop + + +-- forwards the message to the sublayout which contains the focused window +forwardToFocused :: (LayoutClass l1 Window, LayoutClass l2 Window, LayoutClass s a) => + CombineTwoP (s a) l1 l2 Window -> SomeMessage -> X (Maybe (CombineTwoP (s a) l1 l2 Window)) +forwardToFocused (C2P f ws1 ws2 super l1 l2 prop) m = do + ml1 <- forwardIfFocused l1 ws1 m + ml2 <- forwardIfFocused l2 ws2 m + ms <- if isJust ml1 || isJust ml2 + then return Nothing + else handleMessage super m + if isJust ml1 || isJust ml2 || isJust ms + then return $ Just $ C2P f ws1 ws2 (maybe super id ms) (maybe l1 id ml1) (maybe l2 id ml2) prop + else return Nothing + +-- forwards message m to layout l if focused window is among w +forwardIfFocused :: (LayoutClass l Window) => l Window -> [Window] -> SomeMessage -> X (Maybe (l Window)) +forwardIfFocused l w m = do + mst <- gets (W.stack . W.workspace . W.current . windowset) + maybe (return Nothing) send mst where + send st = if (W.focus st) `elem` w + then handleMessage l m + else return Nothing + +-- code from CombineTwo +-- given two sets of zs and xs takes the first z from zs that also belongs to xs +-- and turns xs into a stack with z being current element. Acts as +-- StackSet.differentiate if zs and xs don't intersect +differentiate :: Eq q => [q] -> [q] -> Maybe (Stack q) +differentiate (z:zs) xs | z `elem` xs = Just $ Stack { focus=z + , up = reverse $ takeWhile (/=z) xs + , down = tail $ dropWhile (/=z) xs } + | otherwise = differentiate zs xs +differentiate [] xs = W.differentiate xs + +-- vim:ts=4:shiftwidth=4:softtabstop=4:expandtab:foldlevel=20: hunk ./xmonad-contrib.cabal 137 XMonad.Layout.Circle XMonad.Layout.Cross XMonad.Layout.Combo + XMonad.Layout.ComboP XMonad.Layout.Decoration XMonad.Layout.DecorationMadness XMonad.Layout.Dishes } Context:
[More configurability for Layout.NoBorders (typeclass method) Adam Vogt
**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@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
**20081008154245] [UpdatePointer even to empty workspaces Joachim Breitner **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 **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
**20090301051509 Ignore-this: 2af132159450d4fb72eb52024eda71b5 ] [U.EZConfig: add xK_Print <Print> to special keys wirtwolff@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 **20090309160020 Ignore-this: ebfa2eadb439763276b372107cdf8d6c ] [Prompt.Shell: escape ampersand Valery V. Vorotyntsev **20090312091314 Ignore-this: 7200b76af8109bab794157da46cb0030 Ampersand (&) is a special character and should be escaped. ] [Cleanup X.L.Mosaic, without breaking it Adam Vogt
**20090219022417 Ignore-this: d49ed55fe8dc2204256dff9252384745 ] [X.L.Mosaic: prevent users from causing non-termination with negative elements Adam Vogt **20090210022727 Ignore-this: 370a7d6249906f1743c6692758ce5aeb ] [better Layout.NoBorders.smartBorders behavior on xinerama Adam Vogt **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@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
**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 **20090308201112] [L.Cross: clarify documentation wirtwolff@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@wagner-home.com**20090221235959] [eliminate a haddock warning in BoringWindows daniel@wagner-home.com**20090221235836] [merge IndependentScreens daniel@wagner-home.com**20090221232142] [add IndependentScreens to xmonad-contrib.cabal daniel@wagner-home.com**20090221231632] [add type information for IndependentScreens daniel@wagner-home.com**20090221231525] [add some boilerplate comments at the top of IndependentScreens Brent Yorgey **20090221230850] [IndependentScreens, v0.0 daniel@wagner-home.com**20090221225229] [U.Run: remove waitForProcess to close Issue 268 wirtwolff@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 **20090221224742] [X.L.Master: turn it to a Layout modifier and update the code Ismael Carnales **20090213020453 Ignore-this: 69513ad2b60dc4aeb49d64ca30e6f9f8 ] [Use doShift in my config Spencer Janssen **20090219042040 Ignore-this: 1f103d21bbceec8d48384f975f18eaec ] [SpawnOn: use doShift. This resolves problems where SpawnOn would shift the wrong window Spencer Janssen **20090219041856 Ignore-this: 6ae639a638db8eff77203f3f2e481a4e ] [SpawnOn: delete seen pids Spencer Janssen **20090213013011 Ignore-this: 8b15a60bba1edf1bab5fb77ac54eb12f ] [X.U.Loggers: handle possible EOF (reported by dyfrgi) Roman Cheplyaka **20090216213842] [U.Scratchpad: add general spawn action to close issue 249 wirtwolff@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 **20090212234608 Ignore-this: c7de4e05803d60b10f38004dcbda4732 ] [Add Cross Layout 'Luis Cabellos '**20090209174802] [Fix an undefined in EwmhDesktops Daniel Schoepe **20090209152308 Ignore-this: f60a43d7ba90164ebcf700090dfb2480 ] [X.U.WindowProperties: docs (description and sections) Roman Cheplyaka **20090208231422] [X.U.WindowProperties: Add getProp32 and getProp32s, helpers to get properties from windows Ismael Carnales **20090205013031 Ignore-this: c5481fd5d97b15ca049e2da2605f65c1 ] [cleanup and make X.L.Mosaic behavior more intuitive wrt. areas Adam Vogt **20090208221629 Ignore-this: 3c3c6faa203cbb1c1db909e5bf018b6f ] [minor typo in XMonad/Util/EZConfig.hs Joachim Breitner **20090208192224 Ignore-this: 7ffee60858785c3e31fdd5383c9bb784 ] [Multimedia keys support for EZConfig Khudyakov Alexey **20090207173330 Ignore-this: 21183dd7c192682daa18e3768828f88d ] [+A.CycleWindows: bindings to cycle windows in new ways wirtwolff@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@gmail.com**20090206171833 Ignore-this: 4d08f5a7627020b188f59fc637b53ae8 ] [XMonad.Actions.CopyWindow runOrCopy lan3ny@gmail.com**20080602205742] [ManageHelpers: reduce duplicated code in predicates Ismael Carnales **20090204021847 Ignore-this: e28a912d4f897eba68ab3edfddf9f26b ] [Remove X.U.SpawnOnWorkspace (superseded by X.A.SpawnOn) Roman Cheplyaka **20090204103635] [X.A.SpawnOn: add docs Roman Cheplyaka **20090204102424 Add more documentation, including documentation from X.U.SpawnOnWorkspace by Daniel Schoepe. ] [Remove silliness from XMonad.Doc.Configuring Spencer Janssen **20090204055626] [Adjustments to use the new event hook feature instead of Hooks.EventHook Daniel Schoepe **20090203160046 Ignore-this: f8c239bc8e301cbd6fa509ef748af542 ] [Easier Colorizers for X.A.GridSelect quentin.moser@unifr.ch**20090128001702 Ignore-this: df3e0423824e40537ffdb4bc7363655d ] [X.A.SpawOn: fix usage doc Roman Cheplyaka **20090202102042] [Added GridVariants.SplitGrid Norbert Zeh **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
**20090130195239 Ignore-this: 642aa0bc9e68e7518acc8af30324b97a ] [XMonad.Actions.Search: fix whitespace & tabs gwern0@gmail.com**20090129025246 Ignore-this: 894e479ccc46160848c4d70c2361c929 ] [xmonad-action-search-intelligent-searchengines Michal Trybus **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@unifr.ch**20090127184145 Ignore-this: 635cbf6420722a4edef1ae9c40b36e1b ] [X.A.SinkAll: re-add accidentally deleted usage documentation Brent Yorgey **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 **20090127222355] [adds generic 'all windows on current workspace' functionality loupgaroublond@gmail.com**20081221224850] [placement patch to XMonad.Layout.LayoutHints quentin.moser@unifr.ch**20090126195950 Ignore-this: 87a5efa9c841d378a808b1a4309f18 ] [XMonad.Actions.MessageFeedback module quentin.moser@unifr.ch**20090126181059 Ignore-this: 82e58357a44f98c35ccf6ad0ef98b552 ] [submapDefault Anders Engstrom **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 **20090127185604] [Mosaic picks the middle aspect layout, unless overriden Adam Vogt **20090126032421 Ignore-this: aaa31da14720bffd478db0029563aea5 ] [Mosaic: stop preventing access to the widest layouts Adam Vogt **20090125045256 Ignore-this: c792060fe2eaf532f433cfa8eb1e8fe3 ] [X.L.Mosaic add documentation, update interface and aspect ratio behavior Adam Vogt **20090125041229 Ignore-this: e78027707fc844b3307ea87f28efed73 ] [Use currentTag, thanks asgaroth Spencer Janssen **20090125213331 Ignore-this: dd1a3d96038de6479eca3b9798d38437 ] [Support for spawning most applications on a specific workspace Daniel Schoepe **20090125191045 Ignore-this: 26076d54b131e037b42c87e4fde63200 ] [X.L.Mosaic: haddock fix Roman Cheplyaka **20090124235908] [A mosaic layout based on MosaicAlt Adam Vogt **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
**20090122002745 Ignore-this: e8cfe0f18f278c95d492628da8326fd7 ] [Create a new session for spawnPiped processes Spencer Janssen **20090122000441 Ignore-this: 37529c5fe8b4bf1b97fffb043bb3dfb0 ] [TAG 0.8.1 Spencer Janssen **20090118220647] [Use spawnOn in my config Spencer Janssen **20090117041026 Ignore-this: 3f92e4bbe4f2874b86a6c7ad66a31bbb ] [Add XMonad.Actions.SpawnOn Spencer Janssen **20090117040432 Ignore-this: 63869d1ab11f2ed5aab1690763065800 ] [Bump version to 0.8.1 Spencer Janssen **20090116223607 Ignore-this: 1c201e87080e4404f51cadc108b228a1 ] [Compile without optimizations on x86_64 and GHC 6.10 Spencer Janssen **20090108231650 Ignore-this: a803235b8022793f648e8953d9f05e0c This is a workaround for http://xmonad.org/bugs/226 ] [Update all uses of doubleFork/waitForProcess Spencer Janssen **20090116210315 Ignore-this: 4e15b7f3fd6af3b7317449608f5246b0 ] [Update to my config Spencer Janssen **20090116204553 Ignore-this: 81017fa5b99855fc8ed1fe8892929f53 ] [Adjustments to new userCode function Daniel Schoepe **20090110221310] [X.U.EZConfig: expand documentation Brent Yorgey **20090116153143] [add a bit of documentation to HintedTile Brent Yorgey **20090114065126] [ManageHelpers: add isDialog johanngiwer@web.de**20090108232505] [CenteredMaster portnov84@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@gmail.com**20090110213000 Ignore-this: 1592ba07f2ed5d2258c215c2d175190a ] [X.U.XSelection: get rid of warning about missing newline, add Haddock link Brent Yorgey
**20090102194357] [adds haddock documentation for transformPromptSelection loupgaroublond@gmail.com**20090102190954 also renames the function per mailing list recommendation ] [adds a weird function to XSelection loupgaroublond@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@c-otto.de**20090102091019] [fix-fromJust-errors rupa@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
**20081218001601] [X.L.Monitor: changes in message passing Roman Cheplyaka **20081226220851 - transform mbName (Maybe String) to name (String) - slghtly change semantics of messages, document it ] [X.L.Monitor: change interface Roman Cheplyaka **20081226213118 - remove add*Monitor - add manageMonitor, monitor template ] [X.U.WindowProperties: propertyToQuery+docs Roman Cheplyaka **20081225080702] [X.L.Monitor: docs Roman Cheplyaka **20081225073904] [hlintify XUtils, XSelection, Search, WindowGo gwern0@gmail.com**20081220153302 Ignore-this: 7e877484e3cd8954b74232ea83180fa9 ] [fix focus issue for XMonad.Actions.Warp.banishScreen Norbert Zeh **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
**20081212192621 This works on top of warpToScreen and, thus, suffers from the same issue: focus change. ] [fixed documentation for banish Norbert Zeh
**20081212191819 banish actually warps to the specified corner of the current window, not the screen. ] [addition of combined TallGrid layout Norbert Zeh
**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
**20081213073054] [XMonad.Actions.WindowGo: fix a floating-related focus bug gwern0@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@gmail.com**20081119213122 Ignore-this: 95ac7dbe9c8fe3618135966f251f4fc6 ] [Prompt.hs: increase font size to 12 from niggardly 10 gwern0@gmail.com**20081119212523 Ignore-this: 74a6e1ac5e1774da4ffc7c6667c034c ] [Prompt.hs: replace magic numbers with understandable names gwern0@gmail.com**20081119212502 Ignore-this: 8401c0213be9a32c925e1bd0ba5e01f1 ] [X.L.Monitor: recommend doHideIgnore (docs) Roman Cheplyaka **20081215190710] [X.L.Monitor: docs Roman Cheplyaka **20081215184423] [X.L.Monitor: export Monitor datatype Roman Cheplyaka **20081215184318] [X.H.ManageHelpers: add doHideIgnore Roman Cheplyaka **20081215182758] [Add KDE 4 config, thanks to Shirakawasuna on IRC Spencer Janssen **20081211071141 Ignore-this: 51698961ab5b6e569c294d174f2804a9 ] [I use the deleteConsecutive history filter Spencer Janssen **20081025070438] [Remove XMonad.Config.PlainConfig, it has been turned into the separate xmonad-light project. Braden Shepherdson **20081203161534] [XMonad.Prompt: swap up and down per bug #243 gwern0@gmail.com**20081203013323 Ignore-this: 8ab0481a0da7a983f501ac2fec4a68e8 ] [Fix boolean operator precedence in GridSelect keybindings Aleksandar Dimitrov **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@gmail.com**20081122084725] [Export setOpacity from FadeInactive. Document how to make monitor transparent (X.L.Monitor) Roman Cheplyaka **20081117153027] [Monitor: use broadcastMessage instead of sendMessage; this solves several issues Roman Cheplyaka **20081117133957] [FadeInactive: fade all inactive windows (including focused windows on visible screens) Roman Cheplyaka **20081117130115] [Monitor: documented one more issue Roman Cheplyaka **20081117113807] [Monitor: improved the docs Roman Cheplyaka **20081117073709] [added XMonad.Layout.Monitor Roman Cheplyaka **20081115104735] [WindowProperties: added allWithProperty Roman Cheplyaka **20081115104525] [ManageHelpers: added doSideFloat (generalization of doCenterFloat) Roman Cheplyaka **20081114113015] [GridSelect: Export default_colorizer Dominik Bruhn **20081112140005] [Simplify code for restriction-calculation and remove compiletime warnings Dominik Bruhn **20081112134630] [Simplify handle/eventLoop, introduce findInWindowMap, partial updates for key movements (less flickering) Clemens Fruhwirth **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
**20081111063348] [GridSelect: fix infiniteness problem with diamondRestrict Roman Cheplyaka **20081111055350] [GridSelect: remove tabs Roman Cheplyaka **20081111053647] [Exported shrinkWhile from Decoration to use in GridSelect Roman Cheplyaka **20081110191534] [GridSelect: added link to a screenshot Roman Cheplyaka **20081110190617] [GridSelect: various improvements Roman Cheplyaka **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 **20081107115114] [documentation: XMonad.Util.Search.hs, add EZConfig keybindings example sean.escriva@gmail.com**20081106171707] [typo Don Stewart **20081104043044 Ignore-this: bdac0ff3316c821bce321b51c62f6e89 ] [place an upper bound on the version of base we support Don Stewart **20081104035857 Ignore-this: 29139cc4f0ecb299b56ae99f7d20b854 ] [explicit import list for things in the process library Don Stewart **20081104035319 Ignore-this: 91b7f96421828788760e8bcff7dec317 ] [Work around ghc 6.10 bug #2738 Don Stewart **20081104034819 Ignore-this: c75da9693fa642025eac0d074869423d ] [windowPromptBringCopy deadguysfrom@gmail.com**20081023173019] [generic menu and window bringer Travis B. Hartwell **20081027005523] [Search.hs: +hackage search, courtesy of byorgey gwern0@gmail.com**20081031214937 Ignore-this: 24db0ceed49f8bd37ce98ccf8f8ca2ab ] [Prompt.hs rename deleteConsecutiveDuplicates gwern0@gmail.com**20081008205131 That name is really unwieldy and long. ] [Prompt.hs: have historyCompletion filter dupes gwern0@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@gmail.com**20081008204649] [Prompt.hs: mv uniqSort to next to its confreres, and mention the trade-off gwern0@gmail.com**20081008192645] [Do not consider XMONAD_TIMER unknown Joachim Breitner **20081008195643] [Kill window without focusing it first Joachim Breitner **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@wagner-home.com**20081015153911] [Actions.Search: add a few search engines intrigeri@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
**20081006211027 (Just to reduce code duplication) ] [Add straightforward HiddenWS to WSType Joachim Breitner **20081006210548 With NonEmptyWS and HiddenNonEmptyWS present, HiddenWS is obviously missing. ] [Merge emptyLayoutMod into redoLayout Joachim Breitner **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 **20081005184426 Fixes: http://code.google.com/p/xmonad/issues/detail?id=223 ] [Paste.hs: improve haddocks gwern0@gmail.com**20080927150158] [Paste.hs: fix haddock gwern0@gmail.com**20080927145238] [minor explanatory comment daniel@wagner-home.com**20081003015919] [XMonad.Layout.HintedGrid: add GridRatio (--no-test because of haddock breakage) Lukas Mai **20080930141715] [XMonad.Util.Font: UTF8 -> USE_UTF8 Lukas Mai **20080930140056] [Paste.hs: implement noModMask suggestion gwern0@gmail.com**20080926232056] [fix a divide by zero error in Grid daniel@wagner-home.com**20080926204148] [-DUTF8 flag with -DUSE_UTF8 gwern0@gmail.com**20080921154014] [XSelection.hs: use CPP to compile against utf8-string gwern0@gmail.com**20080920151615] [add XMonad.Config.Azerty Devin Mullins **20080924044946] [flip GridRatio to match convention (x/y) Devin Mullins **20080922033354] [let Grid have a configurable aspect ratio goal daniel@wagner-home.com**20080922010950] [Paste.hs: +warning about ASCII limitations gwern0@gmail.com**20080921155038] [Paste.hs: shorten comment lines to under 80 columns per sjanssen gwern0@gmail.com**20080921154950] [Forgot to enable historyFilter :( Spencer Janssen **20080921094254] [Prompt: add configurable history filters Spencer Janssen **20080921093453] [Update my config to use 'statusBar' Spencer Janssen **20080921063513] [Rename pasteKey functions to sendKey Spencer Janssen **20080921062016] [DynamicLog: doc fixes Spencer Janssen **20080921061314] [Move XMonad.Util.XPaste to XMonad.Util.Paste Spencer Janssen **20080921060947] [Depend on X11 >= 1.4.3 Spencer Janssen **20080921055456] [statusBar now supplies the action to toggle struts Spencer Janssen **20080918013858] [cleanup - use currentTag Devin Mullins **20080921011159] [XPaste.hs: improve author info gwern0@gmail.com**20080920152342] [+XMonad.Util.XPaste: a module for pasting strings to windows gwern0@gmail.com**20080920152106] [UrgencyHook bug fix: cleanupUrgents should clean up reminders, too Devin Mullins **20080920062117] [Sketch of XMonad.Config.Monad Spencer Janssen **20080917081838] [raiseMaster seanmce33@gmail.com**20080912184830] [Add missing space between dzen command and flags Daniel Neri **20080915131009] [Big DynamicLog refactor. Added statusBar, improved compositionality for dzen and xmobar Spencer Janssen **20080913205931 Compatibility notes: - dzen type change - xmobar type change - dynamicLogDzen removed - dynamicLogXmobar removed ] [Take maintainership of XMonad.Prompt Spencer Janssen **20080911230442] [Overhaul Prompt to use a zipper for history navigation. Fixes issue #216 Spencer Janssen **20080911225940] [Use the new completion on tab setting Spencer Janssen **20080911085940] [Only start to show the completion window with more than one match Joachim Breitner **20080908110129] [XPrompt: Add showCompletionOnTab option Joachim Breitner **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 **20080714153601] [XMonad.Actions.Plane: removed unneeded hiding Marco Túlio Gontijo e Silva **20080714152631] [Improvements in documentation Marco Túlio Gontijo e Silva **20080709002425] [Fix haddock typos in XMonad.Config.{Desktop,Gnome,Kde} Spencer Janssen **20080911040808] [add clearUrgents for your keys Devin Mullins **20080909055425] [add reminder functionality to UrgencyHook Devin Mullins **20080824200548 I'm considering rewriting remindWhen and suppressWhen as UrgencyHookModifiers, so to speak. Bleh. ] [TAG 0.8 Spencer Janssen **20080905195420] Patch bundle hash: 6cc7e2d3a60c9056bf94d40cde550b03f735d292
_______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad
participants (2)
-
Don Stewart
-
konstantin.sobolev@gmail.com