packages feed

xmonad-bluetilebranch 0.8.1 → 0.8.1.3

raw patch · 7 files changed

+67/−45 lines, 7 filesdep +filepathPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

Dependencies added: filepath

API changes (from Hackage documentation)

+ XMonad.StackSet: focusMaster' :: Stack a -> Stack a

Files

Main.hs view
@@ -16,10 +16,12 @@  import XMonad +import Control.Monad (unless) import System.IO import System.Info import System.Environment import System.Posix.Process (executeFile)+import System.Exit (exitFailure)  import Paths_xmonad_bluetilebranch (version) import Data.Version (showVersion)@@ -39,7 +41,7 @@         []                    -> launch         ["--resume", _]       -> launch         ["--help"]            -> usage-        ["--recompile"]       -> recompile True >> return ()+        ["--recompile"]       -> recompile True >>= flip unless exitFailure         ["--restart"]         -> sendRestart >> return ()         ["--version"]         -> putStrLn ("xmonad " ++ showVersion version) #ifdef TESTING
XMonad/Config.hs view
@@ -218,7 +218,7 @@      -- quit, or restart     , ((modMask .|. shiftMask, xK_q     ), io (exitWith ExitSuccess)) -- %! Quit xmonad-    , ((modMask              , xK_q     ), spawn "xmonad --recompile; xmonad --restart") -- %! Restart xmonad+    , ((modMask              , xK_q     ), spawn "xmonad --recompile && xmonad --restart") -- %! Restart xmonad     ]     ++     -- mod-[1..9] %! Switch to workspace N
XMonad/Core.hs view
@@ -38,6 +38,7 @@ import Control.Applicative import Control.Monad.State import Control.Monad.Reader+import System.FilePath import System.IO import System.Info import System.Posix.Process (executeFile, forkProcess, getAnyProcessStatus, createSession)@@ -50,6 +51,7 @@ import Graphics.X11.Xlib import Graphics.X11.Xlib.Extras (Event) import Data.Typeable+import Data.List ((\\)) import Data.Maybe (isJust) import Data.Monoid import Data.Maybe (fromMaybe)@@ -412,18 +414,20 @@ recompile force = io $ do     dir <- getXMonadDir     let binn = "xmonad-"++arch++"-"++os-        bin  = dir ++ "/" ++ binn-        base = dir ++ "/" ++ "xmonad"+        bin  = dir </> binn+        base = dir </> "xmonad"         err  = base ++ ".errors"         src  = base ++ ".hs"+        lib  = dir </> "lib"+    libTs <- mapM getModTime . Prelude.filter isSource =<< allFiles lib     srcT <- getModTime src     binT <- getModTime bin-    if (force || srcT > binT)+    if (force || srcT > binT || any (binT<) libTs)       then do         -- temporarily disable SIGCHLD ignoring:         uninstallSignalHandlers         status <- bracket (openFile err WriteMode) hClose $ \h -> do-            waitForProcess =<< runProcess "ghc" ["--make", "xmonad.hs", "-i", "-fforce-recomp", "-v0", "-o",binn] (Just dir)+            waitForProcess =<< runProcess "ghc" ["--make", "xmonad.hs", "-i", "-ilib", "-fforce-recomp", "-v0", "-o",binn] (Just dir)                                     Nothing Nothing Nothing (Just h)          -- re-enable SIGCHLD:@@ -443,6 +447,12 @@         return (status == ExitSuccess)       else return True  where getModTime f = catch (Just <$> getModificationTime f) (const $ return Nothing)+       isSource = flip elem [".hs",".lhs",".hsc"]+       allFiles t = do+            let prep = map (t</>) . Prelude.filter (`notElem` [".",".."])+            cs <- prep <$> catch (getDirectoryContents t) (\_ -> return [])+            ds <- filterM doesDirectoryExist cs+            concat . ((cs \\ ds):) <$> mapM allFiles ds  -- | Conditionally run an action, using a @Maybe a@ to decide. whenJust :: Monad m => Maybe a -> (a -> m ()) -> m ()
XMonad/ManageHook.hs view
@@ -45,6 +45,8 @@ composeAll :: [ManageHook] -> ManageHook composeAll = mconcat +infix 0 -->+ -- | @p --> x@.  If @p@ returns 'True', execute the 'ManageHook'. (-->) :: Query Bool -> ManageHook -> ManageHook p --> f = p >>= \b -> if b then f else mempty@@ -72,7 +74,7 @@             (internAtom d "_NET_WM_NAME" False >>= getTextProperty d w)                 `catch` \_ -> getTextProperty d w wM_NAME         extract prop = do l <- wcTextPropertyToTextList d prop-		          return $ if null l then "" else head l+                          return $ if null l then "" else head l     io $ bracket getProp (xFree . tp_value) extract `catch` \_ -> return ""  -- | Return the application name.
XMonad/StackSet.hs view
@@ -35,7 +35,7 @@         -- *  Operations on the current stack         -- $stackOperations         peek, index, integrate, integrate', differentiate,-        focusUp, focusDown, focusUp', focusDown', focusMaster, focusWindow,+        focusUp, focusDown, focusUp', focusDown', focusMaster, focusMaster', focusWindow,         tagMember, renameTag, ensureTags, member, findTag, mapWorkspace, mapLayout,         -- * Modifying the stackset         -- $modifyStackset@@ -524,9 +524,13 @@  -- | /O(s)/. Set focus to the master window. focusMaster :: StackSet i l a s sd -> StackSet i l a s sd-focusMaster = modify' $ \c -> case c of-    Stack _ [] _  -> c-    Stack t ls rs -> Stack x [] (xs ++ t : rs) where (x:xs) = reverse ls+focusMaster = modify' focusMaster'++-- | Variant of 'focusMaster' that works on a+-- 'Stack' rather than an entire 'StackSet'.+focusMaster' :: Stack a -> Stack a+focusMaster' c@(Stack _ [] _) = c+focusMaster' (Stack t ls rs) = Stack x [] (xs ++ t : rs) where (x:xs) = reverse ls  -- -- ---------------------------------------------------------------------
man/xmonad.hs view
@@ -8,6 +8,7 @@ --  import XMonad+import Data.Monoid import System.Exit  import qualified XMonad.StackSet as W@@ -67,73 +68,76 @@ ------------------------------------------------------------------------ -- Key bindings. Add, modify or remove key bindings here. ---myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $+myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $      -- launch a terminal-    [ ((modMask .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)+    [ ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)      -- launch dmenu-    , ((modMask,               xK_p     ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"")+    , ((modm,               xK_p     ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"")      -- launch gmrun-    , ((modMask .|. shiftMask, xK_p     ), spawn "gmrun")+    , ((modm .|. shiftMask, xK_p     ), spawn "gmrun")      -- close focused window-    , ((modMask .|. shiftMask, xK_c     ), kill)+    , ((modm .|. shiftMask, xK_c     ), kill)       -- Rotate through the available layout algorithms-    , ((modMask,               xK_space ), sendMessage NextLayout)+    , ((modm,               xK_space ), sendMessage NextLayout)      --  Reset the layouts on the current workspace to default-    , ((modMask .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)+    , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)      -- Resize viewed windows to the correct size-    , ((modMask,               xK_n     ), refresh)+    , ((modm,               xK_n     ), refresh)      -- Move focus to the next window-    , ((modMask,               xK_Tab   ), windows W.focusDown)+    , ((modm,               xK_Tab   ), windows W.focusDown)      -- Move focus to the next window-    , ((modMask,               xK_j     ), windows W.focusDown)+    , ((modm,               xK_j     ), windows W.focusDown)      -- Move focus to the previous window-    , ((modMask,               xK_k     ), windows W.focusUp  )+    , ((modm,               xK_k     ), windows W.focusUp  )      -- Move focus to the master window-    , ((modMask,               xK_m     ), windows W.focusMaster  )+    , ((modm,               xK_m     ), windows W.focusMaster  )      -- Swap the focused window and the master window-    , ((modMask,               xK_Return), windows W.swapMaster)+    , ((modm,               xK_Return), windows W.swapMaster)      -- Swap the focused window with the next window-    , ((modMask .|. shiftMask, xK_j     ), windows W.swapDown  )+    , ((modm .|. shiftMask, xK_j     ), windows W.swapDown  )      -- Swap the focused window with the previous window-    , ((modMask .|. shiftMask, xK_k     ), windows W.swapUp    )+    , ((modm .|. shiftMask, xK_k     ), windows W.swapUp    )      -- Shrink the master area-    , ((modMask,               xK_h     ), sendMessage Shrink)+    , ((modm,               xK_h     ), sendMessage Shrink)      -- Expand the master area-    , ((modMask,               xK_l     ), sendMessage Expand)+    , ((modm,               xK_l     ), sendMessage Expand)      -- Push window back into tiling-    , ((modMask,               xK_t     ), withFocused $ windows . W.sink)+    , ((modm,               xK_t     ), withFocused $ windows . W.sink)      -- Increment the number of windows in the master area-    , ((modMask              , xK_comma ), sendMessage (IncMasterN 1))+    , ((modm              , xK_comma ), sendMessage (IncMasterN 1))      -- Deincrement the number of windows in the master area-    , ((modMask              , xK_period), sendMessage (IncMasterN (-1)))+    , ((modm              , xK_period), sendMessage (IncMasterN (-1))) -    -- toggle the status bar gap-    -- TODO, update this binding with avoidStruts , ((modMask              , xK_b     ),+    -- Toggle the status bar gap+    -- Use this binding with avoidStruts from Hooks.ManageDocks.+    -- See also the statusBar function from Hooks.DynamicLog.+    --+    -- , ((modm              , xK_b     ), sendMessage ToggleStruts)      -- Quit xmonad-    , ((modMask .|. shiftMask, xK_q     ), io (exitWith ExitSuccess))+    , ((modm .|. shiftMask, xK_q     ), io (exitWith ExitSuccess))      -- Restart xmonad-    , ((modMask              , xK_q     ), spawn "xmonad --recompile; xmonad --restart")+    , ((modm              , xK_q     ), spawn "xmonad --recompile; xmonad --restart")     ]     ++ @@ -141,7 +145,7 @@     -- mod-[1..9], Switch to workspace N     -- mod-shift-[1..9], Move client to workspace N     ---    [((m .|. modMask, k), windows $ f i)+    [((m .|. modm, k), windows $ f i)         | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]         , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]     ++@@ -150,7 +154,7 @@     -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3     -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3     ---    [((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f))+    [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))         | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]         , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]] @@ -158,18 +162,18 @@ ------------------------------------------------------------------------ -- Mouse bindings: default actions bound to mouse events ---myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $+myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $      -- mod-button1, Set the window to floating mode and move by dragging-    [ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w-                                          >> windows W.shiftMaster))+    [ ((modm, button1), (\w -> focus w >> mouseMoveWindow w+                                       >> windows W.shiftMaster))      -- mod-button2, Raise the window to the top of the stack-    , ((modMask, button2), (\w -> focus w >> windows W.shiftMaster))+    , ((modm, button2), (\w -> focus w >> windows W.shiftMaster))      -- mod-button3, Set the window to floating mode and resize by dragging-    , ((modMask, button3), (\w -> focus w >> mouseResizeWindow w-                                          >> windows W.shiftMaster))+    , ((modm, button3), (\w -> focus w >> mouseResizeWindow w+                                       >> windows W.shiftMaster))      -- you may also bind events to the mouse scroll wheel (button4 and button5)     ]
xmonad-bluetilebranch.cabal view
@@ -1,5 +1,5 @@ name:               xmonad-bluetilebranch-version:            0.8.1+version:            0.8.1.3 homepage:           http://xmonad.org synopsis:           A tiling window manager description:        This is a modified version of xmonad used by Bluetile.@@ -34,7 +34,7 @@     exposed:            False      if flag(small_base)-        build-depends: base < 4 && >=3, containers, directory, process+        build-depends: base < 4 && >=3, containers, directory, process, filepath     else         build-depends: base < 3     build-depends: X11>=1.4.3, mtl, unix, random