summaryrefslogtreecommitdiffstats
path: root/Main.hs
AgeCommit message (Collapse)Author
2007-06-06Fix unmap handlingSpencer Janssen
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
2007-06-06move extraModifiers/cleanMask to Operations.hsJason Creighton
so XMonadContrib can use them darcs-hash:20070606005056-b9aa7-96a3bb09f8e6dabd707eed7b5f19d733e5e1778e
2007-06-06whitespaceDon Stewart
darcs-hash:20070606024857-9c5c1-0928bbc41b568e787e705e85ada9000547f2c790
2007-06-05Enable logging of state changes to stdoutDon Stewart
darcs-hash:20070605083735-9c5c1-1ab5acbd611914caa7b5cdf1f2df338c0ee616f8
2007-06-05remove accidental logging of eventsDon Stewart
darcs-hash:20070605081452-9c5c1-a384f89e9ed89678c96aee108a1b1e85cbff9d06
2007-06-05Fix lost eventNotifyMask bugDon Stewart
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
2007-06-04Comment onlySpencer Janssen
darcs-hash:20070604203659-a5988-30920debba664beddd1581efffbdc33143d5ce15
2007-06-04Dump state at launch (commented for now)Spencer Janssen
darcs-hash:20070604162450-a5988-e2d405b329d5f0dd0b33321f577dd63d3119b6d0
2007-06-04base >= 2.0 means we can use forM_Spencer Janssen
darcs-hash:20070604050914-a5988-600a4ba6f2f294b0ce56b16e8887d493789f29c7
2007-06-04Remove no-longer-needed 'dimensions' state (-5 loc)Stefan O'Rear
darcs-hash:20070604044715-e3110-7bd7ba2b78f80046e2148fb37aa0f5fe3eca08c6
2007-06-04Set WM_STATE, iconify invisible windows (+9 loc)Stefan O'Rear
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
2007-06-04clean up Main.hs slightlyDon Stewart
darcs-hash:20070604035637-9c5c1-a5be67b987c402fe384f7a3c5c3443aabdf62885
2007-06-04do not cache atom values within Xmonad, instead let Xlib worry about caching ↵Stefan O'Rear
(a documented feature) darcs-hash:20070604013938-e3110-8dc84f03278c55076a5cf83013974689c4861ffc
2007-06-04Honor configure requests from unmanaged windowsSpencer Janssen
darcs-hash:20070603234730-a5988-d156b988188c622428ef60456c7e48bd739e5f64
2007-06-03-Wall policeSpencer Janssen
darcs-hash:20070603212055-a5988-154f62e30303e2ab406201d08318d070a914baa3
2007-06-03Correctly handle resize requests (-12 +22)Stefan O'Rear
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
2007-06-02make mouse bindings configurableJason Creighton
darcs-hash:20070602040647-b9aa7-d7bad13c4919882368872a88f04a678308162be6
2007-06-01ignore numlock/capslock on mouse bindingsJason Creighton
darcs-hash:20070601015137-b9aa7-51c6b9ec428c2d16d65b196384fa2ce953dda245
2007-05-31clean up mouse code a bitDon Stewart
darcs-hash:20070531085308-9c5c1-73ed940708aa9a369b0345c0d2b2a4708a231e67
2007-05-31first shot at a floating layerJason Creighton
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
2007-05-28be sure to reset the gap list on rescreenDon Stewart
darcs-hash:20070528031835-9c5c1-34c9fc2931a6daa8fc3e63385782f43b097e293f
2007-05-28support per-screen gap settings. you can have different gaps on individual ↵Don Stewart
screens now darcs-hash:20070528031501-9c5c1-beaadbacb5efc1ce5998aba41fbb3b2c68cdf0d1
2007-05-28Use (Int,Int,Int,Int) for arbitrary gaps on any side of the screenDon Stewart
darcs-hash:20070528025135-9c5c1-3c0f63ac557da57cd268cd0129b9ce90692631e4
2007-05-27mod-b, toggle on or off the status bar gapDon Stewart
darcs-hash:20070527125928-9c5c1-a16246810db9d4abfe81d0d5814721b64f59a14c
2007-05-27clean Main.hs slightlyDon Stewart
darcs-hash:20070527072106-9c5c1-48830bdd83fd4823fdabce0961dafb3bea416bf6
2007-05-22refactor using whenXDon Stewart
darcs-hash:20070522043116-9c5c1-034fa6854b4ad99316fcc0f85904bec62ef1549b
2007-05-22Add preliminary randr supportSpencer Janssen
darcs-hash:20070522040228-a5988-1ae9fc6bd773b32bc4a4c43aeab556857929fef4
2007-05-21Experimental support for a beefier restart.Spencer Janssen
darcs-hash:20070521194653-a5988-b6725cc0d73fc6b726dc41284eef9303a7e59a1e
2007-05-21Make screen info dynamic: first step to supporting randrSpencer Janssen
darcs-hash:20070521152759-a5988-736e7caea5252a77bb01d7631cce0db4287ff6f2
2007-05-21s/workspace/windowset/Jason Creighton
darcs-hash:20070521040330-b9aa7-5a36f8a4f90cc4116ffa3532a14bf405bfb942bb
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-04Handle empty layout listsSpencer Janssen
darcs-hash:20070504045644-a5988-68a6d650bacab936f893b96bf866696da3f73436
2007-05-04use anyKey constant instead of magic numberJason Creighton
darcs-hash:20070504015043-b9aa7-a9e8a52b54a21ba00fba0b13a3ec1cc150b1aae5
2007-05-03add support for extensible layouts.David Roundy
darcs-hash:20070503144750-72aca-f44bca4573837e12fc1f89333b55e04abd52787c
2007-05-03Use updated refreshKeyboardMapping. Requires latest X11-extrasSpencer Janssen
darcs-hash:20070503032040-a5988-f30dac176a6db3139e07c8b29bbc31d27c67d410
2007-04-30Add Config.hs-boot, remove defaultLayoutDesc from XConfSpencer Janssen
darcs-hash:20070430162647-a5988-70420c2db283eb1585c96d977e5ac5ca3d0d1532
2007-04-30Add XConf for values that don't change.Spencer Janssen
darcs-hash:20070430054715-a5988-a74f5e2868f47443a69b0cd821fa690e43a4a7e1
2007-04-30configurable border colorsJason Creighton
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
2007-04-28avoid grabbing all keys when a keysym is undefinedJason Creighton
XKeysymToKeycode() returns zero if the keysym is undefined. Zero also happens to be the value of AnyKey. darcs-hash:20070428180046-b9aa7-79b768917b225267fa13fffda0738b53504aa722
2007-04-24Ignore numlock and capslock in keybindingsJason Creighton
darcs-hash:20070424013357-b9aa7-aed2e5623aa5d0f804d131974fc9b6c21c7a2ce1
2007-04-24Clear numlock bitSpencer Janssen
darcs-hash:20070424010352-a5988-411c7bc6d019f772b412e230cfc19aa06041ca7c
2007-04-19use prefixed record names in latest X11-extrasJason Creighton
darcs-hash:20070419032244-b9aa7-b3a4ef75d313d5c960775a75ddc91dbdae6485c7
2007-04-10moved screen <-> workspace mapping from XMonad to StackSetJason Creighton
darcs-hash:20070410062731-b9aa7-e1768a3fe6c0e3c749400dffc4a5a5e33e6a08c4
2007-04-09Remove redundant parensSpencer Janssen
darcs-hash:20070409073836-a5988-5ab0dc0ff9723b13fe2216b937e05bc6e784008a
2007-04-09Remove unused 'screen' fieldSpencer Janssen
darcs-hash:20070409073510-a5988-b2a95e4ba83a58a7be01dc49961449fa1f817014
2007-04-04replace multiple gets with a single get and record bindDon Stewart
darcs-hash:20070404010524-9c5c1-ae8b8c6a6e47d6676fb1fa77d800eb6485ac3424
2007-04-02Revert to the old layout code.Spencer Janssen
darcs-hash:20070402045114-a5988-3fa15b1c4d8d79494bf430dcad921d22cdfa8d16
2007-04-01Remove trailing spaces, no content changedAlec Berryman
darcs-hash:20070401144539-39448-1903870c5ef75cc918a8ea3153c5b154feb4e644
2007-04-01Fix type error in dimensions field of XState record for 64-bit systemsAlec Berryman
Fallout from Int->CInt conversion. darcs-hash:20070401144229-39448-a124d5c3906bbc527e04ef041d9321d871fc93b3
2007-04-01Vertical/horizontal split, and resizability.hughes
darcs-hash:20070401014706-3a569-26a764b57274f67057adf0b81eb71158b58f49de