summaryrefslogtreecommitdiffstats
path: root/XMonad.hs
AgeCommit message (Collapse)Author
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
2007-05-04refactoring, style, comments on new layout codeDon Stewart
darcs-hash:20070504023618-9c5c1-4b5a4021212b08fedff7f8ec3d8b4234431aada3
2007-05-03add support for extensible layouts.David Roundy
darcs-hash:20070503144750-72aca-f44bca4573837e12fc1f89333b55e04abd52787c
2007-05-03comments. and stop tracing events to stderrDon Stewart
darcs-hash:20070503075821-9c5c1-d5bc043872adb9f95c23e0fde87ae11f16108785
2007-04-30Add Config.hs-boot, remove defaultLayoutDesc from XConfSpencer Janssen
darcs-hash:20070430162647-a5988-70420c2db283eb1585c96d977e5ac5ca3d0d1532
2007-04-30Comment onlySpencer Janssen
darcs-hash:20070430161635-a5988-ee0abcdeff2aa92df2d593de488797015c0fc7e7
2007-04-30Comment onlySpencer Janssen
darcs-hash:20070430161511-a5988-2196c16d0c2d0d5207b68a6b27d66b11b4fe0014
2007-04-30Add XConf for values that don't change.Spencer Janssen
darcs-hash:20070430054715-a5988-a74f5e2868f47443a69b0cd821fa690e43a4a7e1
2007-04-30configurable border colorsJason Creighton
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
2007-04-19add 8 new QC tests, including tests of the layout algorithmDon Stewart
darcs-hash:20070419040833-9c5c1-9d8965bf22113a8aec47244eab7c769affb75951
2007-04-19WindowSet is better than WorkSpaceSpencer Janssen
darcs-hash:20070419015430-a5988-1abfb64ca77e80031074f4a01f1f4e1a2e5efbac
2007-04-19Parameterise StackSet by two index types, rather than breaking abstractionDon Stewart
darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652
2007-04-11clean up tiling code a teensy bit, and comment on the interaction between ↵Don Stewart
focus, master, and cycling direction between the modes darcs-hash:20070411080747-9c5c1-0f6e9cc92481db8ba812976ee8d3cb0f7dde6626
2007-04-11clean up onlyDon Stewart
darcs-hash:20070411065607-9c5c1-dcbe0dac9354e1588ab6970daf65bc1405a204b0
2007-04-11Statically distinguish Workspace and Screen indicesDon Stewart
darcs-hash:20070411060456-9c5c1-a5642813cffe434e60310d21497217ef3704b296
2007-04-10moved screen <-> workspace mapping from XMonad to StackSetJason Creighton
darcs-hash:20070410062731-b9aa7-e1768a3fe6c0e3c749400dffc4a5a5e33e6a08c4
2007-04-10Simplify rotSpencer Janssen
darcs-hash:20070409223500-a5988-fa8da8a067b0a923c8709f5656648a5b21241eeb