summaryrefslogtreecommitdiffstats
path: root/XMonad.hs
AgeCommit message (Collapse)Author
2007-08-16Comment onlySpencer Janssen
darcs-hash:20070815224031-a5988-f5f33b60465a7b34383705b26123f1444a9f0b6a
2007-08-07move event loop out of mouseDrag.David Roundy
darcs-hash:20070807201616-72aca-80f5d15118592f79aca8a2e928c4ad4f29fdf8b1
2007-06-29Move screen details into StackSetSpencer Janssen
darcs-hash:20070629213917-a5988-3ad31d8f028efcec41c9c4805c01c2d42c0009b2
2007-06-23support self-modifying layouts.David Roundy
darcs-hash:20070623201447-72aca-7bfeb7e7ec36b37420a4c670dc23156c52d7e22d
2007-06-21minor tweaks, ideas from joachim.fasting@Don Stewart
darcs-hash:20070621033613-9c5c1-51e25d524c5a54aafbab14f55b3b155c558195d2
2007-06-20Update Layout documentationSpencer Janssen
darcs-hash:20070620150858-a5988-761f067579d6df331fd868db2bc010590a0a7939
2007-06-19make Layouts able to layout whatever they like.David Roundy
darcs-hash:20070619150816-72aca-a651e758e93e300c3e526985b328f0b1d7def60c
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-13haddick fine tuningAndrea Rossato
darcs-hash:20070613185902-32816-b7cd7a5c14e111abfe52918612bd6a9ee6a0c90b
2007-06-13IndentationSpencer Janssen
darcs-hash:20070613043018-a5988-fac19281fc680eb1dd346d42b7d03f6c7928c18c
2007-06-12add catchX to catch exceptions.David Roundy
darcs-hash:20070612154253-72aca-b2c7e24b5e70a09feaebccd443aebbe37b568efa
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-11API CHANGE: Give doLayout a Stack rather than a flattened listSpencer Janssen
darcs-hash:20070611182629-a5988-384e2f82340497c833a68d909ea485017803fe9b
2007-06-11Use catchIO in 'restart'Spencer Janssen
darcs-hash:20070611161152-a5988-1311671abda1c7edfa223255dff0128860b30d38
2007-06-11Rename safeIO to catchIOSpencer Janssen
darcs-hash:20070611160608-a5988-a042d190c15b993b15da274db915ca73d9c8e089
2007-06-11add safeIO which catches and logs exceptions.David Roundy
darcs-hash:20070611153650-72aca-c802f2ac167c0e9232d17a2897163aca5a5479f0
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-10polish serialisation code (-7 lines)Don Stewart
darcs-hash:20070610045551-9c5c1-a1604a4e90d160728b3c5cd12acb3b4febc3625a
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-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-04whitespaceDon Stewart
darcs-hash:20070604015532-9c5c1-1fda0e7e7cf686dc71785d3877a51d23f42b5919
2007-06-04-WallDon Stewart
darcs-hash:20070604014630-9c5c1-4cd761ffdf2caab60d490fdc1fe189577a59272b
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-01Rename withWorkspace to withWindowSet.glasser
darcs-hash:20070601001325-64353-3ea08019b13ac470d7d2c60cbdea61de7d580c8c
2007-05-30Minor style change.Spencer Janssen
darcs-hash:20070530181006-a5988-96541d0d2832c8f248e47957e8398a01d57545f9
2007-05-30log errors on executeFile in restartnickburlett
I found it difficult to track down a problem in the restart code where xmonad was silently not restarting. This will log the error to stderr, which should show up in .xsession-errors darcs-hash:20070530171024-01341-e8d0657705a1236dec13d1a6932d0c45b6523322
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-27dead codeDon Stewart
darcs-hash:20070527072652-9c5c1-be19c516b63614dcf81ce37f8c564184c67ea9f6
2007-05-22restart: don't preserve old argsSpencer Janssen
darcs-hash:20070522060357-a5988-037eb7484106de44a541f21c41d15c2050e94760
2007-05-22Generalize withDisplay's typeSpencer Janssen
darcs-hash:20070522043758-a5988-7738168ac829a9b2cf79e6866072cccde379a977
2007-05-22List --resume args firstSpencer Janssen
darcs-hash:20070521232427-a5988-f7c747a1bfcc2a6ad38d5c47c3ecf195d1e4a6b5
2007-05-21Experimental support for a beefier restart.Spencer Janssen
darcs-hash:20070521194653-a5988-b6725cc0d73fc6b726dc41284eef9303a7e59a1e
2007-05-21Catch the exception rather than explicitly checking the PATHSpencer Janssen
darcs-hash:20070521191900-a5988-ef2361014d1d8c27cd8c73d290cdeff13ee38df6
2007-05-21Put restart in the X monadSpencer Janssen
darcs-hash:20070521190749-a5988-1c95a0491806b06a32e7fe8bd6bcac31ebc7ad6b
2007-05-21Show instances for WorkspaceId and ScreenIdSpencer Janssen
darcs-hash:20070521190704-a5988-24dfb3b96a551ee2a27c9dd09461ddd260db8e64
2007-05-21Use Position for dimensionsSpencer Janssen
darcs-hash:20070521162809-a5988-fbabe930a50582fb828cd3683167e158bec904ad
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-12put doLayout in the X monad.David Roundy
darcs-hash:20070512215301-72aca-59213ac37c38e57d6ffed1d518afd4729f1744c9
2007-05-14setsid() before exec. Intended to fix issue #7Spencer Janssen
darcs-hash:20070514044547-a5988-0e3c07a629fd1a28e11ee9ae1395086a5477dae2
2007-05-04since we just ignore type errors, no need to derive ShowDon Stewart
darcs-hash:20070504094143-9c5c1-44d5edcd4b261a2d93b054f48e7818b0c9e58db2
2007-05-04Constrain layout messages to be members of a Message classDon Stewart
Using Typeables as the only constraint on layout messages is a bit scary, as a user can send arbitrary values to layoutMsg, whether they make sense or not: there's basically no type feedback on the values you supply to layoutMsg. Folloing Simon Marlow's dynamically extensible exceptions paper, we use an existential type, and a Message type class, to constrain valid arguments to layoutMsg to be valid members of Message. That is, a user writes some data type for messages their layout algorithm accepts: data MyLayoutEvent = Zoom | Explode | Flaming3DGlassEffect deriving (Typeable) and they then add this to the set of valid message types: instance Message MyLayoutEvent Done. We also reimplement the dynamic type check while we're here, to just directly use 'cast', rather than expose a raw fromDynamic/toDyn. With this, I'm much happier about out dynamically extensible layout event subsystem. darcs-hash:20070504081649-9c5c1-954b406e8c21c2ca4428960e4fc1f9ffb17fb296
2007-05-04Handle empty layout listsSpencer Janssen
darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436