aboutsummaryrefslogtreecommitdiffstats
path: root/Operations.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* comments onlyDon Stewart2007-06-031-4/+13
| | | | darcs-hash:20070603071556-9c5c1-244aeb0d684f78ae0d3495547064a1203cd36762.gz
* Polish core layout code. Lifts limitation on nmaster > 1. it may be 0 nowDon Stewart2007-06-031-41/+41
| | | | darcs-hash:20070603064306-9c5c1-7cea709e0ea2b15f6ae395a6942072d91b1e97f2.gz
* heads up: polish config.hs. moves tiling-local values into lexical scope. ↵Don Stewart2007-06-031-7/+22
| | | | | | removes `wide' as an explicit mode (it's `mirror tall') darcs-hash:20070603054740-9c5c1-1cdabf3f5bb2ac2592fc94d7d3ef51621077d3f8.gz
* only grab button{1,2,3} for click-to-focus (scrollwheel shouldn't focus)Jason Creighton2007-06-021-2/+3
| | | | darcs-hash:20070602052605-b9aa7-a3aa510c7d439b3169757f644c92107250d8db94.gz
* make mouse bindings configurableJason Creighton2007-06-021-10/+42
| | | | darcs-hash:20070602040647-b9aa7-d7bad13c4919882368872a88f04a678308162be6.gz
* commented out implementation state logging. if someone has a client, we can ↵Don Stewart2007-06-011-1/+2
| | | | | | enable this darcs-hash:20070601085626-9c5c1-668bec95074ab7050c0c8105cf7ec9c2a1c7e1f3.gz
* ignore numlock/capslock on mouse bindingsJason Creighton2007-06-011-6/+10
| | | | darcs-hash:20070601015137-b9aa7-51c6b9ec428c2d16d65b196384fa2ce953dda245.gz
* now we handle transients properly, and restack windows, refresh from focus is okDon Stewart2007-06-011-1/+1
| | | | darcs-hash:20070601022329-9c5c1-067bd51825f075e0813ecea5d2124617b406ad95.gz
* Rename withWorkspace to withWindowSet.glasser2007-06-011-6/+6
| | | | darcs-hash:20070601001325-64353-3ea08019b13ac470d7d2c60cbdea61de7d580c8c.gz
* comments on why fullscreen tiling doesn't work with `implicit' floatingDon Stewart2007-05-311-0/+10
| | | | darcs-hash:20070531090537-9c5c1-923390025493738d7d9b2e6afbb361362acb2e9a.gz
* clean up mouse code a bitDon Stewart2007-05-311-26/+45
| | | | darcs-hash:20070531085308-9c5c1-73ed940708aa9a369b0345c0d2b2a4708a231e67.gz
* first shot at a floating layerJason Creighton2007-05-311-23/+62
| | | | | | | | | | | | | | | | | | | | | | | | This is a first attempting at a floating layer: mod-button1: move window mod-button2: swapMaster mod-button3: resize window mod-t: make floating window tiled again Moving or resizing a window automatically makes it floating. Known issues: Hard to manage stacking order. You can promote a window to move it to the top, (which you can do with mod-button2) but it should be easier than that. Moving a window by dragging it to a different Xinerama screen does not move it to that workspace. Code is ugly. darcs-hash:20070531044733-b9aa7-c96d5263e1d3447e91f436920f4d047050ce55d9.gz
* forgot to set focus in 'focus'. this restores the old behaviourDon Stewart2007-05-281-1/+1
| | | | darcs-hash:20070528134547-9c5c1-d3eb8cfe7bf7293e85f957106d9d9d540524e9b6.gz
* don't refresh on focus eventsDon Stewart2007-05-281-1/+1
| | | | | | | leads to a race. this will affect how gaps are redrawn when moving to a new screen with the mouse. darcs-hash:20070528133127-9c5c1-9676939dbb1155129b976146baf929ca19d52a12.gz
* apply gap to each screenDon Stewart2007-05-281-10/+8
| | | | darcs-hash:20070528044722-9c5c1-7f8faeac3a2a375f58c94c822f16dc8e3beaea38.gz
* be sure to reset the gap list on rescreenDon Stewart2007-05-281-2/+3
| | | | darcs-hash:20070528031835-9c5c1-34c9fc2931a6daa8fc3e63385782f43b097e293f.gz
* support per-screen gap settings. you can have different gaps on individual ↵Don Stewart2007-05-281-4/+11
| | | | | | screens now darcs-hash:20070528031501-9c5c1-beaadbacb5efc1ce5998aba41fbb3b2c68cdf0d1.gz
* Use (Int,Int,Int,Int) for arbitrary gaps on any side of the screenDon Stewart2007-05-281-4/+7
| | | | darcs-hash:20070528025135-9c5c1-3c0f63ac557da57cd268cd0129b9ce90692631e4.gz
* refactor onlyDon Stewart2007-05-271-10/+5
| | | | darcs-hash:20070527154353-9c5c1-6ef13fd2212f3a18a3050c47d71eb250ec4ec683.gz
* comments on alternative gap movement policiesDon Stewart2007-05-271-0/+3
| | | | darcs-hash:20070527153211-9c5c1-0a36be7dd8b8181597f21e362ac735b343746b79.gz
* when focus is called from an event, better refresh too, since it might have ↵Don Stewart2007-05-271-1/+6
| | | | | | switched workspaces (so gap follows screen focus) darcs-hash:20070527151942-9c5c1-27e63c884e4003fc003b1928ed28412e01a21764.gz
* only set gap on current physical screenDon Stewart2007-05-271-4/+7
| | | | darcs-hash:20070527150805-9c5c1-6774cc60f8f39b8ac16c465d7ab0d2884a984fc1.gz
* revert raiseWindow in focus. Leads to some funny races with pop ups. ↵Don Stewart2007-05-271-1/+1
| | | | | | Harmless with status bar support now darcs-hash:20070527134505-9c5c1-7cf8be20d1976afdd694da946ae72cfb537fa209.gz
* mod-b, toggle on or off the status bar gapDon Stewart2007-05-271-4/+10
| | | | darcs-hash:20070527125928-9c5c1-a16246810db9d4abfe81d0d5814721b64f59a14c.gz
* Add new config value, defaultMenuGap, for specifying a gap for a status barDon Stewart2007-05-271-2/+4
| | | | | | | | | | | By default, it is 0 (set in Config.hs), but set this to a pixel count to get a permanent gap at the top of the screen. You can then at startup launch dzen, and it will run in this gap, and not be obscured by other windows. Perfect for a persistant status bar. darcs-hash:20070527122702-9c5c1-2a3ca82463b3bab21556674936b1bf8a86ba6356.gz
* raiseWindow when settings focus. The focused window should always be raised, ↵Don Stewart2007-05-271-1/+2
| | | | | | I think darcs-hash:20070527094105-9c5c1-8607589fd688646f38b62804c964f24f71f56b5c.gz
* Be a bit more conservative with -O flags, and GC. Hope to avoid runtime GC bugDon Stewart2007-05-271-2/+2
| | | | darcs-hash:20070527074438-9c5c1-af8256d1690de2b48e86f2085106f74954c0738b.gz
* refactor code smell in Operation.hsDon Stewart2007-05-271-31/+36
| | | | darcs-hash:20070527072135-9c5c1-4ae38462432bab057eb5b3ac8a4abb055bd02ec6.gz
* HEADS UP: change key binding for swapLeft/Right and IncMasterDon Stewart2007-05-261-6/+6
| | | | | | | | | | | | | | | | The use of arrow keys for swapLeft/Right clash with firefox's back button. Use the more intuitive mod-shift-jk for this. (It's a movement operation, after all). This clashes with IncMaster, so we use mod+comma and mod+period for these (i.e. the keys mod < and mod > , to move windows to and from the master area). While we're here, replace the use of the terms 'left' and 'right' for navigation, in comments and identifiers, with 'up' and 'down' instead. Hence mod-j darcs-hash:20070526111453-9c5c1-3242145ee5b51eb070a7dc3663f0d6cc01671d5c.gz
* add swapLeft and swapRightbobstopper2007-05-221-4/+6
| | | | darcs-hash:20070522050008-ee4f8-6073519fac239b25e5e265ce3995ee75683fcb81.gz
* WibbleSpencer Janssen2007-05-221-2/+1
| | | | darcs-hash:20070522043844-a5988-964764300d3bae3751718d2ce9c583a2c8e710af.gz
* Add preliminary randr supportSpencer Janssen2007-05-221-0/+20
| | | | darcs-hash:20070522040228-a5988-1ae9fc6bd773b32bc4a4c43aeab556857929fef4.gz
* Remove the magic '2'Spencer Janssen2007-05-221-1/+1
| | | | darcs-hash:20070521234535-a5988-1f7d9a7ac5bc14119c249f640946af8e57917030.gz
* Move special case 'view' code into 'windows'.Spencer Janssen2007-05-211-9/+16
| | | | | | This is ugly right now -- I promise to clean it up later. darcs-hash:20070521215646-a5988-dbd38c5fa2ebaac4022cdc60a3371af249c445f5.gz
* Remove redundant fromIntegralsSpencer Janssen2007-05-211-1/+1
| | | | darcs-hash:20070521165123-a5988-02f5d32547cfd814fa615ae86c93b824e58b3a12.gz
* Make screen info dynamic: first step to supporting randrSpencer Janssen2007-05-211-3/+3
| | | | darcs-hash:20070521152759-a5988-736e7caea5252a77bb01d7631cce0db4287ff6f2.gz
* Move xinerama current/visible/hidden workspace logic into StackSet directly.Don Stewart2007-05-211-10/+12
| | | | darcs-hash:20070521055253-9c5c1-4cc51fadb10609340f798aece25097afeae92dbb.gz
* s/workspace/windowset/Jason Creighton2007-05-211-5/+5
| | | | darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb.gz
* only hide old workspace on view if the old workspace is not visible (Xinerama)Jason Creighton2007-05-211-1/+3
| | | | darcs-hash:20070521031435-b9aa7-2a3825712b36c5ef267c89286006d0ea0073c57d.gz
* Be explicit about suspicious System.Mem importSpencer Janssen2007-05-201-1/+1
| | | | darcs-hash:20070520165741-a5988-a02abd4cb1ad1518a43c203b6b8965563b0e72a8.gz
* HEADS UP: Rewrite StackSet as a ZipperDon Stewart2007-05-201-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
* variable number of windows in master areaJason Creighton2007-05-161-10/+13
| | | | darcs-hash:20070516031437-b9aa7-03d82cb2565a45fa0e17a34c4c20740b51ff625c.gz
* Use camelCase, please.Spencer Janssen2007-05-161-10/+10
| | | | darcs-hash:20070516014454-a5988-48a5ca0e1ee75c6636a669e28484016eecc0f2fe.gz
* beautify tileDavid Roundy2007-05-151-11/+18
| | | | darcs-hash:20070515154011-72aca-1557c99da679a2be1e52f365f6ae72cfaf40fc87.gz
* put doLayout in the X monad.David Roundy2007-05-121-4/+6
| | | | darcs-hash:20070512215301-72aca-59213ac37c38e57d6ffed1d518afd4729f1744c9.gz
* Make 'index' return Nothing, rather than errorSpencer Janssen2007-05-081-3/+3
| | | | darcs-hash:20070508151200-a5988-3da2bb925de6c610ed9b7a5ab5bccedb3483d032.gz
* Redundant parensSpencer Janssen2007-05-081-1/+1
| | | | darcs-hash:20070508150412-a5988-abf7b3c1e96051cb0cb964f6a94239ac76f83a4e.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-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
* Handle empty layout listsSpencer Janssen2007-05-041-7/+8
| | | | darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436.gz