Sat Sep 20 11:16:15 EDT 2008 gwern0@gmail.com * XSelection.hs: use CPP to compile against utf8-string -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 New patches: [XSelection.hs: use CPP to compile against utf8-string gwern0@gmail.com**20080920151615] { hunk ./XMonad/Util/XSelection.hs 1 +{-# LANGUAGE CPP #-} {- | Module : XMonad.Util.XSelection Copyright : (C) 2007 Andrea Rossato, Matthew Sackman hunk ./XMonad/Util/XSelection.hs 28 import Control.Concurrent (forkIO) import Control.Exception as E (catch) import Control.Monad(Monad (return, (>>)), Functor(..), liftM, join) - -import Data.Bits (shiftL, (.&.), (.|.)) - -import Data.Char (chr, ord) +import Data.Char (ord) import Data.Maybe (fromMaybe) hunk ./XMonad/Util/XSelection.hs 30 - -import Data.Word (Word8) import XMonad import XMonad.Util.Run (safeSpawn, unsafeSpawn) hunk ./XMonad/Util/XSelection.hs 33 +#ifdef UTF8 +import Codec.Binary.UTF8.String (decode) +#else +import Data.Bits (shiftL, (.&.), (.|.)) +import Data.Char (chr) +import Data.Word (Word8) +{- | Decode a UTF8 string packed into a list of Word8 values, directly to + String; does not deal with CChar, hence you will want the counter-intuitive @map fromIntegral@ + UTF-8 decoding for internal use in getSelection. + + This code is copied from Eric Mertens's "utf-string" library + (as of version 0.1),\which is BSD-3 licensed like this module. + It'd be better to just @import Codec.Binary.UTF8.String (decode)@, but then users of this would need to install it; XMonad has enough + dependencies already. -} +decode :: [Word8] -> String +decode [] = "" +decode (c:cs) + | c < 0x80 = chr (fromEnum c) : decode cs + | c < 0xc0 = replacement_character : decode cs + | c < 0xe0 = multi_byte 1 0x1f 0x80 + | c < 0xf0 = multi_byte 2 0xf 0x800 + | c < 0xf8 = multi_byte 3 0x7 0x10000 + | c < 0xfc = multi_byte 4 0x3 0x200000 + | c < 0xfe = multi_byte 5 0x1 0x4000000 + | otherwise = replacement_character : decode cs + where + + replacement_character :: Char + replacement_character = '\xfffd' + + multi_byte :: Int -> Word8 -> Int -> [Char] + multi_byte i mask overlong = aux i cs (fromEnum (c .&. mask)) + where + aux 0 rs acc + | overlong <= acc && acc <= 0x10ffff && + (acc < 0xd800 || 0xdfff < acc) && + (acc < 0xfffe || 0xffff < acc) = chr acc : decode rs + | otherwise = replacement_character : decode rs + aux n (r:rs) acc + | r .&. 0xc0 == 0x80 = aux (n-1) rs + $ shiftL acc 6 .|. fromEnum (r .&. 0x3f) + aux _ rs _ = replacement_character : decode rs +#endif + {- $usage Add @import XMonad.Util.XSelection@ to the top of Config.hs Then make use of getSelection or promptSelection as needed; if hunk ./XMonad/Util/XSelection.hs 175 promptSelection = unsafePromptSelection safePromptSelection app = join $ io $ liftM (safeSpawn app) (getSelection) unsafePromptSelection app = join $ io $ liftM unsafeSpawn $ fmap (\x -> app ++ " " ++ x) getSelection - - - -{- | Decode a UTF8 string packed into a list of Word8 values, directly to - - String; does not deal with CChar, hence you will want the counter-intuitive @map fromIntegral@ - - UTF-8 decoding for internal use in getSelection. - - - - This code is copied from Eric Mertens's "utf-string" library - - (as of version 0.1),\which is BSD-3 licensed like this module. - - It'd be better to just @import Codec.Binary.UTF8.String (decode)@, but then users of this would need to install it; XMonad has enough - - dependencies already. -} - -decode :: [Word8] -> String - -decode [ ] = "" - -decode (c:cs) - - | c < 0x80 = chr (fromEnum c) : decode cs - - | c < 0xc0 = replacement_character : decode cs - - | c < 0xe0 = multi_byte 1 0x1f 0x80 - - | c < 0xf0 = multi_byte 2 0xf 0x800 - - | c < 0xf8 = multi_byte 3 0x7 0x10000 - - | c < 0xfc = multi_byte 4 0x3 0x200000 - - | c < 0xfe = multi_byte 5 0x1 0x4000000 - - | otherwise = replacement_character : decode cs - - where - - - - replacement_character :: Char - - replacement_character = '\xfffd' - - - - multi_byte :: Int -> Word8 -> Int -> [Char] - - multi_byte i mask overlong = aux i cs (fromEnum (c .&. mask)) - - where - - aux 0 rs acc - - | overlong <= acc && acc <= 0x10ffff && - - (acc < 0xd800 || 0xdfff < acc) && - - (acc < 0xfffe || 0xffff < acc) = chr acc : decode rs - - | otherwise = replacement_character : decode rs - - aux n (r:rs) acc - - | r .&. 0xc0 == 0x80 = aux (n-1) rs - - $ shiftL acc 6 .|. fromEnum (r .&. 0x3f) - - aux _ rs _ = replacement_character : decode rs } Context: [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] [Bump version to 0.8 Spencer Janssen **20080905194415] [Take maintainership of X.L.WindowNavigation Devin Mullins **20080902070247 Since I've been working on a rewrite, it seems only fair that I be forced to better understand the existing code / issues. ] [Only move pointers over managed windows Joachim Breitner **20080610195916] [change withUrgencyHookC api Devin Mullins **20080821052046 Now it takes an UrgencyConfig record type. ] [Take maintainership of NoBorders Spencer Janssen **20080829201325] [remove myself as maintainer from modules I don't maintain or use. David Roundy **20080828151830] [Fix window region checking in UpdatePointer robreim@bobturf.org**20080511094056] [Accept a range of xmonad versions Spencer Janssen **20080820214056] [StackTile_fix acura@allyourbase.se**20080820061918] [X.H.UrgencyHook: haddock fixes Devin Mullins **20080816195220] [Improve documentation for XMonad.Hooks.EwmhDesktops Spencer Janssen **20080813191857] [simplify WindowBringer code, and change greedyView to focusWindow Devin Mullins **20080811033137] [Updates to my config Spencer Janssen **20080812050124] [Added XMonad.Hooks.DynamicHooks Braden Shepherdson **20080724222054 Allows runtime creation and modification of ManageHooks. Also allows one-shot ManageHooks that are removed after the fire. Note that if several transient hooks fire at once, only the most recently defined is executed, and all are removed. ] [Grid/HintedGrid: prefer wider windows Lukas Mai **20080717205138] [XMonad.Hooks.UrgencyHook: +FocusHook gwern0@gmail.com**20080716224745 This is a hook for simply traveling to whatever window has just set an urgent flag, instead of doing something more involved like printing to a status bar and letting the user do something manually. ] [I prefer the spencerjanssen@gmail.com address Spencer Janssen **20080714204005] [callUrgencyHook after adjustUrgents Devin Mullins **20080714043020 So folks can readUrgents inside their urgencyHook, should they so desire. ] [XMonad/Doc/Developing.hs: update haddock ln, cpedit gwern0@gmail.com**20080708205058] [XMonad/Doc.hs: why link to a specific version instead of the latest? gwern0@gmail.com**20080708202236] [XMonad.Actions.Plane.Linear leoserra@minaslivre.org**20080706175303] [XMonad.Actions.Plane: Improvements in code quality Marco Túlio Gontijo e Silva **20080706172829] [XMonad.Actions.Plane: Treat error in read Marco Túlio Gontijo e Silva **20080710135342] [XMonad.Actions.Plane: GConf support Marco Túlio Gontijo e Silva **20080709001900 Thanks to Johan Dahlin. ] [X.A.WindowNavigation: comments Devin Mullins **20080710041028] [add autoComplete option to XMonad.Prompt Devin Mullins **20080704073415 Maybe this will get Gwern one step closer to a complete Ratpoison binding. ] [XMonad.Actions.Plane: Copyright update Marco Túlio Gontijo e Silva **20080709001548] [XMonad.Actions.Plane: removed missing haddock chunck Marco Túlio Gontijo e Silva **20080709010530] [Added function to filter out scratchpad workspace for use with ewmhLogHookCustom. Braden Shepherdson **20080706161027] [Added ewmhLogHookCustom, which allows arbitrary transformation of the workspace list. Braden Shepherdson **20080706160847] [adding thesaurus.reference.com and Google Labs Code Search searches brian@lorf.org**20080701090142] [fillout banish example in Warp.hs gwern0@gmail.com**20080629202047 We also include a nice little type to avoid specifying 0 0 stuff. ] [fix Actions.Wap doc gwern0@gmail.com**20080629115504 warp 1 1 has a comment claiming that this moves the cursor to the lower *left*, but if you look at the warpToWindow haddock, it says that 1 1 is actually lower *right* - as indeed it proved to do. This was annoying as it led me astray for a minute or so. ] [allow function keys up to F24 brian@lorf.org**20080626040516] [Now using -name instead of -title as the term app argument, and correspondingly resource for the ManageHook. Braden Shepherdson **20080608180748] [Actions/Search.hs: export SearchEngine constructor Brent Yorgey **20080620212016] [Export PerWorkspace to allow type signatures Malebria **20080620015046] [XMonad.Util.EZConfig: add keypad bindings Lukas Mai **20080615143702] [XMonad.Util.EZConfig: minor cleanups Lukas Mai **20080528165450] [make default highlighting a bit dimmer for neighbors in WindowNavigation. David Roundy **20080610174200] [keep drag panes on the bottom of the window stack. David Roundy **20080610174044] [add support to Magnifier for vertical zooming. David Roundy **20080610173747] [XMonad.Hooks.EwmhDesktops export EwmHDesktopsHook Malebria **20080610130614 Any function that a user may write in his configuration file that is related to ewmhDesktopsLayout cannot have it's type signature if this type is not exported. ] [XMonad.Config.Desktop type problem (monomorphism?) Malebria **20080610182856 With main = xmonad defaultConfig {layoutHook = desktopLayoutModifiers Full} I got a type error, that's not present with the patch. ] [Make prompt keybindings work when numLock or capsLock are active Justin Bogner **20080608172057] [Replaced old "spawn on mod+s" semantics with "spawn/summon or banish on mod+s". Braden Shepherdson **20080608045457 Originally the key binding just spawned a new floating terminal on every keypress. Now it spawns if it doesn't exist, summons from another workspace if it does but isn't visible, or banishes it to a dynamically created workspace if it is on the current workspace. ] [Exporting addHiddenWorkspace, it's needed by the new Scratchpad Braden Shepherdson **20080608045318] [Added scratchpadSpawnActionTerminal to specify the terminal program directly as a String. Braden Shepherdson **20080608032619] [Removed odd scratchpadSpawnDefault, improved documentation. Braden Shepherdson **20080608032439] [Actions.Search.hs: switch inappropriate use of getShellCompl for a historyCompletion gwern0@gmail.com**20080607071331 It's inappropriate because if I am searching Wikipedia, say, why on earth do I want completion of files and executables on my PC? A previous search query is much more likely to be what I want. ] [Prompt.hs: +a historyCompletion function for use in XPrompts gwern0@gmail.com**20080607071225] [Add C-w to XMonad.Prompt Trevor Elliott **20080605220656 * Bind C-w to kill the previous word ] [Add missing xfce module to .cabal Don Stewart **20080602174219] [Use lines instead of columns in configuration (similar to GNOME and KDE) Malebria **20080526225337] [Bug correction when areasColumn > 1 Malebria **20080526223220] [more documentation for WindowNavigation and UrgencyHook Devin Mullins **20080525050231] [X.A.WindowNavigation: add logHook for better state tracking Devin Mullins **20080525032325] [doco tweaks Devin Mullins **20080524211849] [made fadeInactiveLogHook take an argument amount to fade Justin Bogner **20080523213937] [add FadeInactive to fade out inactive windows using xcompmgr Justin Bogner **20080523205838] [add close window functionality to EwmhDesktops Justin Bogner **20080523185908] [Add XMonad.Actions.Plane Malebria **20080523004357] [Default Xfce config, this time with me holding the copyright, maintainership, etc. Ivan.Miljenovic@gmail.com**20080522105316] [StackTile: minor documentation fix Joachim Fasting **20080521182637 That '[]' in the example seems incorrect ] [StackTile acura@allyourbase.se**20080520195559 A simple patch to get a dishes like stacking, but with the ability to resize master pane. ] [revamp Search.hs to export a replacement for simpleEngine gwern0@gmail.com**20080519190912 It's called searchEngine now, and is a wrapper around the SearchEngine type. Different type as well ] [sp ShowWName.hs gwern0@gmail.com**20080519190520] [remove ScratchWorkspace. David Roundy **20080516185729 It's ugly code, and I'd be surprised if anyone actually uses it. I see no reason to continue to maintain it. ] [Fixed location of xmonad.conf Roman Cheplyaka **20080518204602] [add site name in search prompt dialog zhen.sydow@gmail.com**20080518101357] [add youtube to search engines zhen.sydow@gmail.com**20080513212508] [SwapWorkspaces: swapTo Next|Prev Devin Mullins **20080518024121] [UrgencyHook: removeVisiblesFromUrgents -> cleanupUrgents Devin Mullins **20080515164436 Now only removes windows based on SuppressWhen setting. ] [Added XMonad.Config.PlainConfig: proof-of-concept GHC-less plain text configuration file parser Braden Shepherdson **20080517222916 An example of the config file format can be found in the Haddock. Notably missing features are docks and more layouts than just the standard three. ] [XMonad.Hooks.SetWMName: Update documentation to reflect the addition of startupHook. lithis **20080516221011] [I no longer use ScratchWorkspace. David Roundy **20080516185715] [fix bug in smartBorders when combined with decorated windows. David Roundy **20080516184855] [decent documentation for UrgencyHook Devin Mullins **20080515082222 Blame it on lack of sleep. Or perhaps the causation is the reverse. ] [X.A.WindowNavigation: currentPosition and setPosition share the same `inside` logic, now Devin Mullins **20080515062211 Aside from documentation, this is pretty much usable, now. ] [X.A.WindowNavigation: have currentPosition handle axes independently Devin Mullins **20080515053330 This improves some subtle interactions between mod-j/k and mod-w/a/s/d, though that might not become very apparent until I fix setPosition. ] [fix compile warnings in BoringWindows Devin Mullins **20080515051728] [add BoringWindows module to make certain windows skipped when rotating focus. David Roundy **20080514162846] [UrgencyHook: some documentation (more is needed) Devin Mullins **20080514080104] [UrgencyHook: got rid of the need for instances to know about suppressWhen Devin Mullins **20080514072217 This changes the API a little bit, but that's what you get for using a day-old feature from darcs. ] [move AppLauncher from Actions module to Prompt module zhen.sydow@gmail.com**20080513201252] [X.A.WindowNavigation: comment cleanup Devin Mullins **20080513091313] [windowRect now compensates for border width Devin Mullins **20080513090151 Odd that I have to do (Rectangle x y (w + 2 * bw) (h + 2 * bw)) -- you'd think the window would be centered within the bordered area. ] [X.A.WindowNavigation: update TODO Devin Mullins **20080513044229] [X.A.WindowNavigation: minor cleanup Devin Mullins **20080512170410] [X.A.WindowNavigation: simplify inr somewhat Devin Mullins **20080512090647] [X.A.WindowNavigation: clarity Devin Mullins **20080512085338] [X.A.WindowNavigation: ugh, typo Devin Mullins **20080512082228] [X.A.WindowNavigation: implement swap, extract withTargetWindow commonality Devin Mullins **20080512064715 Why doesn't mapWindows exist already? ] [add more flexible withWindowNavigationKeys Devin Mullins **20080512050637 Names aren't permanent yet, so don't cry if they change. ] [X.A.WindowNavigation: TODO Devin Mullins **20080511222116] [X.A.WindowNavigation: add withWindowNavigation, for easy setup Devin Mullins **20080511220458 This should be more flexible than it is -- I've got an idea, but am interested to hear others. ] [X.A.WindowNavigation: fix currentPosition Devin Mullins **20080511212128 Now properly deals with an unitialized state (e.g. from a restart) or an inconsistent state (e.g. from using mod-j/k). Deserves cleanup. ] [X.A.WindowNavigation: add TODOs Devin Mullins **20080511211326] [X.A.WindowNavigation state is now workspace-specific Devin Mullins **20080511071656 racking up some code debt, here... ] [X.A.WindowNavigation: minor doco changes Devin Mullins **20080506074235] [add draft XMonad.Actions.WindowNavigation Devin Mullins **20080504050022 This is an experiment with replacing the WindowNavigation LayoutModifier with one that simply adds keybindings and stores state in an IORef. Credit to droundy for the original code -- hopefully I'm not butchering it. The end intent is to add Xinerama support, but it'll be a little while before I get there. ] [new contrib module to launch apps with command line parameters zhen.sydow@gmail.com**20080513134754] [pull suppressWhen logic into main WithUrgencyHook handler Devin Mullins **20080513075247 In order for this to work, I added a new UrgencyHook method to communicate the SuppressWhen value. I'm not sure if this is actually better than just providing a convenience function, but it's an easy switch. ] [add suppressWhen option to dzenUrgencyHook Devin Mullins **20080513054615] [WindowNavigation: extract navigable function Devin Mullins **20080422045248] [UrgencyHook: doc typo Devin Mullins **20080512052137] [UrgencyHook: extract whenNotVisible Devin Mullins **20080512041852] [SpawnUrgencyHook, FWIW Devin Mullins **20080512040449] [make UrgencyHook an EventHook Devin Mullins **20080512024822 This gets rid of the stupid bug that led to a need for the clearBit hack, and allowed me to simplify the types (since EventHooks aren't required to parameterize on the window type). Config files need not change, unless they declare instances of UrgencyHook, in which case, they should remove "Window" as is seen in this patch. ] ['xmobar' function added to DynamicLog for running xmobar with some defaults Ivan N. Veselov **20080508194918] [HintedTile: Fix mistake in documentation. lithis **20080508003552] [Use gnome-session-save for the mod-shift-q binding Spencer Janssen **20080507082205] [Use the named constant 'none' rather than 0 Spencer Janssen **20080507081854] [HintedTile: Improve documentation. lithis **20080508000245] [Whitespace only Spencer Janssen **20080507031306] [Add a binding for Gnome's "Run Application" dialog Spencer Janssen **20080507031127] [Add some keybindings to the Kde config Spencer Janssen **20080507022658] [Indentation Spencer Janssen **20080507022553] [Add ToggleStruts to the desktop config Spencer Janssen **20080507022516] [Refactor my config Spencer Janssen **20080507021504] [Add XMonad.Config.Kde Spencer Janssen **20080507020833] [Don't move the pointer if the user is moving the mouse Klaus Weidner **20080417022234 This patch depends on the following xmonad core patch: Remember if focus changes were caused by mouse actions or by key commands If the user was moving the mouse, it's not appropriate to move the pointer around in resonse to focus changes. Do that only in response to keyboard commands. ] [Missing pragmas Don Stewart **20080506053402] [Add full documentation Don Stewart **20080505210546] [minor cleanup on getName Devin Mullins **20080504054923] [bug doco for UrgencyHook Devin Mullins **20080426203638] [NamedWindows: when converting the text property, handle the empty list. Spencer Janssen **20080502104249 This fixes a "Prelude.head" exception observed with windows that have no title. Reproduce by placing several windows in the tabbed layout, then starting 'xterm -name ""'. Thanks to Andrea for pointing out the issue. ] [Fix issue #179 by handling events correctly Andrea Rossato **20080501062357] [My monitor is larger now :) Spencer Janssen **20080430083026] [manageHooks for my config Spencer Janssen **20080430082536] [Remove redundant type signature Spencer Janssen **20080430082447] [Add XMonad.Config.Desktop and XMonad.Config.Gnome Spencer Janssen **20080430082253] [Alphabetize exposed-modules Spencer Janssen **20080430035453] [new contrib layout: XMonad.Layout.SimplestFloat - A floating layout like SimpleFloat, but without decoration joamaki@gmail.com**20080424220957] [stricitfy some gap fields Don Stewart **20080427191247] [XMonad.Hooks.ManageHelpers: quick&dirty support for _NET_WM_STATE_FULLSCREEN Lukas Mai **20080426132745] [XMonad.Hooks.Script: haddock fixes Lukas Mai **20080426132629] [Error fix for Tabbed when tabbar always shown Ivan.Miljenovic@gmail.com**20080424063135] [remove my config file -- the wiki is where its at. Don Stewart **20080419195650] [tweaks to docs for SimpleDecoration Don Stewart **20080418215155] [Allow tabbar to always be shown. Ivan.Miljenovic@gmail.com**20080415043728 Patch take 4, hopefully the final version. Includes droundy's suggestions. ] [polish Don Stewart **20080418033133] [Script-based hooks Trevor Elliott **20080416213024] [Don't strictify the Display component, this triggers a bug in GHC 6.6 Spencer Janssen **20080416185733] [Fix to IM modifier. Roman Cheplyaka **20080414232437 Avoid differentiating integrated stack by using StackSet.filter. ] [IM layout converted to LayoutModifier, which can be applied to any layout Ivan N. Veselov **20080413205824] [stictify some fields Don Stewart **20080413070117] [strictify some fields Don Stewart **20080413065958] [Fix window order in EWMH Joachim Breitner **20080411134411 For pagers to draw the stacking order correctly, the focused window has to be the last in the list. Thus put an appropriate implementation of allWindows into the Module. This does not work perfectly with floating windows. ] [remove myself as maintainer of CopyWindow. David Roundy **20080409144333 I'm not sure who's maintaining this, but it's not me. ] [XMonad.Util.WindowProperties: add WM_WINDOW_ROLE as Role Roman Cheplyaka **20080409174935] [Generalize copyWindow, minor style change Spencer Janssen **20080408210050] [XMonad.Actions.CopyWindow: added copyToAll and killAllOtherCopies functions Ivan N. Veselov **20080408195111] [XMonad.Actions.UpdatePointer: doc fix Lukas Mai **20080407152741] [XMonad.Util.Font: minor reformatting Lukas Mai **20080406020935] [DynamicLog: resolve merge conflict Lukas Mai **20080406020527] [Encode the entire DynamicLog output, instead of just window title. lithis **20080329031537] [DynamicLog: add support for UTF-8 locales when compiled with XFT or UFT-8 support Andrea Rossato **20080313102643] [XMonad.Util.Font: don't call setlocale; core does it for us Lukas Mai **20080406013123] [XMonad.Util.NamedWindows: fix imports Lukas Mai **20080326172745] [Changed getName to use locale-aware functions Mats Jansborg **20070819132104 Rewrote getName using getTextProperty and wcTextPropertyToTextList. ] [Added next-window versions of the raise* functions. Ian Zerny **20080405182900] [XMonad.Layout.Master: initial import Lukas Mai **20080404220734] [update contrib for applySizeHints changes Lukas Mai **20080404220558] [XMonad.Hooks.ManageDocks: haddock fix Lukas Mai **20080404220532] [MultiToggle/Instances: ghc 6.6 can't parse LANGUAGE pragma Brent Yorgey **20080404200157] [Document _NET_ACTIVE_WINDOW behaviour more exactly Joachim Breitner **20080404072944] [_NET_ACTIVE_WINDOW moves windows if necessary Joachim Breitner *-20080402143811 This makes EWMH behave a bit more like metacity: If _NET_ACTIVE_WINDOW is received and the window is not on the current worspace, it is brought here (instead of the workspace switched to the other one). So for example, if you click on the pidgin icon in the panel and the buddy list is already open some where it is moved here. ] [onstart=lower, solves floating dzen issue Don Stewart **20080403203425] [some bang patterns Don Stewart **20080403172246] [have 'dzen' use autoStruts to detect the gaps Don Stewart **20080403003130] [Actions/Search.hs: add dictionary.com search Brent Yorgey **20080402150521] [_NET_ACTIVE_WINDOW moves windows if necessary Joachim Breitner **20080402143811 This makes EWMH behave a bit more like metacity: If _NET_ACTIVE_WINDOW is received and the window is not on the current worspace, it is brought here (instead of the workspace switched to the other one). So for example, if you click on the pidgin icon in the panel and the buddy list is already open some where it is moved here. ] [HintedGrid: guesstimate window flexibility and layout rigid windows first Lukas Mai **20080402042846] [HintedGrid: try both bottom-up/top-down window placement to minimize unused space Lukas Mai **20080402012538] [Grid/HintedGrid: use an ncolumns formula inspired by dwm's "optimal" mode Lukas Mai **20080402012126] [XMonad.Layout.Gaps: new contrib module for manual gap support, in the few cases where ManageDocks is not appropriate (dock apps that don't set STRUTS properly, adjusting for a display that is cut off on one edge, etc.) Brent Yorgey **20080402003742] [improve WindowGo.hs Haddock formatting gwern0@gmail.com**20080401023130] [forgot a haddock for getEditor in Shell.hs gwern0@gmail.com**20080401022012] [WindowGo.hs: +raiseBrowser, raiseEditor gwern0@gmail.com**20080401021740 Specialize runOrRaise in the same way as with Actions.Search, for one's browser and one's editors. ] [RunOrRaise.hs: FF 3 doesn't use the "Firefox-bin" classname gwern0@gmail.com**20080401015049] [Search.hs: remove an argument from selectSearch and promptSearch gwern0@gmail.com**20080401013947 The new getBrowser function allows us to mv the old selectSearch and promptSearch aside as too-general functions, and replace them with new versions, which employ getBrowser to supply one more argument. This allows us to replace the tedious 'selectSearch google "firefox"; selectSearch yahoo "firefox"...' with shorter 'selectSearch google' and so on. One less argument. Also, update the docs. ] [Shell.hs: +getBrowser, getEditor, helper function gwern0@gmail.com**20080401013447 The helper function asks the shell for the value of a variable, else returns the second argument. getBrowser and getEditor obviously specialize it for two particular possibly queries ] [XMonad.Layout.HintedGrid: initial import Lukas Mai **20080401231722] [Documentation improvement. Roman Cheplyaka **20080401134305] [Remove broken link to screenshot. Roman Cheplyaka **20080331210854] [MultiToggle: add new XMonad.Layout.MultiToggle.Instances module for common instances of Transformer, update MultiToggle docs accordingly Brent Yorgey **20080331201739] [XMonad.Actions.CycleRecentWS: initial import Michal Janeczek **20080331111906] [XMonad.Hooks.ManageDocks: export checkDoc Lukas Mai **20080331012911] [XMonad.Layout.Grid: fix indentation Lukas Mai **20080330004859] [move Direction type from WindowNavigation to ManageDocks (ManageDocks will move into the core, taking Direction with it) Brent Yorgey **20080331010127] [ManageDocks: clean up + add more documentation Brent Yorgey **20080331002929] [Util.Run, Hooks.DynamicLog: re-export hPutStrLn and hPutStr from Util.Run for convenience, and update DynamicLog documentation to show proper imports Brent Yorgey **20080328205446] [ManageDocks: add avoidStrutsOn, for covering some docks and not others by default. Brent Yorgey **20080327203940] [ManageDocks: add ability to toggle individual gaps independently Brent Yorgey **20080327111722] [PerWorkspace: add modWorkspace(s) combinators, for selectively applying layout modifiers to certain workspaces but not others Brent Yorgey **20080326214351] [Haddock fix Roman Cheplyaka **20080330134435] [Remove stale status gaps code Spencer Janssen **20080329230737] [TAG 0.7 Spencer Janssen **20080329202416] Patch bundle hash: 9ffed59f11ff2a9258f683b9affcdc8ebde8cd44 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEAREKAAYFAkjVFuEACgkQvpDo5Pfl1oKMRgCeKigKrav/FcMBDbNopcBfIT67 40oAmwcxey736puXjw02hGwwHJxO8fWh =W4Iv -----END PGP SIGNATURE-----