[xmonad] darcs patch: Config.hs, Operations.hs: +unfloat, unfloatFocused fun...

Don Stewart dons at galois.com
Sat May 2 15:11:41 EDT 2009


Isn't 'unfloat' the same as 'sink'?

unfloatFocused seems useful. Do you have some examples of how people are
using it?

gwern0:
> Sat May  2 14:26:31 EDT 2009  gwern0 at gmail.com
>   * Config.hs, Operations.hs: +unfloat, unfloatFocused functions
>   'unfloat' is the obvious inverse of the existing 'float' function, and so makes
>   the API a little more rational.
>   'unfloatFocused' is easy once you have unfloat, and more importantly, is defined in
>   >20 user configs; so obviously there's a need!

Content-Description: A darcs patch for your repository!
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
> 
> 
> New patches:
> 
> [Config.hs, Operations.hs: +unfloat, unfloatFocused functions
> gwern0 at gmail.com**20090502182631
>  Ignore-this: 782418b6bdeaf3b9890a43b44651dbe5
>  'unfloat' is the obvious inverse of the existing 'float' function, and so makes
>  the API a little more rational.
>  'unfloatFocused' is easy once you have unfloat, and more importantly, is defined in
>  >20 user configs; so obviously there's a need!
> ] {
> hunk ./XMonad/Config.hs 210
>      , ((modMask,               xK_l     ), sendMessage Expand) -- %! Expand the master area
>  
>      -- floating layer support
> - -    , ((modMask,               xK_t     ), withFocused $ windows . W.sink) -- %! Push window back into tiling
> +    , ((modMask,               xK_t     ), unfloatFocused) -- %! Push window back into tiling
>  
>      -- increase or decrease number of windows in the master area
>      , ((modMask              , xK_comma ), sendMessage (IncMasterN 1)) -- %! Increment the number of windows in the master area
> hunk ./XMonad/Operations.hs 384
>  withFocused :: (Window -> X ()) -> X ()
>  withFocused f = withWindowSet $ \w -> whenJust (W.peek w) f
>  
> +-- | 'unfloat' window with focus.
> +unfloatFocused :: X ()
> +unfloatFocused = withFocused $ unfloat
> +
>  -- | 'True' if window is under management by us
>  isClient :: Window -> X Bool
>  isClient w = withWindowSet $ return . W.member w
> hunk ./XMonad/Operations.hs 470
>          sw <- W.lookupWorkspace sc ws
>          return (W.focusWindow f . W.shiftWin sw w $ ws)
>  
> +-- | Inverse of 'float'; push a floating window back into tiling stack.
> +unfloat :: Window -> X ()
> +unfloat = windows . W.sink
> +
>  -- ---------------------------------------------------------------------
>  -- Mouse handling
>  
> }
> 
> Context:
> 
> [Avoid deadly cycle in man/xmonad.hs
> Spencer Janssen <spencerjanssen at gmail.com>**20090319081918
>  Ignore-this: adcba110caad465a2cbb4b9dca7cb612
> ] 
> [X.Config.hs, ./man/xmonad.hs: update Event Hook doc
> wirtwolff at gmail.com**20090209183837
>  Ignore-this: 3792043278932e371e3e2858913a2b17
> ] 
> [Use records to document Tall's arguments
> Spencer Janssen <spencerjanssen at gmail.com>**20090221230628
>  Ignore-this: 253c09de793715c18a029406795a42fd
> ] 
> [Fix possible head []
> Joachim Breitner <mail at joachim-breitner.de>**20090106192026
>  This seems to be a rare case, but I just got hit by it.
> ] 
> [ManageHook.doShift: use shiftWin instead of shift
> Spencer Janssen <spencerjanssen at gmail.com>**20090219041458
>  Ignore-this: 4d7f348d6d394c581ab2809bbc45a2c6
> ] 
> [Express shift in terms of shiftWin
> Spencer Janssen <spencerjanssen at gmail.com>**20090217235343
>  Ignore-this: 8f213bca20065a39e7c16027f7b398cf
> ] 
> [Use standard -fforce-recomp instead of undocumented -no-recomp
> Don Stewart <dons at galois.com>**20090208165518] 
> [Support for custom event hooks
> Daniel Schoepe <asgaroth_ at gmx.de>**20090203155536
>  Ignore-this: f22f1a7ae2d958ba1b3625aa923b7efd
> ] 
> [Make X an instance of Typeable
> Daniel Schoepe <asgaroth_ at gmx.de>**20090128215406
>  Ignore-this: bb155e62ea4e451460e3b94508dc49d2
> ] 
> [Add uninstallSignalHandlers, use in spawn
> Spencer Janssen <spencerjanssen at gmail.com>**20090122002643
>  Ignore-this: d91bde6f965341a2619fe2dde83cc099
> ] 
> [Create a new session for forked processes
> Spencer Janssen <spencerjanssen at gmail.com>**20090122000423
>  Ignore-this: f5d9cf254a0b07ddbf204457b7783880
> ] 
> [TAG 0.8.1
> Spencer Janssen <spencerjanssen at gmail.com>**20090118083910] 
> [Close stdin in spawned processes
> Spencer Janssen <spencerjanssen at gmail.com>**20090117040024
>  Ignore-this: 2e372ed6215160adae8da1c44cdede3d
> ] 
> [Document spawnPID
> Spencer Janssen <spencerjanssen at gmail.com>**20090117035907
>  Ignore-this: 1641bdcf5055b2ec7b9455265f5b1d52
> ] 
> [Asynchronously recompile/restart xmonad on mod-q
> Spencer Janssen <spencerjanssen at gmail.com>**20090117035300
>  Ignore-this: 753d8746034f818b81df79003ae5ee0d
> ] 
> [Add --restart, a command line flag to cause a running xmonad process to restart
> Spencer Janssen <spencerjanssen at gmail.com>**20090117034959
>  Ignore-this: 45c8c8aba7cc7391b95c7e3fb01e5bf9
> ] 
> [Bump version to 0.8.1
> Spencer Janssen <spencerjanssen at gmail.com>**20090116223621
>  Ignore-this: 2e8e9dc7b6ca725542f4afe04253dc57
> ] 
> [Remove doubleFork, handle SIGCHLD
> Spencer Janssen <spencerjanssen at gmail.com>**20090116204742
>  Ignore-this: f9b1a65b4f0622922f80ad2ab6c5a52f
>  This is a rather big change.  Rather than make spawned processes become
>  children of init, we handle them in xmonad.  As a side effect of this change,
>  we never need to use waitForProcess in any contrib module -- in fact, doing so
>  will raise an exception.  The main benefit to handling SIGCHLD is that xmonad
>  can now be started with 'exec', and will correctly clean up after inherited
>  child processes.
> ] 
> [More flexible userCode function
> Daniel Schoepe <asgaroth_ at gmx.de>**20090110221852] 
> [Call logHook as the very last action in windows
> Spencer Janssen <spencerjanssen at gmail.com>**20081209233700
>  Ignore-this: 4396ad891b607780f8e4b3b6bbce87e
> ] 
> [Main.hs: escape / in Haddocks
> gwern0 at gmail.com**20081207020915
>  Ignore-this: 2c4525280fbe73c46f3abd8fc13628e9
>  This lets haddocks for Main.hs, at least, to build with 2.3.0.
> ] 
> [Accept inferior crossing events.  This patch enables fmouse-focus-follows-screen
> Spencer Janssen <spencerjanssen at gmail.com>**20081205045130
>  Ignore-this: 3ac329fb92839827aed0a4370784cabd
> ] 
> [Tile all windows at once
> Spencer Janssen <spencerjanssen at gmail.com>**20081118074447] 
> [Factor rational rect scaling into a separate function
> Spencer Janssen <spencerjanssen at gmail.com>**20081118072849] 
> [Change screen focus by clicking on the root window.
> Spencer Janssen <spencerjanssen at gmail.com>**20081106224031
>  This is a modification of a patch from Joachim Breitner.
> ] 
> [Fix #192.
> Spencer Janssen <spencerjanssen at gmail.com>**20081021220059] 
> [select base < 4 for building on ghc 6.10
> Adam Vogt <vogt.adam at gmail.com>**20081013214509] 
> [add killWindow function
> Joachim Breitner <mail at joachim-breitner.de>**20081005001804
>  This is required to kill anything that is not focused, without
>  having to focus it first.
> ] 
> [add'l documentation
> Devin Mullins <me at twifkak.com>**20080927234639] 
> [Regression: ungrab buttons on *non* root windows
> Spencer Janssen <spencerjanssen at gmail.com>**20081007214351] 
> [Partial fix for #40
> Spencer Janssen <spencerjanssen at gmail.com>**20081007212053
>  Improvements:
>   - clicking on the root will change focus to that screen
>   - moving the mouse from a window on a screen to an empty screen changes focus
>     to that screen
>  The only remaining issue is that moving the mouse between two empty screens
>  does not change focus.  In order to solve this, we'd have to select motion events
>  on the root window, which is potentially expensive.
> ] 
> [Track mouse position via events received
> Spencer Janssen <spencerjanssen at gmail.com>**20081007203953] 
> [Fix haddock
> Spencer Janssen <spencerjanssen at gmail.com>**20081007094641] 
> [Move screen locating code into pointScreen
> Spencer Janssen <spencerjanssen at gmail.com>**20081007094207] 
> [Make pointWithin a top-level binding
> Spencer Janssen <spencerjanssen at gmail.com>**20081007090229] 
> [sp README, CONFIG, STYLE, TODO
> gwern0 at gmail.com**20080913024457] 
> [Use the same X11 dependency as xmonad-contrib
> Spencer Janssen <spencerjanssen at gmail.com>**20080921061508] 
> [Export focusUp' and focusDown' -- work entirely on stacks
> Spencer Janssen <spencerjanssen at gmail.com>**20080911214803] 
> [add W.shiftMaster, fix float/tile-reordering bug
> Devin Mullins <me at twifkak.com>**20080911053909] 
> [TAG 0.8
> Spencer Janssen <spencerjanssen at gmail.com>**20080905195412] 
> Patch bundle hash:
> 789863517e7c765f75aa84289b5d3189e65d8731
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> 
> iEYEAREKAAYFAkn8kSkACgkQvpDo5Pfl1oIqPQCfTUUzYe2ONWCIATpbOznSJwaG
> JdAAn0XSZM+AufBLH2TtobeCueD8VN10
> =DfAM
> -----END PGP SIGNATURE-----

> _______________________________________________
> xmonad mailing list
> xmonad at haskell.org
> http://www.haskell.org/mailman/listinfo/xmonad



More information about the xmonad mailing list