summaryrefslogtreecommitdiffstats
path: root/Main.hs
AgeCommit message (Collapse)Author
2007-08-07move event loop out of mouseDrag.David Roundy
darcs-hash:20070807201616-72aca-80f5d15118592f79aca8a2e928c4ad4f29fdf8b1
2007-07-05Note and workaround bugs in Operations.floatSpencer Janssen
darcs-hash:20070705195213-a5988-2dd794ce7f294a43fd21d88ec7974679de60afb7
2007-06-30refresh after startingSpencer Janssen
darcs-hash:20070630050346-a5988-c77b422116ddc308d1b7b7c252c819c5db36cb96
2007-06-30UPGRADE X11-Extras! Manage iconified windowsSpencer Janssen
darcs-hash:20070630021026-a5988-808741074e4132930b6036826d758b362c498dfc
2007-06-29Move screen details into StackSetSpencer Janssen
darcs-hash:20070629213917-a5988-3ad31d8f028efcec41c9c4805c01c2d42c0009b2
2007-06-23broadcast unidentified events.David Roundy
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. darcs-hash:20070623214125-72aca-deae94c4f656e2396a1e569b0ad956d625ed05f5
2007-06-14make workspace tag not need to be a Num.David Roundy
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. darcs-hash:20070614140709-72aca-dbc1ce07bf964e4cff69deef95b453a0051ef782
2007-06-14move initColor to Operations and only store the Pixel value of colorsJason Creighton
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. darcs-hash:20070613234501-b9aa7-5b39416db9f9d5ac42692262c233179baeb2540f
2007-06-12make focus, up and down complete functions.David Roundy
This is a rerun of my change to make (Stack a) never be empty. Gives us more type-safety. darcs-hash:20070612150555-72aca-5f6e43aa33979c71679a73b44d93f9e2b8f9d2a8
2007-06-11TODO for scanSpencer Janssen
darcs-hash:20070611214217-a5988-ac16c4939111434a06ed5b080a82abd1d6e86c28
2007-06-11comment onlyJason Creighton
darcs-hash:20070611020249-b9aa7-d00e960a3f26a54acdc7a869ad88ee9d437a470b
2007-06-10a few modifications to event-sending to make Tabbed layout work.David Roundy
darcs-hash:20070610153836-72aca-75025ca798e1b8c2c5d9f95257aef2bca0803749
2007-06-10implement Spencer's decoration suggestion.David Roundy
darcs-hash:20070610012237-72aca-4c5873773e58103f57f7a0b232da58c269248fa7
2007-06-10haddock compatibilityAndrea Rossato
darcs-hash:20070610123746-32816-e5a1b61d81fa52f608d7936f900431bd6620c3c7
2007-06-10Move state logging into Config.hs, via logHook :: X ()Don Stewart
darcs-hash:20070610061932-9c5c1-9a08992ef555f086007474e64d5ae9d835e9677e
2007-06-09UNDO: Give refresh sole responsibility for establishing window properties ↵Stefan O'Rear
(-3 loc) darcs-hash:20070609185835-e3110-1eaa534465f66313044477acd9cae1bbbcf61950
2007-06-09Give refresh sole responsibility for establishing window properties (-3 loc)Stefan O'Rear
darcs-hash:20070609185835-e3110-4561eca8bf83e9d05d90cdd75bc1ddce5855087f
2007-06-09HEADS UP: (logging format change). use a custom pretty printer, for an ↵Don Stewart
easier format to parse, than 'show' produces darcs-hash:20070609131716-9c5c1-ac6b3d7e8193b16ca9ae65f32d5373090107eca1
2007-06-06Fix unmap handlingSpencer Janssen
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 darcs-hash:20070606214006-a5988-7c2eced85319ff506a9b7c9dc86d5946ca0da8e5
2007-06-06move extraModifiers/cleanMask to Operations.hsJason Creighton
so XMonadContrib can use them darcs-hash:20070606005056-b9aa7-96a3bb09f8e6dabd707eed7b5f19d733e5e1778e
2007-06-06whitespaceDon Stewart
darcs-hash:20070606024857-9c5c1-0928bbc41b568e787e705e85ada9000547f2c790
2007-06-05Enable logging of state changes to stdoutDon Stewart
darcs-hash:20070605083735-9c5c1-1ab5acbd611914caa7b5cdf1f2df338c0ee616f8
2007-06-05remove accidental logging of eventsDon Stewart
darcs-hash:20070605081452-9c5c1-a384f89e9ed89678c96aee108a1b1e85cbff9d06
2007-06-05Fix lost eventNotifyMask bugDon Stewart
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. darcs-hash:20070605043040-9c5c1-642f02a61a3e1d4679fde9c38eeb10aec53ea455
2007-06-04Comment onlySpencer Janssen
darcs-hash:20070604203659-a5988-30920debba664beddd1581efffbdc33143d5ce15
2007-06-04Dump state at launch (commented for now)Spencer Janssen
darcs-hash:20070604162450-a5988-e2d405b329d5f0dd0b33321f577dd63d3119b6d0
2007-06-04base >= 2.0 means we can use forM_Spencer Janssen
darcs-hash:20070604050914-a5988-600a4ba6f2f294b0ce56b16e8887d493789f29c7
2007-06-04Remove no-longer-needed 'dimensions' state (-5 loc)Stefan O'Rear
darcs-hash:20070604044715-e3110-7bd7ba2b78f80046e2148fb37aa0f5fe3eca08c6
2007-06-04Set WM_STATE, iconify invisible windows (+9 loc)Stefan O'Rear
Note that this breaks compatibility with certain programs described as "obsolete" in the ICCCM (1994). See the command above the UnmapEvent handler for details. darcs-hash:20070604042343-e3110-4766eafca2875091189159f6a1df29eac3c21387
2007-06-04clean up Main.hs slightlyDon Stewart
darcs-hash:20070604035637-9c5c1-a5be67b987c402fe384f7a3c5c3443aabdf62885
2007-06-04do not cache atom values within Xmonad, instead let Xlib worry about caching ↵Stefan O'Rear
(a documented feature) darcs-hash:20070604013938-e3110-8dc84f03278c55076a5cf83013974689c4861ffc
2007-06-04Honor configure requests from unmanaged windowsSpencer Janssen
darcs-hash:20070603234730-a5988-d156b988188c622428ef60456c7e48bd739e5f64
2007-06-03-Wall policeSpencer Janssen
darcs-hash:20070603212055-a5988-154f62e30303e2ab406201d08318d070a914baa3
2007-06-03Correctly handle resize requests (-12 +22)Stefan O'Rear
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. darcs-hash:20070603203153-e3110-48f345cd3686f06fbe8ba30a6d851e7c8f44fe98
2007-06-02make mouse bindings configurableJason Creighton
darcs-hash:20070602040647-b9aa7-d7bad13c4919882368872a88f04a678308162be6
2007-06-01ignore numlock/capslock on mouse bindingsJason Creighton
darcs-hash:20070601015137-b9aa7-51c6b9ec428c2d16d65b196384fa2ce953dda245
2007-05-31clean up mouse code a bitDon Stewart
darcs-hash:20070531085308-9c5c1-73ed940708aa9a369b0345c0d2b2a4708a231e67
2007-05-31first shot at a floating layerJason Creighton
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. darcs-hash:20070531044733-b9aa7-c96d5263e1d3447e91f436920f4d047050ce55d9
2007-05-28be sure to reset the gap list on rescreenDon Stewart
darcs-hash:20070528031835-9c5c1-34c9fc2931a6daa8fc3e63385782f43b097e293f
2007-05-28support per-screen gap settings. you can have different gaps on individual ↵Don Stewart
screens now darcs-hash:20070528031501-9c5c1-beaadbacb5efc1ce5998aba41fbb3b2c68cdf0d1
2007-05-28Use (Int,Int,Int,Int) for arbitrary gaps on any side of the screenDon Stewart
darcs-hash:20070528025135-9c5c1-3c0f63ac557da57cd268cd0129b9ce90692631e4
2007-05-27mod-b, toggle on or off the status bar gapDon Stewart
darcs-hash:20070527125928-9c5c1-a16246810db9d4abfe81d0d5814721b64f59a14c
2007-05-27clean Main.hs slightlyDon Stewart
darcs-hash:20070527072106-9c5c1-48830bdd83fd4823fdabce0961dafb3bea416bf6
2007-05-22refactor using whenXDon Stewart
darcs-hash:20070522043116-9c5c1-034fa6854b4ad99316fcc0f85904bec62ef1549b
2007-05-22Add preliminary randr supportSpencer Janssen
darcs-hash:20070522040228-a5988-1ae9fc6bd773b32bc4a4c43aeab556857929fef4
2007-05-21Experimental support for a beefier restart.Spencer Janssen
darcs-hash:20070521194653-a5988-b6725cc0d73fc6b726dc41284eef9303a7e59a1e
2007-05-21Make screen info dynamic: first step to supporting randrSpencer Janssen
darcs-hash:20070521152759-a5988-736e7caea5252a77bb01d7631cce0db4287ff6f2
2007-05-21s/workspace/windowset/Jason Creighton
darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb
2007-05-20HEADS UP: Rewrite StackSet as a ZipperDon Stewart
In order to give a better account of how focus and master interact, and how each operation affects focus, we reimplement the StackSet type as a two level nested 'Zipper'. To quote Oleg: A Zipper is essentially an `updateable' and yet pure functional cursor into a data structure. Zipper is also a delimited continuation reified as a data structure. That is, we use the Zipper as a cursor which encodes the window which is in focus. Thus our data structure tracks focus correctly by construction! We then get simple, obvious semantics for e.g. insert, in terms of how it affects focus/master. Our transient-messes-with-focus bug evaporates. 'swap' becomes trivial. By moving focus directly into the stackset, we can toss some QC properties about focus handling: it is simply impossible now for focus to go wrong. As a benefit, we get a dozen new QC properties for free, governing how master and focus operate. The encoding of focus in the data type also simplifies the focus handling in Operations: several operations affecting focus are now simply wrappers over StackSet. For the full story, please read the StackSet module, and the QC properties. Finally, we save ~40 lines with the simplified logic in Operations.hs For more info, see the blog post on the implementation, http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/17#xmonad_part1b_zipper darcs-hash:20070520070053-9c5c1-241f7ee7793f5db2b9e33d375965cdc21b26cbd7
2007-05-04Handle empty layout listsSpencer Janssen
darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436