summaryrefslogtreecommitdiffstats
path: root/XMonad.hs
AgeCommit message (Collapse)Author
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
2007-04-09Remove unused 'screen' fieldSpencer Janssen
darcs-hash:20070409073510-a5988-b2a95e4ba83a58a7be01dc49961449fa1f817014
2007-04-09Document XState fieldsSpencer Janssen
darcs-hash:20070409073414-a5988-cad31b0c3b3272413e0f3b1721d3b6997e448f30
2007-04-09Use -funbox-strict-fields, rather than UNPACK pragmas. cleaner code.Don Stewart
darcs-hash:20070409072302-9c5c1-f55281c59754fa1fe17dbfe406f2fe2c71f7061d
2007-04-03Use Tall and Wide for split screen layouts. This should be less confusing.Spencer Janssen
darcs-hash:20070403050610-a5988-34a441f8eb299905ed28d415a9524121585d06d0
2007-04-03vertical (master area on top) tilingJason Creighton
darcs-hash:20070403040658-b9aa7-4bbe82e188fd19de00f8d6f86a3e4d3b4a39bf01
2007-04-02Comment typo.Spencer Janssen
darcs-hash:20070402214605-a5988-385c975d34b98deb0609579f9ca9208cf522e2b5
2007-04-02Revert to the old layout code.Spencer Janssen
darcs-hash:20070402045114-a5988-3fa15b1c4d8d79494bf430dcad921d22cdfa8d16
2007-04-01Remove trailing spaces, no content changedAlec Berryman
darcs-hash:20070401144539-39448-1903870c5ef75cc918a8ea3153c5b154feb4e644
2007-04-01Merged things together with dons changes.hughes
darcs-hash:20070401021846-3a569-083f7d441afc41bdeef843113c1de1d3a5e40ee3
2007-04-01Vertical/horizontal split, and resizability.hughes
darcs-hash:20070401014706-3a569-26a764b57274f67057adf0b81eb71158b58f49de
2007-04-01formatting fixes. the style is getting a bit dodgy in some places...Don Stewart
darcs-hash:20070401002803-9c5c1-e15fd397cbaf1182a13e1c55ca024ef2ef2fdbae
2007-03-28first shot at allowing click to focus windowsdaniel
darcs-hash:20070328101540-c98ca-92140a718ff7491aa88895c0592cd9a964e671b0
2007-03-26Workspace-specific layoutshughes
darcs-hash:20070326150213-3a569-64dd38c00558d58f27c3803ab15485892c24cfaa
2007-03-21Allow dynamic width in tiling modedaniel
darcs-hash:20070321054245-c98ca-fc10278adbcbfe61de0f7bb4d4e14c5befc565b2
2007-03-20Initial tiling support.Spencer Janssen
darcs-hash:20070320071812-a5988-5f091f18a418d6aaf940b800530e0c6a7c4bc312
2007-03-20changed type of getScreenInfo in Graphics.X11.XineramaJason Creighton
darcs-hash:20070320044253-b9aa7-d32f71aca7e91b282efaad1689310c5ca72a0e1f
2007-03-18basic xinerama support (depends on Graphics.X11.Xinerama in X11-extras)Jason Creighton
darcs-hash:20070317234904-b9aa7-ef29cf597970298a24d770ec789f83638390d22a
2007-03-16-Wall policeSpencer Janssen
darcs-hash:20070316022201-a5988-71ce8c0c697df2949eb818f45dd67682e1701b7c
2007-03-14Actually fix the zombie issue.Spencer Janssen
darcs-hash:20070313235931-a5988-71a6be9213d889a01cb645299c5a90d65616c995
2007-03-13Sloppy typos in spawn.Spencer Janssen
darcs-hash:20070313215009-a5988-2bd5423b68531d6bb83e3de013a0f1b94bfbef00
2007-03-13Fix forking issues, add unix dependency.Spencer Janssen
darcs-hash:20070313153310-a5988-47512502a33b3b003a6a3106ad730e61cbd0d548
2007-03-12catch exceptions in spawn, so failing to fork won't kill the wmDon Stewart
darcs-hash:20070312062612-9c5c1-bd010ffbd84cfe17ec71b264c390ab030b6b4a6c
2007-03-12comments, move isRoot into XMonadDon Stewart
darcs-hash:20070312012350-9c5c1-1753dcb9d066d8954fe5d2f2ed8f5d06a6f976aa
2007-03-11general refactor, and call xerrorhandler to ignore certain undetectable issuesDon Stewart
darcs-hash:20070311102653-9c5c1-de74160d207f006000afc640dc9745d1b20ce05b
2007-03-10XMonadDon Stewart
darcs-hash:20070310070152-9c5c1-f78385326379d5ff19cb3db926c5b02117e433ff