aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad.hs (unfollow)
Commit message (Collapse)AuthorFilesLines
2007-08-07move event loop out of mouseDrag.David Roundy1-1/+2
darcs-hash:20070807201616-72aca-80f5d15118592f79aca8a2e928c4ad4f29fdf8b1.gz
2007-06-29Move screen details into StackSetSpencer Janssen1-4/+8
darcs-hash:20070629213917-a5988-3ad31d8f028efcec41c9c4805c01c2d42c0009b2.gz
2007-06-23support self-modifying layouts.David Roundy1-3/+3
darcs-hash:20070623201447-72aca-7bfeb7e7ec36b37420a4c670dc23156c52d7e22d.gz
2007-06-21minor tweaks, ideas from joachim.fasting@Don Stewart1-1/+1
darcs-hash:20070621033613-9c5c1-51e25d524c5a54aafbab14f55b3b155c558195d2.gz
2007-06-20Update Layout documentationSpencer Janssen1-2/+9
darcs-hash:20070620150858-a5988-761f067579d6df331fd868db2bc010590a0a7939.gz
2007-06-19make Layouts able to layout whatever they like.David Roundy1-4/+4
darcs-hash:20070619150816-72aca-a651e758e93e300c3e526985b328f0b1d7def60c.gz
2007-06-14move initColor to Operations and only store the Pixel value of colorsJason Creighton1-2/+2
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.gz
2007-06-13haddick fine tuningAndrea Rossato1-10/+10
darcs-hash:20070613185902-32816-b7cd7a5c14e111abfe52918612bd6a9ee6a0c90b.gz
2007-06-13IndentationSpencer Janssen1-7/+7
darcs-hash:20070613043018-a5988-fac19281fc680eb1dd346d42b7d03f6c7928c18c.gz
2007-06-12add catchX to catch exceptions.David Roundy1-1/+12
darcs-hash:20070612154253-72aca-b2c7e24b5e70a09feaebccd443aebbe37b568efa.gz
2007-06-12make focus, up and down complete functions.David Roundy1-1/+4
This is a rerun of my change to make (Stack a) never be empty. Gives us more type-safety. darcs-hash:20070612150555-72aca-5f6e43aa33979c71679a73b44d93f9e2b8f9d2a8.gz
2007-06-11API CHANGE: Give doLayout a Stack rather than a flattened listSpencer Janssen1-1/+1
darcs-hash:20070611182629-a5988-384e2f82340497c833a68d909ea485017803fe9b.gz
2007-06-11Use catchIO in 'restart'Spencer Janssen1-2/+1
darcs-hash:20070611161152-a5988-1311671abda1c7edfa223255dff0128860b30d38.gz
2007-06-11Rename safeIO to catchIOSpencer Janssen1-3/+5
darcs-hash:20070611160608-a5988-a042d190c15b993b15da274db915ca73d9c8e089.gz
2007-06-11add safeIO which catches and logs exceptions.David Roundy1-1/+4
darcs-hash:20070611153650-72aca-c802f2ac167c0e9232d17a2897163aca5a5479f0.gz
2007-06-10implement Spencer's decoration suggestion.David Roundy1-1/+1
darcs-hash:20070610012237-72aca-4c5873773e58103f57f7a0b232da58c269248fa7.gz
2007-06-10haddock compatibilityAndrea Rossato1-2/+1
darcs-hash:20070610123746-32816-e5a1b61d81fa52f608d7936f900431bd6620c3c7.gz
2007-06-10Move state logging into Config.hs, via logHook :: X ()Don Stewart1-49/+3
darcs-hash:20070610061932-9c5c1-9a08992ef555f086007474e64d5ae9d835e9677e.gz
2007-06-10polish serialisation code (-7 lines)Don Stewart1-30/+36
darcs-hash:20070610045551-9c5c1-a1604a4e90d160728b3c5cd12acb3b4febc3625a.gz
2007-06-09HEADS UP: (logging format change). use a custom pretty printer, for an ↵Don Stewart1-2/+42
easier format to parse, than 'show' produces darcs-hash:20070609131716-9c5c1-ac6b3d7e8193b16ca9ae65f32d5373090107eca1.gz
2007-06-06Fix unmap handlingSpencer Janssen1-5/+7
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.gz
2007-06-04Remove no-longer-needed 'dimensions' state (-5 loc)Stefan O'Rear1-1/+0
darcs-hash:20070604044715-e3110-7bd7ba2b78f80046e2148fb37aa0f5fe3eca08c6.gz
2007-06-04Set WM_STATE, iconify invisible windows (+9 loc)Stefan O'Rear1-2/+4
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.gz
2007-06-04whitespaceDon Stewart1-3/+3
darcs-hash:20070604015532-9c5c1-1fda0e7e7cf686dc71785d3877a51d23f42b5919.gz
2007-06-04-WallDon Stewart1-1/+0
darcs-hash:20070604014630-9c5c1-4cd761ffdf2caab60d490fdc1fe189577a59272b.gz
2007-06-04do not cache atom values within Xmonad, instead let Xlib worry about caching ↵Stefan O'Rear1-3/+11
(a documented feature) darcs-hash:20070604013938-e3110-8dc84f03278c55076a5cf83013974689c4861ffc.gz
2007-06-01Rename withWorkspace to withWindowSet.glasser1-4/+4
darcs-hash:20070601001325-64353-3ea08019b13ac470d7d2c60cbdea61de7d580c8c.gz
2007-05-30Minor style change.Spencer Janssen1-1/+1
darcs-hash:20070530181006-a5988-96541d0d2832c8f248e47957e8398a01d57545f9.gz
2007-05-30log errors on executeFile in restartnickburlett1-1/+1
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.gz
2007-05-28support per-screen gap settings. you can have different gaps on individual ↵Don Stewart1-1/+1
screens now darcs-hash:20070528031501-9c5c1-beaadbacb5efc1ce5998aba41fbb3b2c68cdf0d1.gz
2007-05-28Use (Int,Int,Int,Int) for arbitrary gaps on any side of the screenDon Stewart1-14/+11
darcs-hash:20070528025135-9c5c1-3c0f63ac557da57cd268cd0129b9ce90692631e4.gz
2007-05-27mod-b, toggle on or off the status bar gapDon Stewart1-0/+1
darcs-hash:20070527125928-9c5c1-a16246810db9d4abfe81d0d5814721b64f59a14c.gz
2007-05-27dead codeDon Stewart1-1/+0
darcs-hash:20070527072652-9c5c1-be19c516b63614dcf81ce37f8c564184c67ea9f6.gz
2007-05-22restart: don't preserve old argsSpencer Janssen1-4/+3
darcs-hash:20070522060357-a5988-037eb7484106de44a541f21c41d15c2050e94760.gz
2007-05-22Generalize withDisplay's typeSpencer Janssen1-1/+1
darcs-hash:20070522043758-a5988-7738168ac829a9b2cf79e6866072cccde379a977.gz
2007-05-22List --resume args firstSpencer Janssen1-1/+1
darcs-hash:20070521232427-a5988-f7c747a1bfcc2a6ad38d5c47c3ecf195d1e4a6b5.gz
2007-05-21Experimental support for a beefier restart.Spencer Janssen1-7/+15
darcs-hash:20070521194653-a5988-b6725cc0d73fc6b726dc41284eef9303a7e59a1e.gz
2007-05-21Catch the exception rather than explicitly checking the PATHSpencer Janssen1-6/+2
darcs-hash:20070521191900-a5988-ef2361014d1d8c27cd8c73d290cdeff13ee38df6.gz
2007-05-21Put restart in the X monadSpencer Janssen1-2/+2
darcs-hash:20070521190749-a5988-1c95a0491806b06a32e7fe8bd6bcac31ebc7ad6b.gz
2007-05-21Show instances for WorkspaceId and ScreenIdSpencer Janssen1-2/+2
darcs-hash:20070521190704-a5988-24dfb3b96a551ee2a27c9dd09461ddd260db8e64.gz
2007-05-21Use Position for dimensionsSpencer Janssen1-4/+4
darcs-hash:20070521162809-a5988-fbabe930a50582fb828cd3683167e158bec904ad.gz
2007-05-21Make screen info dynamic: first step to supporting randrSpencer Janssen1-3/+3
darcs-hash:20070521152759-a5988-736e7caea5252a77bb01d7631cce0db4287ff6f2.gz
2007-05-21s/workspace/windowset/Jason Creighton1-2/+2
darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb.gz
2007-05-20HEADS UP: Rewrite StackSet as a ZipperDon Stewart1-4/+31
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.gz
2007-05-12put doLayout in the X monad.David Roundy1-1/+1
darcs-hash:20070512215301-72aca-59213ac37c38e57d6ffed1d518afd4729f1744c9.gz
2007-05-14setsid() before exec. Intended to fix issue #7Spencer Janssen1-2/+2
darcs-hash:20070514044547-a5988-0e3c07a629fd1a28e11ee9ae1395086a5477dae2.gz
2007-05-04since we just ignore type errors, no need to derive ShowDon Stewart1-1/+1
darcs-hash:20070504094143-9c5c1-44d5edcd4b261a2d93b054f48e7818b0c9e58db2.gz
2007-05-04Constrain layout messages to be members of a Message classDon Stewart1-10/+28
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 darcs-hash:20070504081649-9c5c1-954b406e8c21c2ca4428960e4fc1f9ffb17fb296.gz
2007-05-04Handle empty layout listsSpencer Janssen1-1/+2
darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436.gz
2007-05-04refactoring, style, comments on new layout codeDon Stewart1-1/+3
darcs-hash:20070504023618-9c5c1-4b5a4021212b08fedff7f8ec3d8b4234431aada3.gz