aboutsummaryrefslogtreecommitdiffstats
path: root/Operations.hs (unfollow)
Commit message (Collapse)AuthorFilesLines
2007-05-21Move special case 'view' code into 'windows'.Spencer Janssen1-9/+16
This is ugly right now -- I promise to clean it up later. darcs-hash:20070521215646-a5988-dbd38c5fa2ebaac4022cdc60a3371af249c445f5.gz
2007-05-21Remove redundant fromIntegralsSpencer Janssen1-1/+1
darcs-hash:20070521165123-a5988-02f5d32547cfd814fa615ae86c93b824e58b3a12.gz
2007-05-21Make screen info dynamic: first step to supporting randrSpencer Janssen1-3/+3
darcs-hash:20070521152759-a5988-736e7caea5252a77bb01d7631cce0db4287ff6f2.gz
2007-05-21Move xinerama current/visible/hidden workspace logic into StackSet directly.Don Stewart1-10/+12
darcs-hash:20070521055253-9c5c1-4cc51fadb10609340f798aece25097afeae92dbb.gz
2007-05-21s/workspace/windowset/Jason Creighton1-5/+5
darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb.gz
2007-05-21only hide old workspace on view if the old workspace is not visible (Xinerama)Jason Creighton1-1/+3
darcs-hash:20070521031435-b9aa7-2a3825712b36c5ef267c89286006d0ea0073c57d.gz
2007-05-20Be explicit about suspicious System.Mem importSpencer Janssen1-1/+1
darcs-hash:20070520165741-a5988-a02abd4cb1ad1518a43c203b6b8965563b0e72a8.gz
2007-05-20HEADS UP: Rewrite StackSet as a ZipperDon Stewart1-194/+162
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
2007-05-16variable number of windows in master areaJason Creighton1-10/+13
darcs-hash:20070516031437-b9aa7-03d82cb2565a45fa0e17a34c4c20740b51ff625c.gz
2007-05-16Use camelCase, please.Spencer Janssen1-10/+10
darcs-hash:20070516014454-a5988-48a5ca0e1ee75c6636a669e28484016eecc0f2fe.gz
2007-05-15beautify tileDavid Roundy1-11/+18
darcs-hash:20070515154011-72aca-1557c99da679a2be1e52f365f6ae72cfaf40fc87.gz
2007-05-12put doLayout in the X monad.David Roundy1-4/+6
darcs-hash:20070512215301-72aca-59213ac37c38e57d6ffed1d518afd4729f1744c9.gz
2007-05-08Make 'index' return Nothing, rather than errorSpencer Janssen1-3/+3
darcs-hash:20070508151200-a5988-3da2bb925de6c610ed9b7a5ab5bccedb3483d032.gz
2007-05-08Redundant parensSpencer Janssen1-1/+1
darcs-hash:20070508150412-a5988-abf7b3c1e96051cb0cb964f6a94239ac76f83a4e.gz
2007-05-04since we just ignore type errors, no need to derive ShowDon Stewart1-1/+1
darcs-hash:20070504094143-9c5c1-44d5edcd4b261a2d93b054f48e7818b0c9e58db2.gz
2007-05-04Constrain layout messages to be members of a Message classDon Stewart1-20/+24
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
2007-05-04Handle empty layout listsSpencer Janssen1-7/+8
darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436.gz
2007-05-04refactoring, style, comments on new layout codeDon Stewart1-39/+58
darcs-hash:20070504023618-9c5c1-4b5a4021212b08fedff7f8ec3d8b4234431aada3.gz
2007-05-04added mirrorLayout to mirror arbitrary layoutsJason Creighton1-10/+9
darcs-hash:20070504014653-b9aa7-1709cb0b718a7a058021c76fb95f9654c43f54b1.gz
2007-05-04Fix layout switching orderSpencer Janssen1-2/+1
darcs-hash:20070503235632-a5988-98863d7067876591bd9da2b33d062bfe2c5b42fd.gz
2007-05-03Avoid the unsafe pattern match, in case Config.hs has no layoutsSpencer Janssen1-1/+1
darcs-hash:20070503214007-a5988-f427a9747f76859219abf029c2f550e7dbec258f.gz
2007-05-03add support for extensible layouts.David Roundy1-18/+30
darcs-hash:20070503144750-72aca-f44bca4573837e12fc1f89333b55e04abd52787c.gz
2007-05-03comments. and stop tracing events to stderrDon Stewart1-4/+9
darcs-hash:20070503075821-9c5c1-d5bc043872adb9f95c23e0fde87ae11f16108785.gz
2007-04-30Make border width configurableSpencer Janssen1-1/+1
darcs-hash:20070430163515-a5988-9dea5188c30830fd8b3135f7cb5beffd7b90dcb9.gz
2007-04-30Add Config.hs-boot, remove defaultLayoutDesc from XConfSpencer Janssen1-4/+4
darcs-hash:20070430162647-a5988-70420c2db283eb1585c96d977e5ac5ca3d0d1532.gz
2007-04-30Add XConf for values that don't change.Spencer Janssen1-9/+11
darcs-hash:20070430054715-a5988-a74f5e2868f47443a69b0cd821fa690e43a4a7e1.gz
2007-04-30Control.Arrow is suspicious, add an explicit importSpencer Janssen1-1/+1
darcs-hash:20070430053623-a5988-b7fd0de8376993fdab9ce99bf3c525105b597b33.gz
2007-04-30configurable border colorsJason Creighton1-7/+4
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
2007-04-23force window border to 1pxJason Creighton1-0/+1
darcs-hash:20070423050824-b9aa7-3fc8d9ad35a886852f035f8dabb0abaaee912ede.gz
2007-04-19use prefixed record names in latest X11-extrasJason Creighton1-1/+1
darcs-hash:20070419032244-b9aa7-b3a4ef75d313d5c960775a75ddc91dbdae6485c7.gz
2007-04-19WindowSet is better than WorkSpaceSpencer Janssen1-1/+1
darcs-hash:20070419015430-a5988-1abfb64ca77e80031074f4a01f1f4e1a2e5efbac.gz
2007-04-19Parameterise StackSet by two index types, rather than breaking abstractionDon Stewart1-3/+3
darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652.gz
2007-04-19Promote now swaps focused window with master windowDon Stewart1-4/+1
This means other windows are unaffected. The change from the previous cycling behaviour was felt necessary, since cycling isn't a terribly useful operation. Some properties that hold: focus is unchanged by promotion promote is idempotent (promoting twice does nothing) the focused and master window will swap their positions in the stack darcs-hash:20070418224236-9c5c1-4539f9f397e181f91dc9743e3ffac4b5796c0fac.gz
2007-04-16test for xmonad in path first, before restartingDon Stewart1-3/+7
darcs-hash:20070416025541-9c5c1-16be9a7ee5e4d1c3d319be7890f0812c56986116.gz
2007-04-15fix typo.David Roundy1-1/+1
darcs-hash:20070415055616-72aca-b81f926fe289216aa59af135f34db069eefce0a2.gz
2007-04-13Ignore window entries while moving windows. This should fix all the focus ↵Spencer Janssen1-0/+11
preservation problems. darcs-hash:20070413083702-a5988-20863eaa042f45a1421a6f171d9a8c42a7854883.gz
2007-04-11add license headers to two missing filesDon Stewart1-0/+12
darcs-hash:20070411081042-9c5c1-05a68bbf16969dbb8854b37ab9b72e042d7fac9a.gz
2007-04-11clean up tiling code a teensy bit, and comment on the interaction between ↵Don Stewart1-5/+14
focus, master, and cycling direction between the modes darcs-hash:20070411080747-9c5c1-0f6e9cc92481db8ba812976ee8d3cb0f7dde6626.gz
2007-04-11Change semantics of 'promote'.Don Stewart1-7/+3
Previously 'promote' would move the currently focused window into the master position in tiled mode. This was *almost* a cycle of the windows, but not quite (depending on where the focus was, it was in fact a cycle). Now we do the obvious generalisation, and just cycle the current window stack. Simpler to understand, simpler to reason about. darcs-hash:20070411073456-9c5c1-3ee88f9ac46e2301b4c803ec4fd66798e6fee91d.gz
2007-04-11Statically distinguish Workspace and Screen indicesDon Stewart1-12/+10
darcs-hash:20070411060456-9c5c1-a5642813cffe434e60310d21497217ef3704b296.gz
2007-04-11removed xinerama-enabled dmenu actionJason Creighton1-10/+0
I don't think we're going to see any Xinerama support upstream, at least not anytime soon. It doesn't make sense to ship something with xmonad that isn't going to work out of the box. So for now Xinerama users should just use this patch: http://www.jcreigh.com/xmonad/xinerama-dmenu.html darcs-hash:20070411024716-b9aa7-e41d85ad5030a6a4eb6120257e8a5f2d1adaf00f.gz
2007-04-10Move workspace fetching logic from Config.hs to Operations.hsSpencer Janssen1-0/+4
darcs-hash:20070410064714-a5988-e9b1fac201a546d1722db41213efc81223007e43.gz
2007-04-10moved screen <-> workspace mapping from XMonad to StackSetJason Creighton1-30/+12
darcs-hash:20070410062731-b9aa7-e1768a3fe6c0e3c749400dffc4a5a5e33e6a08c4.gz
2007-04-05Remove redundant setFocus, setFocus is called by refresh which is called by ↵Spencer Janssen1-3/+0
windows darcs-hash:20070405215832-a5988-87a975ad9fcea125d7d8ba3497d7bc0289a3f158.gz
2007-04-05-Wall policeDon Stewart1-3/+3
darcs-hash:20070405000100-9c5c1-aab51f7bfb20248e9a601b7af5107591db48af8c.gz
2007-04-04take window borders into account when resizing (requires latest X11-extras)Jason Creighton1-1/+10
darcs-hash:20070404021612-b9aa7-842163845e3969d9f5446065bc3fe57606501a48.gz
2007-04-04replace multiple gets with a single get and record bindDon Stewart1-16/+9
darcs-hash:20070404010524-9c5c1-ae8b8c6a6e47d6676fb1fa77d800eb6485ac3424.gz
2007-04-03Use Tall and Wide for split screen layouts. This should be less confusing.Spencer Janssen1-5/+5
darcs-hash:20070403050610-a5988-34a441f8eb299905ed28d415a9524121585d06d0.gz
2007-04-03vertical (master area on top) tilingJason Creighton1-3/+9
darcs-hash:20070403040658-b9aa7-4bbe82e188fd19de00f8d6f86a3e4d3b4a39bf01.gz
2007-04-02Comment only.Spencer Janssen1-0/+5
darcs-hash:20070402072418-a5988-3b4db0be791c44772e0ce4ec49df25c16edaee94.gz