aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* API CHANGE: Give doLayout a Stack rather than a flattened listSpencer Janssen2007-06-111-1/+1
| | | | darcs-hash:20070611182629-a5988-384e2f82340497c833a68d909ea485017803fe9b.gz
* Use catchIO in 'restart'Spencer Janssen2007-06-111-2/+1
| | | | darcs-hash:20070611161152-a5988-1311671abda1c7edfa223255dff0128860b30d38.gz
* Rename safeIO to catchIOSpencer Janssen2007-06-111-3/+5
| | | | darcs-hash:20070611160608-a5988-a042d190c15b993b15da274db915ca73d9c8e089.gz
* add safeIO which catches and logs exceptions.David Roundy2007-06-111-1/+4
| | | | darcs-hash:20070611153650-72aca-c802f2ac167c0e9232d17a2897163aca5a5479f0.gz
* implement Spencer's decoration suggestion.David Roundy2007-06-101-1/+1
| | | | darcs-hash:20070610012237-72aca-4c5873773e58103f57f7a0b232da58c269248fa7.gz
* haddock compatibilityAndrea Rossato2007-06-101-2/+1
| | | | darcs-hash:20070610123746-32816-e5a1b61d81fa52f608d7936f900431bd6620c3c7.gz
* Move state logging into Config.hs, via logHook :: X ()Don Stewart2007-06-101-49/+3
| | | | darcs-hash:20070610061932-9c5c1-9a08992ef555f086007474e64d5ae9d835e9677e.gz
* polish serialisation code (-7 lines)Don Stewart2007-06-101-30/+36
| | | | darcs-hash:20070610045551-9c5c1-a1604a4e90d160728b3c5cd12acb3b4febc3625a.gz
* HEADS UP: (logging format change). use a custom pretty printer, for an ↵Don Stewart2007-06-091-2/+42
| | | | | | easier format to parse, than 'show' produces darcs-hash:20070609131716-9c5c1-ac6b3d7e8193b16ca9ae65f32d5373090107eca1.gz
* Fix unmap handlingSpencer Janssen2007-06-061-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
* Remove no-longer-needed 'dimensions' state (-5 loc)Stefan O'Rear2007-06-041-1/+0
| | | | darcs-hash:20070604044715-e3110-7bd7ba2b78f80046e2148fb37aa0f5fe3eca08c6.gz
* Set WM_STATE, iconify invisible windows (+9 loc)Stefan O'Rear2007-06-041-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
* whitespaceDon Stewart2007-06-041-3/+3
| | | | darcs-hash:20070604015532-9c5c1-1fda0e7e7cf686dc71785d3877a51d23f42b5919.gz
* -WallDon Stewart2007-06-041-1/+0
| | | | darcs-hash:20070604014630-9c5c1-4cd761ffdf2caab60d490fdc1fe189577a59272b.gz
* do not cache atom values within Xmonad, instead let Xlib worry about caching ↵Stefan O'Rear2007-06-041-3/+11
| | | | | | (a documented feature) darcs-hash:20070604013938-e3110-8dc84f03278c55076a5cf83013974689c4861ffc.gz
* Rename withWorkspace to withWindowSet.glasser2007-06-011-4/+4
| | | | darcs-hash:20070601001325-64353-3ea08019b13ac470d7d2c60cbdea61de7d580c8c.gz
* Minor style change.Spencer Janssen2007-05-301-1/+1
| | | | darcs-hash:20070530181006-a5988-96541d0d2832c8f248e47957e8398a01d57545f9.gz
* log errors on executeFile in restartnickburlett2007-05-301-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
* support per-screen gap settings. you can have different gaps on individual ↵Don Stewart2007-05-281-1/+1
| | | | | | screens now darcs-hash:20070528031501-9c5c1-beaadbacb5efc1ce5998aba41fbb3b2c68cdf0d1.gz
* Use (Int,Int,Int,Int) for arbitrary gaps on any side of the screenDon Stewart2007-05-281-14/+11
| | | | darcs-hash:20070528025135-9c5c1-3c0f63ac557da57cd268cd0129b9ce90692631e4.gz
* mod-b, toggle on or off the status bar gapDon Stewart2007-05-271-0/+1
| | | | darcs-hash:20070527125928-9c5c1-a16246810db9d4abfe81d0d5814721b64f59a14c.gz
* dead codeDon Stewart2007-05-271-1/+0
| | | | darcs-hash:20070527072652-9c5c1-be19c516b63614dcf81ce37f8c564184c67ea9f6.gz
* restart: don't preserve old argsSpencer Janssen2007-05-221-4/+3
| | | | darcs-hash:20070522060357-a5988-037eb7484106de44a541f21c41d15c2050e94760.gz
* Generalize withDisplay's typeSpencer Janssen2007-05-221-1/+1
| | | | darcs-hash:20070522043758-a5988-7738168ac829a9b2cf79e6866072cccde379a977.gz
* List --resume args firstSpencer Janssen2007-05-221-1/+1
| | | | darcs-hash:20070521232427-a5988-f7c747a1bfcc2a6ad38d5c47c3ecf195d1e4a6b5.gz
* Experimental support for a beefier restart.Spencer Janssen2007-05-211-7/+15
| | | | darcs-hash:20070521194653-a5988-b6725cc0d73fc6b726dc41284eef9303a7e59a1e.gz
* Catch the exception rather than explicitly checking the PATHSpencer Janssen2007-05-211-6/+2
| | | | darcs-hash:20070521191900-a5988-ef2361014d1d8c27cd8c73d290cdeff13ee38df6.gz
* Put restart in the X monadSpencer Janssen2007-05-211-2/+2
| | | | darcs-hash:20070521190749-a5988-1c95a0491806b06a32e7fe8bd6bcac31ebc7ad6b.gz
* Show instances for WorkspaceId and ScreenIdSpencer Janssen2007-05-211-2/+2
| | | | darcs-hash:20070521190704-a5988-24dfb3b96a551ee2a27c9dd09461ddd260db8e64.gz
* Use Position for dimensionsSpencer Janssen2007-05-211-4/+4
| | | | darcs-hash:20070521162809-a5988-fbabe930a50582fb828cd3683167e158bec904ad.gz
* Make screen info dynamic: first step to supporting randrSpencer Janssen2007-05-211-3/+3
| | | | darcs-hash:20070521152759-a5988-736e7caea5252a77bb01d7631cce0db4287ff6f2.gz
* s/workspace/windowset/Jason Creighton2007-05-211-2/+2
| | | | darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb.gz
* HEADS UP: Rewrite StackSet as a ZipperDon Stewart2007-05-201-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
* put doLayout in the X monad.David Roundy2007-05-121-1/+1
| | | | darcs-hash:20070512215301-72aca-59213ac37c38e57d6ffed1d518afd4729f1744c9.gz
* setsid() before exec. Intended to fix issue #7Spencer Janssen2007-05-141-2/+2
| | | | darcs-hash:20070514044547-a5988-0e3c07a629fd1a28e11ee9ae1395086a5477dae2.gz
* since we just ignore type errors, no need to derive ShowDon Stewart2007-05-041-1/+1
| | | | darcs-hash:20070504094143-9c5c1-44d5edcd4b261a2d93b054f48e7818b0c9e58db2.gz
* Constrain layout messages to be members of a Message classDon Stewart2007-05-041-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
* Handle empty layout listsSpencer Janssen2007-05-041-1/+2
| | | | darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436.gz
* refactoring, style, comments on new layout codeDon Stewart2007-05-041-1/+3
| | | | darcs-hash:20070504023618-9c5c1-4b5a4021212b08fedff7f8ec3d8b4234431aada3.gz
* add support for extensible layouts.David Roundy2007-05-031-11/+5
| | | | darcs-hash:20070503144750-72aca-f44bca4573837e12fc1f89333b55e04abd52787c.gz
* comments. and stop tracing events to stderrDon Stewart2007-05-031-2/+6
| | | | darcs-hash:20070503075821-9c5c1-d5bc043872adb9f95c23e0fde87ae11f16108785.gz
* Add Config.hs-boot, remove defaultLayoutDesc from XConfSpencer Janssen2007-04-301-1/+0
| | | | darcs-hash:20070430162647-a5988-70420c2db283eb1585c96d977e5ac5ca3d0d1532.gz
* Comment onlySpencer Janssen2007-04-301-12/+12
| | | | darcs-hash:20070430161635-a5988-ee0abcdeff2aa92df2d593de488797015c0fc7e7.gz
* Comment onlySpencer Janssen2007-04-301-1/+1
| | | | darcs-hash:20070430161511-a5988-2196c16d0c2d0d5207b68a6b27d66b11b4fe0014.gz
* Add XConf for values that don't change.Spencer Janssen2007-04-301-10/+14
| | | | darcs-hash:20070430054715-a5988-a74f5e2868f47443a69b0cd821fa690e43a4a7e1.gz
* configurable border colorsJason Creighton2007-04-301-0/+2
| | | | | | | | This also fixes a bug where xmonad was assuming a 24-bit display, and just using, eg, 0xff0000 as an index into a colormap without querying the X server to determine the proper pixel value for "red". darcs-hash:20070430043859-b9aa7-9467ff583ec95144e5baa088e4b1536a725e7bc6.gz
* add 8 new QC tests, including tests of the layout algorithmDon Stewart2007-04-191-0/+1
| | | | darcs-hash:20070419040833-9c5c1-9d8965bf22113a8aec47244eab7c769affb75951.gz
* WindowSet is better than WorkSpaceSpencer Janssen2007-04-191-3/+3
| | | | darcs-hash:20070419015430-a5988-1abfb64ca77e80031074f4a01f1f4e1a2e5efbac.gz
* Parameterise StackSet by two index types, rather than breaking abstractionDon Stewart2007-04-191-5/+10
| | | | darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652.gz
* clean up tiling code a teensy bit, and comment on the interaction between ↵Don Stewart2007-04-111-3/+3
| | | | | | focus, master, and cycling direction between the modes darcs-hash:20070411080747-9c5c1-0f6e9cc92481db8ba812976ee8d3cb0f7dde6626.gz