Надо сгенерить имя для скриншота в конфиге XMonad.
Для генерации берётся префикс, к нему добавляются дата и время и расширение .png. Дату и время можно получить только из монады IO.
Как это оформить?
В посте мешанина, поэтому вот код:
getCurrentDateAndTime :: ClockTime -> String
getCurrentDateAndTime = formatCalendarTime defaultTimeLocale "%c" . toUTCTime
genname :: String -> String
genname name = "~/screenshots/xmonad-" ++ name ++ ".png"
genfilename :: String
genfilename = genname $ getClockTime >>= getCurrentDateAndTime
myKeys = [ ("<Print>" , spawn $ "imagemagick import " ++ genfilename )
, ("M-r" , spawn "xmonad --restart" )
, ("M-j" , prevWS )
, ("M-k" , nextWS )
, ("M-f" , spawn "firefox-bin" )
, ("M-s" , spawn "gksudo /usr/bin/pm-suspend" )
, ("C-M-r" , spawn "gksudo /usr/bin/shutdown -r now" )
, ("C-M-s" , spawn "gksudo /usr/bin/shutdown -h now" )
]