summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2007-05-21s/workspace/windowset/Jason Creighton
darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb
2007-05-21focusWindow: always view the containing workspace firstJason Creighton
darcs-hash:20070521035551-b9aa7-d33479e88029b33748dd48607b51fac22343168c
2007-05-21explicit export list for StackSetDon Stewart
darcs-hash:20070521025250-9c5c1-853b26cc2d30325a099abec43648417dd6c60a9e
2007-05-20comment onlyDon Stewart
darcs-hash:20070520090846-9c5c1-6b99085411c441a4d8217cb6b9d18edf198bfd4e
2007-05-21only hide old workspace on view if the old workspace is not visible (Xinerama)Jason Creighton
darcs-hash:20070521031435-b9aa7-2a3825712b36c5ef267c89286006d0ea0073c57d
2007-05-21Fix mod-j/k bindingsSpencer Janssen
darcs-hash:20070521030253-a5988-3e4e92d04f8a4459cfb692f73ad7bda11348f9ad
2007-05-20Be explicit about suspicious System.Mem importSpencer Janssen
darcs-hash:20070520165741-a5988-a02abd4cb1ad1518a43c203b6b8965563b0e72a8
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-16Read is not needed for StackSetSpencer Janssen
darcs-hash:20070516054233-a5988-b71d4b13ec6dfafe367ea4a0dad0b32f0614b318
2007-05-16variable number of windows in master areaJason Creighton
darcs-hash:20070516031437-b9aa7-03d82cb2565a45fa0e17a34c4c20740b51ff625c
2007-05-16Use camelCase, please.Spencer Janssen
darcs-hash:20070516014454-a5988-48a5ca0e1ee75c6636a669e28484016eecc0f2fe
2007-05-15beautify tileDavid Roundy
darcs-hash:20070515154011-72aca-1557c99da679a2be1e52f365f6ae72cfaf40fc87
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-10keep focus stack.David Roundy
darcs-hash:20070510131637-72aca-2978a0234147fbb748962a27c68b797bd2e747d5
2007-05-10bump LOC limit to 550Jason Creighton
darcs-hash:20070510032731-b9aa7-3fccb4cbb55c59636264a451c091b743c549e1f9
2007-05-08Remove broken prop_promoterotate, replace it with prop_promote_raise_idSpencer Janssen
darcs-hash:20070508211907-a5988-25a6a03356b3017540a53f73bc609a98938c9a9e
2007-05-08Disable shift_reversible until focus issues are decided.Spencer Janssen
darcs-hash:20070508210952-a5988-becbb2c91df5be261943aefeb50f6849fc805067
2007-05-08Disable delete.push until focus issues are decidedSpencer Janssen
darcs-hash:20070508204921-a5988-7397764877c6d1a4acf1c004a1486231961d67d5
2007-05-08Remove unsafe fromJustSpencer Janssen
darcs-hash:20070508163822-a5988-cb12015569105b9e646a5c12fc8dc02099a4beed
2007-05-08Add the initial Catch testing framework for StackSetNeil Mitchell http://www.cs.york.ac.uk/~ndm/
darcs-hash:20070508154621-fbc8d-8aeafa9c3c6cb40abf72a71f83c5a26d06a71501
2007-05-08Work around the fact that Yhc gets defaulting a bit wrongNeil Mitchell http://www.cs.york.ac.uk/~ndm/
darcs-hash:20070508124949-fbc8d-1d778c43323434b6f286af1505b2c0489eb09ac2
2007-05-08Make tests typecheckSpencer Janssen
darcs-hash:20070508152449-a5988-9c8631ebe825ce20e6513f74cb776fb69e0f8509
2007-05-08Remove unsafe use of headSpencer Janssen
darcs-hash:20070508152116-a5988-16a82d62661a5ccd0a95f88ced57cd3e9df5fd67
2007-05-08Make 'index' return Nothing, rather than errorSpencer Janssen
darcs-hash:20070508151200-a5988-3da2bb925de6c610ed9b7a5ab5bccedb3483d032
2007-05-08Use 'drop 1' rather than tail, skip equality check.Spencer Janssen
darcs-hash:20070508150943-a5988-84c0ebc06bc745ecdacae2ced6863b63a9585756
2007-05-08Redundant parensSpencer Janssen
darcs-hash:20070508150412-a5988-abf7b3c1e96051cb0cb964f6a94239ac76f83a4e
2007-05-08StackSet.view: ignore invalid indicesSpencer Janssen
darcs-hash:20070508143951-a5988-5b1aea6415436bc5cee632a60efc42300cfbf1e9
2007-05-08Change the swap function so its Haskell 98, by using list-comps instead of ↵Neil Mitchell http://www.cs.york.ac.uk/~ndm/
pattern-guards. darcs-hash:20070508123158-fbc8d-1592375172ef513d85c5e0095c689abf9ac5fc9b
2007-05-08Arbitrary instance for StackSet must set random focus on each workspaceDon Stewart
When focus was separated from the stack order on each workspace, we forgot to update the Arbitrary instance to set random focus. As spotted by David R, this then invalidates 4 of our QC properties. In particular, the property involving where focus goes after a random transient (annoying behaviour) appeared to be correct, but wasn't, due to inadequate coverage. This patch sets focus to a random window on each workspace. As a result, we now catch the focus/raise/delete issue people have been complaining about. Lesson: make sure your QuickCheck generators are doing what you think they are. darcs-hash:20070508051126-9c5c1-55a0597e6838b35f12b3d348e85360cda6c237ca
2007-05-05make quickcheck tests friendlier to read.David Roundy
darcs-hash:20070505175415-72aca-2129b8432f6f2ddb9d1498b0503b86c401020194
2007-05-05make Properties.hs exit with failure on test failureJason Creighton
darcs-hash:20070505174357-b9aa7-2dc94a5ade7740c859831865d49e2da28d2ba0ac
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-04use anyKey constant instead of magic numberJason Creighton
darcs-hash:20070504015043-b9aa7-a9e8a52b54a21ba00fba0b13a3ec1cc150b1aae5
2007-05-04added mirrorLayout to mirror arbitrary layoutsJason Creighton
darcs-hash:20070504014653-b9aa7-1709cb0b718a7a058021c76fb95f9654c43f54b1
2007-05-04Fix layout switching orderSpencer Janssen
darcs-hash:20070503235632-a5988-98863d7067876591bd9da2b33d062bfe2c5b42fd
2007-05-04More Config.hs bugsSpencer Janssen
darcs-hash:20070503234607-a5988-3f9f46071263093707fdaba677899edc1a85edc1
2007-05-04Revert accidental change to Config.hsSpencer Janssen
darcs-hash:20070503233148-a5988-628ec9194db704513dd804fc7c72bb478689526e
2007-05-03Add -fglasgow-exts for pattern guards. Properties.hs doesn't complain anymoreSpencer Janssen
darcs-hash:20070503214221-a5988-c596e80afe12a486f08901e853071d42dd2d9123
2007-05-03Avoid the unsafe pattern match, in case Config.hs has no layoutsSpencer Janssen
darcs-hash:20070503214007-a5988-f427a9747f76859219abf029c2f550e7dbec258f
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-05-03-Wall policeDon Stewart
darcs-hash:20070503074937-9c5c1-769ff9e521726032973c5712940c8c671746153e
2007-05-03elaborate documentation in Config.hsDon Stewart
darcs-hash:20070503074843-9c5c1-52a96686d7d6a1e260790db263c03799116b1202
2007-05-03Use updated refreshKeyboardMapping. Requires latest X11-extrasSpencer Janssen
darcs-hash:20070503032040-a5988-f30dac176a6db3139e07c8b29bbc31d27c67d410
2007-05-03Add 'mod-n': refreshes current layoutSpencer Janssen
darcs-hash:20070503002252-a5988-751a9563c3a2574a423367cdcba11e3e661f9d92
2007-05-02Fix tests after StackSet changesSpencer Janssen
darcs-hash:20070502201622-a5988-ac80f011c59276c52314ea128c07a54487c9bee9