msu (empty) → 0.0.1
raw patch · 3 files changed
+60/−0 lines, 3 filesdep +basedep +directorydep +filepathsetup-changed
Dependencies added: base, directory, filepath, mtl, parsec, process, xdg-basedir
Files
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ main.hs view
@@ -0,0 +1,34 @@+module Main where++import Data.List (partition)+import MSU.Display+import MSU.Hooks+import MSU.Xrandr.Command+import MSU.Xrandr.Parse+import System.IO (hPrint, stderr)+import System.Process (readProcess, runCommand, waitForProcess)++main :: IO ()+main = do+ xrandrOutput <- readProcess "xrandr" ["--query"] ""++ case parseXrandr xrandrOutput of+ Left err -> hPrint stderr err+ Right displays -> do+ runCmd $ defaultCommand displays+ runHook runCmd "after-setup"++defaultCommand :: [Display] -> String+defaultCommand displays = buildCommand $ do+ let (connected, disconnected) = partition isConnected displays++ allOff disconnected+ firstOn connected+ extendRight connected++runCmd :: String -> IO ()+runCmd cmd = do+ putStrLn cmd+ _ <- waitForProcess =<< runCommand cmd++ return ()
+ msu.cabal view
@@ -0,0 +1,24 @@+name: msu+version: 0.0.1+synopsis: Monitor Setup Utility+description: Convenient wrapper over xrandr for setting up monitors+homepage: http://github.com/pbrisbin/msu+license: MIT+copyright: (c) 2013 Pat Brisbin+author: Pat Brisbin <pbrisbin@gmail.com>+maintainer: Pat Brisbin <pbrisbin@gmail.com>+build-type: Simple+cabal-version: >= 1.8++executable msu+ main-is: main.hs++ ghc-options: -Wall++ build-depends: base == 4.*+ , directory+ , filepath+ , mtl+ , parsec+ , process+ , xdg-basedir