36 lines
778 B
Haskell
36 lines
778 B
Haskell
|
module Capture
|
||
|
( runAreaCapture
|
||
|
, runDesktopCapture
|
||
|
, runScreenCapture
|
||
|
)
|
||
|
where
|
||
|
|
||
|
import Shell
|
||
|
|
||
|
import System.Directory
|
||
|
|
||
|
import XMonad.Core
|
||
|
|
||
|
getScreenshotDir :: IO FilePath
|
||
|
getScreenshotDir = do
|
||
|
h <- getHomeDirectory
|
||
|
return $ h ++ "/Pictures/screenshots"
|
||
|
|
||
|
runFlameshot :: String -> X ()
|
||
|
runFlameshot mode = do
|
||
|
ssDir <- io getScreenshotDir
|
||
|
spawnCmd "flameshot" $ mode : ["-p", ssDir]
|
||
|
|
||
|
-- TODO this will steal focus from the current window (and puts it
|
||
|
-- in the root window?) ...need to fix
|
||
|
runAreaCapture :: X ()
|
||
|
runAreaCapture = runFlameshot "gui"
|
||
|
|
||
|
-- myWindowCap = "screencap -w" --external script
|
||
|
|
||
|
runScreenCapture :: X ()
|
||
|
runScreenCapture = runFlameshot "screen"
|
||
|
|
||
|
runDesktopCapture :: X ()
|
||
|
runDesktopCapture = runFlameshot "full"
|