aboutsummaryrefslogtreecommitdiffstats
path: root/Main.hs (unfollow)
Commit message (Collapse)AuthorFilesLines
2007-07-05Note and workaround bugs in Operations.floatSpencer Janssen1-2/+6
darcs-hash:20070705195213-a5988-2dd794ce7f294a43fd21d88ec7974679de60afb7.gz
2007-06-30refresh after startingSpencer Janssen1-1/+1
darcs-hash:20070630050346-a5988-c77b422116ddc308d1b7b7c252c819c5db36cb96.gz
2007-06-30UPGRADE X11-Extras! Manage iconified windowsSpencer Janssen1-1/+6
darcs-hash:20070630021026-a5988-808741074e4132930b6036826d758b362c498dfc.gz
2007-06-29Move screen details into StackSetSpencer Janssen1-3/+2
darcs-hash:20070629213917-a5988-3ad31d8f028efcec41c9c4805c01c2d42c0009b2.gz
2007-06-23broadcast unidentified events.David Roundy1-1/+1
This change is independent of the doLayout change I just sent in, but fixes the problem that change introduces in Decoration, by ensuring that all Layouts get redraw events. I think this is the correct behavior. darcs-hash:20070623214125-72aca-deae94c4f656e2396a1e569b0ad956d625ed05f5.gz
2007-06-14make workspace tag not need to be a Num.David Roundy1-1/+1
This change also removes the barely used 'size' field, and replaces it with a tagMember predicate. The idea is to move towards the ability to make the workspace tag be a String, which by default might be "1".."9", but could also be customized to be something meaningful to the user. darcs-hash:20070614140709-72aca-dbc1ce07bf964e4cff69deef95b453a0051ef782.gz
2007-06-14move initColor to Operations and only store the Pixel value of colorsJason Creighton1-3/+2
Moving initColor to Operations allows it to be used by extensions. The Pixel component of the color is the only thing we need, so it's simpler just to deal with that. darcs-hash:20070613234501-b9aa7-5b39416db9f9d5ac42692262c233179baeb2540f.gz
2007-06-12make focus, up and down complete functions.David Roundy1-2/+2
This is a rerun of my change to make (Stack a) never be empty. Gives us more type-safety. darcs-hash:20070612150555-72aca-5f6e43aa33979c71679a73b44d93f9e2b8f9d2a8.gz
2007-06-11TODO for scanSpencer Janssen1-0/+2
darcs-hash:20070611214217-a5988-ac16c4939111434a06ed5b080a82abd1d6e86c28.gz
2007-06-11comment onlyJason Creighton1-2/+2
darcs-hash:20070611020249-b9aa7-d00e960a3f26a54acdc7a869ad88ee9d437a470b.gz
2007-06-10a few modifications to event-sending to make Tabbed layout work.David Roundy1-2/+1
darcs-hash:20070610153836-72aca-75025ca798e1b8c2c5d9f95257aef2bca0803749.gz
2007-06-10implement Spencer's decoration suggestion.David Roundy1-1/+3
darcs-hash:20070610012237-72aca-4c5873773e58103f57f7a0b232da58c269248fa7.gz
2007-06-10haddock compatibilityAndrea Rossato1-4/+5
darcs-hash:20070610123746-32816-e5a1b61d81fa52f608d7936f900431bd6620c3c7.gz
2007-06-10Move state logging into Config.hs, via logHook :: X ()Don Stewart1-1/+1
darcs-hash:20070610061932-9c5c1-9a08992ef555f086007474e64d5ae9d835e9677e.gz
2007-06-09UNDO: Give refresh sole responsibility for establishing window properties ↵Stefan O'Rear1-8/+16
(-3 loc) darcs-hash:20070609185835-e3110-1eaa534465f66313044477acd9cae1bbbcf61950.gz
2007-06-09Give refresh sole responsibility for establishing window properties (-3 loc)Stefan O'Rear1-16/+8
darcs-hash:20070609185835-e3110-4561eca8bf83e9d05d90cdd75bc1ddce5855087f.gz
2007-06-09HEADS UP: (logging format change). use a custom pretty printer, for an ↵Don Stewart1-1/+1
easier format to parse, than 'show' produces darcs-hash:20070609131716-9c5c1-ac6b3d7e8193b16ca9ae65f32d5373090107eca1.gz
2007-06-06Fix unmap handlingSpencer Janssen1-10/+12
According to the ICCCM, clients should send a synthetic unmap event when they initiate an unmap. The old code waited for these synthetic unmaps to unmanage windows. However, certain 'obsolete' clients do not send synthetic unmaps (notably xpdf's find dialog). These windows entered a zombified state: xmonad does not manage them, yet they are still mapped and raised on screen. The new algorithm (derived from wmii): - track windows that are mapped on screen - track the number of expected unmap events for each window, increment every time 'hide' is called on a window that is not mapped. - decrement the expected unmap counter on each unmap event - treat an unmap event as genuine (ie. unmap the window) when: - the event is synthetic (per ICCCM) - OR there are no expected unmap events for this window darcs-hash:20070606214006-a5988-7c2eced85319ff506a9b7c9dc86d5946ca0da8e5.gz
2007-06-06move extraModifiers/cleanMask to Operations.hsJason Creighton1-6/+0
so XMonadContrib can use them darcs-hash:20070606005056-b9aa7-96a3bb09f8e6dabd707eed7b5f19d733e5e1778e.gz
2007-06-06whitespaceDon Stewart1-1/+1
darcs-hash:20070606024857-9c5c1-0928bbc41b568e787e705e85ada9000547f2c790.gz
2007-06-05Enable logging of state changes to stdoutDon Stewart1-1/+2
darcs-hash:20070605083735-9c5c1-1ab5acbd611914caa7b5cdf1f2df338c0ee616f8.gz
2007-06-05remove accidental logging of eventsDon Stewart1-6/+3
darcs-hash:20070605081452-9c5c1-a384f89e9ed89678c96aee108a1b1e85cbff9d06.gz
2007-06-05Fix lost eventNotifyMask bugDon Stewart1-5/+22
When resuming, we were (implicitly) relying on 'scan' to find all windows, and reset their event masks and WM_STATE. When we moved to Iconfified hidden workspaces, 'scan' would only find and reset states on the current workspace. The result being that hidden workspace windows no longer received enterNotify events. Fix this by traversing the StackSet serialised during a restart, setting the intial X states for each window, whether visible or hidden. darcs-hash:20070605043040-9c5c1-642f02a61a3e1d4679fde9c38eeb10aec53ea455.gz
2007-06-04Comment onlySpencer Janssen1-1/+0
darcs-hash:20070604203659-a5988-30920debba664beddd1581efffbdc33143d5ce15.gz
2007-06-04Dump state at launch (commented for now)Spencer Janssen1-0/+2
darcs-hash:20070604162450-a5988-e2d405b329d5f0dd0b33321f577dd63d3119b6d0.gz
2007-06-04base >Spencer Janssen1-1/+1
darcs-hash:20070604050914-a5988-600a4ba6f2f294b0ce56b16e8887d493789f29c7.gz
2007-06-04Remove no-longer-needed 'dimensions' state (-5 loc)Stefan O'Rear1-3/+1
darcs-hash:20070604044715-e3110-7bd7ba2b78f80046e2148fb37aa0f5fe3eca08c6.gz
2007-06-04Set WM_STATE, iconify invisible windows (+9 loc)Stefan O'Rear1-2/+13
Note that this breaks compatibility with certain programs described as "obsolete" in the ICCCM (1994). See the command above the UnmapEvent handler for details. darcs-hash:20070604042343-e3110-4766eafca2875091189159f6a1df29eac3c21387.gz
2007-06-04clean up Main.hs slightlyDon Stewart1-9/+9
darcs-hash:20070604035637-9c5c1-a5be67b987c402fe384f7a3c5c3443aabdf62885.gz
2007-06-04do not cache atom values within Xmonad, instead let Xlib worry about caching ↵Stefan O'Rear1-4/+0
(a documented feature) darcs-hash:20070604013938-e3110-8dc84f03278c55076a5cf83013974689c4861ffc.gz
2007-06-04Honor configure requests from unmanaged windowsSpencer Janssen1-4/+4
darcs-hash:20070603234730-a5988-d156b988188c622428ef60456c7e48bd739e5f64.gz
2007-06-03-Wall policeSpencer Janssen1-4/+3
darcs-hash:20070603212055-a5988-154f62e30303e2ab406201d08318d070a914baa3.gz
2007-06-03Correctly handle resize requests (-12 +22)Stefan O'Rear1-12/+22
Xmonad now implements resize requests in a consistent manner. * If the window is FLOATING, we implement the program's request, and correctly update the StackSet; so it will keep the new size. This should work correctly even for non-current windows. * Otherwise, we ignore the request. As per ICCCM, we send a fake ConfigureNotify containing the new (unchanged) geometry. This is perfectly ICCCM compliant, and if it breaks your client, it's your own fault. This patch requires setConfigureEvent, which is added to X11-extras by a patch approximately contemporaneous with this one. darcs-hash:20070603203153-e3110-48f345cd3686f06fbe8ba30a6d851e7c8f44fe98.gz
2007-06-02make mouse bindings configurableJason Creighton1-41/+20
darcs-hash:20070602040647-b9aa7-d7bad13c4919882368872a88f04a678308162be6.gz
2007-06-01ignore numlock/capslock on mouse bindingsJason Creighton1-2/+1
darcs-hash:20070601015137-b9aa7-51c6b9ec428c2d16d65b196384fa2ce953dda245.gz
2007-05-31clean up mouse code a bitDon Stewart1-12/+16
darcs-hash:20070531085308-9c5c1-73ed940708aa9a369b0345c0d2b2a4708a231e67.gz
2007-05-31first shot at a floating layerJason Creighton1-3/+42
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
2007-05-28be sure to reset the gap list on rescreenDon Stewart1-1/+1
darcs-hash:20070528031835-9c5c1-34c9fc2931a6daa8fc3e63385782f43b097e293f.gz
2007-05-28support per-screen gap settings. you can have different gaps on individual ↵Don Stewart1-1/+1
screens now darcs-hash:20070528031501-9c5c1-beaadbacb5efc1ce5998aba41fbb3b2c68cdf0d1.gz
2007-05-28Use (Int,Int,Int,Int) for arbitrary gaps on any side of the screenDon Stewart1-1/+1
darcs-hash:20070528025135-9c5c1-3c0f63ac557da57cd268cd0129b9ce90692631e4.gz
2007-05-27mod-b, toggle on or off the status bar gapDon Stewart1-0/+1
darcs-hash:20070527125928-9c5c1-a16246810db9d4abfe81d0d5814721b64f59a14c.gz
2007-05-27clean Main.hs slightlyDon Stewart1-6/+7
darcs-hash:20070527072106-9c5c1-48830bdd83fd4823fdabce0961dafb3bea416bf6.gz
2007-05-22refactor using whenXDon Stewart1-3/+1
darcs-hash:20070522043116-9c5c1-034fa6854b4ad99316fcc0f85904bec62ef1549b.gz
2007-05-22Add preliminary randr supportSpencer Janssen1-2/+7
darcs-hash:20070522040228-a5988-1ae9fc6bd773b32bc4a4c43aeab556857929fef4.gz
2007-05-21Experimental support for a beefier restart.Spencer Janssen1-2/+8
darcs-hash:20070521194653-a5988-b6725cc0d73fc6b726dc41284eef9303a7e59a1e.gz
2007-05-21Make screen info dynamic: first step to supporting randrSpencer Janssen1-4/+4
darcs-hash:20070521152759-a5988-736e7caea5252a77bb01d7631cce0db4287ff6f2.gz
2007-05-21s/workspace/windowset/Jason Creighton1-1/+1
darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb.gz
2007-05-20HEADS UP: Rewrite StackSet as a ZipperDon Stewart1-61/+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
2007-05-04Handle empty layout listsSpencer Janssen1-2/+3
darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436.gz
2007-05-04use anyKey constant instead of magic numberJason Creighton1-1/+1
darcs-hash:20070504015043-b9aa7-a9e8a52b54a21ba00fba0b13a3ec1cc150b1aae5.gz