New patches: [add an hook for propertyNotify events Andrea Rossato **20070726142630 propertyNotify events will cause XMonad to called a serverHook to be configure in Config.hs ... this is just a joke, Spencer, I'm not going to ask you to apply thi patch! ] { hunk ./Config.hs 102 +serverHook :: X () +serverHook = return () + hunk ./Main.hs 74 - selectInput dpy rootw $ substructureRedirectMask .|. substructureNotifyMask + selectInput dpy rootw $ substructureRedirectMask .|. substructureNotifyMask .|. propertyChangeMask hunk ./Main.hs 237 +handle e@(AnyEvent {ev_window = w, ev_event_type = t}) + | t == propertyNotify = do + isr <- isRoot w + if isr then serverHook else broadcastMessage e + } Context: [shift: use guards instead of if Spencer Janssen **20070724152340] [Remove unnecessary Integral constraints Spencer Janssen **20070724152257] [make delete work when window is in multiple workspaces. David Roundy **20070724142045] [Remove redundant 'n >= 0' check from shift. (from David Roundy's 'simplify shift, removing unneeded check.' patch) Spencer Janssen **20070724145927] [Cleanup of shift code Michael G. Sloan **20070722205337] [use $HOME in examples Don Stewart **20070719063348] [Tweak dmenu binding Peter De Wachter **20070717190722 Add an "eval", so quotes and environment variables get evaluated according to sh rules. ] [restore focus to currently focused window after "float" (closes #32) Jason Creighton **20070710042631] [Operations.screenWorkspace: return Nothing when the screen does not exist Spencer Janssen **20070707223842] [Operations.rescreen: screen indexes start at zero Spencer Janssen **20070707223334] [Note and workaround bugs in Operations.float Spencer Janssen **20070705195213] [refresh after starting Spencer Janssen **20070630050346] [UPGRADE X11-Extras! Manage iconified windows Spencer Janssen **20070630021026] [Move screen details into StackSet Spencer Janssen **20070629213917] [Change a window's workspace when dragging across screens (closes #30) Jason Creighton **20070628025023] [support self-modifying layouts. David Roundy **20070623201447] [comment for (dubious?) integrate' Don Stewart **20070626052431] [broadcast unidentified events. David Roundy **20070623214125 This change is independent of the doLayout change I just sent in, but fixes the problem that change introduces in Decoration, by ensuring that all Layouts get redraw events. I think this is the correct behavior. ] [add 2 properties to state where focus goes on delete of focused window Don Stewart **20070626040907] [fix empty case in 'filter', and note differences in semantics wrt. focus to 'delete' Don Stewart **20070626035741] [clean up 'StackSet.filter' for style Don Stewart **20070626033202] [minor tweaks, ideas from joachim.fasting@ Don Stewart **20070621033613] [only perform mouse events on managed windows. closes #28 Don Stewart **20070621011700] [Update Layout documentation Spencer Janssen **20070620150858] [-Wall police Spencer Janssen **20070620150823] [Stack windows in the order they are returned by doLayout Spencer Janssen **20070620150419] [remove out of date `(Included with GHC)' text in README Don Stewart **20070620060430] [make Layouts able to layout whatever they like. David Roundy **20070619150816] [float fixed size windows Peter De Wachter **20070618214657] [Remove all references to 'exec' Spencer Janssen **20070618201532] [-Wall police, and turn on -fno-warn-orphans Don Stewart **20070617052322] [make workspace tag not need to be a Num. David Roundy **20070614140709 This change also removes the barely used 'size' field, and replaces it with a tagMember predicate. The idea is to move towards the ability to make the workspace tag be a String, which by default might be "1".."9", but could also be customized to be something meaningful to the user. ] [Fix float stacking Spencer Janssen **20070614213412] [Remove 'temporary work around' in 'windows' Spencer Janssen **20070614211450] [move initColor to Operations and only store the Pixel value of colors Jason Creighton **20070613234501 Moving initColor to Operations allows it to be used by extensions. The Pixel component of the color is the only thing we need, so it's simpler just to deal with that. ] [haddock tuning for StackSet.hs Andrea Rossato **20070614064511 with this patch the documentation of StackSet.hs will have a nice TOC ] [haddick fine tuning Andrea Rossato **20070613185902] [Indentation Spencer Janssen **20070613043018] [prevent keyboard focus from getting lost in some cases Jason Creighton **20070613025350] [resolve conflict in Operations. David Roundy **20070612170625] [add catchX to catch exceptions. David Roundy **20070612154253] [make focus, up and down complete functions. David Roundy **20070612150555 This is a rerun of my change to make (Stack a) never be empty. Gives us more type-safety. ] [add differentiate function to StackSet to go [a] -> Stack a. David Roundy **20070612132853] [Make 'view' a total function Spencer Janssen **20070612143248] [fmt Don Stewart **20070612134938] [-Wall police Stefan O'Rear **20070612060546] [Use a more descriptive name for the layout reversal message Stefan O'Rear **20070612055859] [Use broadcastMessage in windows and switchLayout, should improve Xinerama for tabbed and make xmonad robust in the presence of state-altering unlayout hooks Stefan O'Rear **20070612055510] [Add a broadcastMessage function, which sends to all visible workspaces without refreshing. (+6 loc) Stefan O'Rear **20070612055339] [TODO for scan Spencer Janssen **20070611214217] [Set withdrawn state after calling windows Spencer Janssen **20070611213327] [Remove obsolete 'layout' function Spencer Janssen **20070611203622] [-Wall police Spencer Janssen **20070611202007] [Comment only Spencer Janssen **20070611195827] [Hide windows that are not supposed to be visible Spencer Janssen **20070611191809] [-Wall police Spencer Janssen **20070611185708] [API CHANGE: Give doLayout a Stack rather than a flattened list Spencer Janssen **20070611182629] [-Wall police Spencer Janssen **20070611180123] [Add StackSet.filter Spencer Janssen **20070611165154] [Use catchIO in 'restart' Spencer Janssen **20070611161152] [Rename safeIO to catchIO Spencer Janssen **20070611160608] [add safeIO which catches and logs exceptions. David Roundy **20070611153650] [Ensure windows get at least 1 pixel for width/height Spencer Janssen **20070611061930] [Restrict the master/slave ratio to [0, 1] Spencer Janssen **20070611053230] [comment only Jason Creighton **20070611020249] [a few modifications to event-sending to make Tabbed layout work. David Roundy **20070610153836] [send message when "windows" is called. David Roundy **20070610013531] [implement Spencer's decoration suggestion. David Roundy **20070610012237] [haddock compatibility Andrea Rossato **20070610123746] [Move state logging into Config.hs, via logHook :: X () Don Stewart **20070610061932] [polish serialisation code (-7 lines) Don Stewart **20070610045551] [cut incorrect comment. David Roundy **20070609173447] [doLayout cleanup and commented exception-handling. David Roundy **20070609145036] [Give refresh sole responsibility for establishing window properties (-3 loc) Stefan O'Rear *-20070609185835] [Give refresh sole responsibility for establishing window properties (-3 loc) Stefan O'Rear **20070609185835] [HEADS UP: (logging format change). use a custom pretty printer, for an easier format to parse, than 'show' produces Don Stewart **20070609131716] [Add notes on using X11-extras from darcs Don Stewart **20070609025045] [Fix unmap handling Spencer Janssen **20070606214006 According to the ICCCM, clients should send a synthetic unmap event when they initiate an unmap. The old code waited for these synthetic unmaps to unmanage windows. However, certain 'obsolete' clients do not send synthetic unmaps (notably xpdf's find dialog). These windows entered a zombified state: xmonad does not manage them, yet they are still mapped and raised on screen. The new algorithm (derived from wmii): - track windows that are mapped on screen - track the number of expected unmap events for each window, increment every time 'hide' is called on a window that is not mapped. - decrement the expected unmap counter on each unmap event - treat an unmap event as genuine (ie. unmap the window) when: - the event is synthetic (per ICCCM) - OR there are no expected unmap events for this window ] [dead import Don Stewart **20070606025226] [move extraModifiers/cleanMask to Operations.hs Jason Creighton **20070606005056 so XMonadContrib can use them ] [temporary workaround for delete/focus issue in fullscreen mode Don Stewart **20070606024938] [whitespace Don Stewart **20070606024857] [simplify code Don Stewart **20070606004603] [mention why StackSet needs -fglasgow-exts (for deriving Typeable) Don Stewart **20070605092659] [comments only Don Stewart **20070605091803] [clean size hint code Don Stewart **20070605091354] [Enable logging of state changes to stdout Don Stewart **20070605083735] [remove accidental logging of events Don Stewart **20070605081452] [Fix lost eventNotifyMask bug Don Stewart **20070605043040 When resuming, we were (implicitly) relying on 'scan' to find all windows, and reset their event masks and WM_STATE. When we moved to Iconfified hidden workspaces, 'scan' would only find and reset states on the current workspace. The result being that hidden workspace windows no longer received enterNotify events. Fix this by traversing the StackSet serialised during a restart, setting the intial X states for each window, whether visible or hidden. ] [whitespace only Don Stewart **20070605000723] [Comment only Spencer Janssen **20070604211956] [Wibble. Spencer Janssen **20070604211816] [-Wall police Spencer Janssen **20070604211531] [apply size hints to floating windows Peter De Wachter **20070604192943] [size hints infrastructure Peter De Wachter **20070604192753] [Delete stale comment Spencer Janssen **20070604204617] [Comment only Spencer Janssen **20070604203659] [Use 'windows' in 'focus' Spencer Janssen **20070604201639] [realign guard l.mai@web.de**20070604182045] [swapUp/Down are also mirrored Spencer Janssen **20070604183535] [Remove redundant cases in swapUp/Down Spencer Janssen **20070604183344] [focusUp/Down are the same, in reversed order Spencer Janssen **20070604183143] [Simplify focusUp/Down Spencer Janssen **20070604182228] [Integral implies Eq Spencer Janssen **20070604180745] [Comment typo. Spencer Janssen **20070604180554] [Dump state at launch (commented for now) Spencer Janssen **20070604162450] [Small clean up Spencer Janssen **20070604064418] [Merge windows and refresh Spencer Janssen **20070604063657] [Use the new integrate function Spencer Janssen **20070604062653] [Add integrate Spencer Janssen **20070604062501] [Delete stale comments Spencer Janssen **20070604061719] [Remove inaccurate warnings about 'hide' Spencer Janssen **20070604060611] [base >= 2.0 means we can use forM_ Spencer Janssen **20070604050914] [Remove no-longer-needed 'dimensions' state (-5 loc) Stefan O'Rear **20070604044715] [Set WM_STATE, iconify invisible windows (+9 loc) Stefan O'Rear **20070604042343 Note that this breaks compatibility with certain programs described as "obsolete" in the ICCCM (1994). See the command above the UnmapEvent handler for details. ] [clean up Main.hs slightly Don Stewart **20070604035637] [whitespace Don Stewart **20070604015532] [-Wall Don Stewart **20070604014630] [do not cache atom values within Xmonad, instead let Xlib worry about caching (a documented feature) Stefan O'Rear **20070604013938] [Honor configure requests from unmanaged windows Spencer Janssen **20070603234730] [-Wall police Spencer Janssen **20070603212055] [Correctly handle resize requests (-12 +22) Stefan O'Rear **20070603203153 Xmonad now implements resize requests in a consistent manner. * If the window is FLOATING, we implement the program's request, and correctly update the StackSet; so it will keep the new size. This should work correctly even for non-current windows. * Otherwise, we ignore the request. As per ICCCM, we send a fake ConfigureNotify containing the new (unchanged) geometry. This is perfectly ICCCM compliant, and if it breaks your client, it's your own fault. This patch requires setConfigureEvent, which is added to X11-extras by a patch approximately contemporaneous with this one. ] [comments only Don Stewart **20070603071556] [Polish core layout code. Lifts limitation on nmaster > 1. it may be 0 now Don Stewart **20070603064306] [heads up: polish config.hs. moves tiling-local values into lexical scope. removes `wide' as an explicit mode (it's `mirror tall') Don Stewart **20070603054740] [set build-depends base>=2.0 so people can't miss the missing Read instance issue Don Stewart **20070603032319] [Fix out-of-date comment in Config.hs. Chris Mears **20070602114312] [only grab button{1,2,3} for click-to-focus (scrollwheel shouldn't focus) Jason Creighton **20070602052605] [make mouse bindings configurable Jason Creighton **20070602040647] [commented out implementation state logging. if someone has a client, we can enable this Don Stewart **20070601085626] [ignore numlock/capslock on mouse bindings Jason Creighton **20070601015137] [now we handle transients properly, and restack windows, refresh from focus is ok Don Stewart **20070601022329] [Rename withWorkspace to withWindowSet. glasser@mit.edu**20070601001325] [Revert accidental change to border color Spencer Janssen **20070531145509] [comments on why fullscreen tiling doesn't work with `implicit' floating Don Stewart **20070531090537] [clean up mouse code a bit Don Stewart **20070531085308] [first shot at a floating layer Jason Creighton **20070531044733 This is a first attempting at a floating layer: mod-button1: move window mod-button2: swapMaster mod-button3: resize window mod-t: make floating window tiled again Moving or resizing a window automatically makes it floating. Known issues: Hard to manage stacking order. You can promote a window to move it to the top, (which you can do with mod-button2) but it should be easier than that. Moving a window by dragging it to a different Xinerama screen does not move it to that workspace. Code is ugly. ] [remove LOC cap (but still print count after tests) Jason Creighton **20070531043417] [TAG 0.2 Spencer Janssen **20070531010004] Patch bundle hash: 7d143e125bacde3831c9df70fe968bc3f6d24ac2