aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* clean up onlyDon Stewart2007-04-111-22/+29
| | | | darcs-hash:20070411065607-9c5c1-dcbe0dac9354e1588ab6970daf65bc1405a204b0.gz
* Statically distinguish Workspace and Screen indicesDon Stewart2007-04-111-5/+2
| | | | darcs-hash:20070411060456-9c5c1-a5642813cffe434e60310d21497217ef3704b296.gz
* moved screen <-> workspace mapping from XMonad to StackSetJason Creighton2007-04-101-1/+0
| | | | darcs-hash:20070410062731-b9aa7-e1768a3fe6c0e3c749400dffc4a5a5e33e6a08c4.gz
* Simplify rotSpencer Janssen2007-04-101-2/+2
| | | | darcs-hash:20070409223500-a5988-fa8da8a067b0a923c8709f5656648a5b21241eeb.gz
* Remove unused 'screen' fieldSpencer Janssen2007-04-091-1/+0
| | | | darcs-hash:20070409073510-a5988-b2a95e4ba83a58a7be01dc49961449fa1f817014.gz
* Document XState fieldsSpencer Janssen2007-04-091-13/+11
| | | | darcs-hash:20070409073414-a5988-cad31b0c3b3272413e0f3b1721d3b6997e448f30.gz
* Use -funbox-strict-fields, rather than UNPACK pragmas. cleaner code.Don Stewart2007-04-091-11/+13
| | | | darcs-hash:20070409072302-9c5c1-f55281c59754fa1fe17dbfe406f2fe2c71f7061d.gz
* Use Tall and Wide for split screen layouts. This should be less confusing.Spencer Janssen2007-04-031-1/+1
| | | | darcs-hash:20070403050610-a5988-34a441f8eb299905ed28d415a9524121585d06d0.gz
* vertical (master area on top) tilingJason Creighton2007-04-031-1/+1
| | | | darcs-hash:20070403040658-b9aa7-4bbe82e188fd19de00f8d6f86a3e4d3b4a39bf01.gz
* Comment typo.Spencer Janssen2007-04-021-1/+1
| | | | darcs-hash:20070402214605-a5988-385c975d34b98deb0609579f9ca9208cf522e2b5.gz
* Revert to the old layout code.Spencer Janssen2007-04-021-39/+7
| | | | darcs-hash:20070402045114-a5988-3fa15b1c4d8d79494bf430dcad921d22cdfa8d16.gz
* Remove trailing spaces, no content changedAlec Berryman2007-04-011-1/+1
| | | | darcs-hash:20070401144539-39448-1903870c5ef75cc918a8ea3153c5b154feb4e644.gz
* Merged things together with dons changes.hughes2007-04-011-6/+7
| | | | darcs-hash:20070401021846-3a569-083f7d441afc41bdeef843113c1de1d3a5e40ee3.gz
* Vertical/horizontal split, and resizability.hughes2007-04-011-6/+36
| | | | darcs-hash:20070401014706-3a569-26a764b57274f67057adf0b81eb71158b58f49de.gz
* formatting fixes. the style is getting a bit dodgy in some places...Don Stewart2007-04-011-1/+6
| | | | darcs-hash:20070401002803-9c5c1-e15fd397cbaf1182a13e1c55ca024ef2ef2fdbae.gz
* first shot at allowing click to focus windowsdaniel2007-03-281-4/+0
| | | | darcs-hash:20070328101540-c98ca-92140a718ff7491aa88895c0592cd9a964e671b0.gz
* Workspace-specific layoutshughes2007-03-261-3/+15
| | | | darcs-hash:20070326150213-3a569-64dd38c00558d58f27c3803ab15485892c24cfaa.gz
* Allow dynamic width in tiling modedaniel2007-03-211-0/+2
| | | | darcs-hash:20070321054245-c98ca-fc10278adbcbfe61de0f7bb4d4e14c5befc565b2.gz
* Initial tiling support.Spencer Janssen2007-03-201-2/+6
| | | | darcs-hash:20070320071812-a5988-5f091f18a418d6aaf940b800530e0c6a7c4bc312.gz
* changed type of getScreenInfo in Graphics.X11.XineramaJason Creighton2007-03-201-3/+1
| | | | darcs-hash:20070320044253-b9aa7-d32f71aca7e91b282efaad1689310c5ca72a0e1f.gz
* basic xinerama support (depends on Graphics.X11.Xinerama in X11-extras)Jason Creighton2007-03-181-1/+8
| | | | darcs-hash:20070317234904-b9aa7-ef29cf597970298a24d770ec789f83638390d22a.gz
* -Wall policeSpencer Janssen2007-03-161-1/+0
| | | | darcs-hash:20070316022201-a5988-71ce8c0c697df2949eb818f45dd67682e1701b7c.gz
* Actually fix the zombie issue.Spencer Janssen2007-03-141-3/+8
| | | | darcs-hash:20070313235931-a5988-71a6be9213d889a01cb645299c5a90d65616c995.gz
* Sloppy typos in spawn.Spencer Janssen2007-03-131-2/+4
| | | | darcs-hash:20070313215009-a5988-2bd5423b68531d6bb83e3de013a0f1b94bfbef00.gz
* Fix forking issues, add unix dependency.Spencer Janssen2007-03-131-3/+2
| | | | darcs-hash:20070313153310-a5988-47512502a33b3b003a6a3106ad730e61cbd0d548.gz
* catch exceptions in spawn, so failing to fork won't kill the wmDon Stewart2007-03-121-1/+3
| | | | darcs-hash:20070312062612-9c5c1-bd010ffbd84cfe17ec71b264c390ab030b6b4a6c.gz
* comments, move isRoot into XMonadDon Stewart2007-03-121-2/+12
| | | | darcs-hash:20070312012350-9c5c1-1753dcb9d066d8954fe5d2f2ed8f5d06a6f976aa.gz
* general refactor, and call xerrorhandler to ignore certain undetectable issuesDon Stewart2007-03-111-3/+6
| | | | darcs-hash:20070311102653-9c5c1-de74160d207f006000afc640dc9745d1b20ce05b.gz
* XMonadDon Stewart2007-03-101-0/+71
darcs-hash:20070310070152-9c5c1-f78385326379d5ff19cb3db926c5b02117e433ff.gz