Skip to content

Commit

Permalink
Made DPMS timeout configureable
Browse files Browse the repository at this point in the history
  • Loading branch information
skinner33 committed Jan 6, 2012
1 parent f5a3c44 commit cd4fdd6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
8 changes: 5 additions & 3 deletions src/Hlockx.hs
Expand Up @@ -8,15 +8,17 @@ import XUtils

import Control.Monad (unless)

import Foreign.C.Types (CUInt)

import Graphics.X11.Types
import Graphics.X11.Xlib
import Graphics.X11.Xlib.Extras

import System.Environment


hlockx :: Bool -> IO ()
hlockx slock = do
hlockx :: Bool -> CUInt -> IO ()
hlockx slock timeout = do
progName <- getProgName

pw <- getPasswordHash
Expand All @@ -33,7 +35,7 @@ hlockx slock = do
-- check if DPMS was enabled before enabling it
(standby, suspend, off, wasEnabled) <- getCurrentDPMSStatus dpy
_ <- dPMSEnable dpy
_ <- dPMSSetTimeouts dpy 0 0 2
_ <- dPMSSetTimeouts dpy 0 0 timeout

if slock then
eventLoop dpy pw processInputSLock
Expand Down
17 changes: 13 additions & 4 deletions src/Main.hs
Expand Up @@ -8,19 +8,24 @@ import Hlockx
import Paths_hlockx (version)
import Data.Version (showVersion)

import Foreign.C.Types (CUInt)

import System.Environment
import System.Exit
import System.IO
import System.Console.GetOpt

data Options = Options { optSLock :: Bool }
data Options = Options { optSLock :: Bool
, optTimeout :: CUInt }

startOptions :: Options
#ifdef DEF_SLOCK
startOptions = Options { optSLock = True }
startOptions = Options { optSLock = True
#else
startOptions = Options { optSLock = False }
startOptions = Options { optSLock = False
#endif
, optTimeout = 2
}

options :: [ OptDescr (Options -> IO Options) ]
options =
Expand All @@ -38,6 +43,10 @@ options =
hPutStrLn stderr (usageInfo prg options)
exitWith ExitSuccess))
"Show help"
, Option "t" ["timeout"]
(ReqArg
(\arg opt -> return opt { optTimeout = read arg }) "Seconds")
"Set DPMS timeout (default: 2s)"
, Option "s" ["slock"]
(NoArg
(\opt -> return opt { optSLock = True }))
Expand All @@ -62,4 +71,4 @@ main = do
-- Parse options, getting a list of option actions
let (actions, _, _) = getOpt RequireOrder options args
opts <- foldl (>>=) (return startOptions) actions
hlockx (optSLock opts)
hlockx (optSLock opts) (optTimeout opts)

0 comments on commit cd4fdd6

Please sign in to comment.