xmonad.hs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import XMonad
  2. import XMonad.Config.Desktop
  3. import XMonad.Hooks.DynamicLog
  4. import XMonad.Hooks.ManageDocks
  5. import XMonad.Util.Run(spawnPipe, hPutStrLn)
  6. import XMonad.Util.EZConfig(additionalKeys)
  7. -- For shutdown commands and keys
  8. import Data.Map
  9. import XMonad.Prompt
  10. import XMonad.Prompt.XMonad
  11. import System.Exit
  12. main = do
  13. xmproc <- spawnPipe "xmobar"
  14. xmonad $ docks defaultConfig
  15. { manageHook = manageDocks <+> manageHook defaultConfig
  16. , layoutHook = avoidStruts $ layoutHook defaultConfig
  17. , logHook = dynamicLogWithPP xmobarPP
  18. { ppOutput = hPutStrLn xmproc
  19. , ppTitle = xmobarColor "green" "" . shorten 50
  20. }
  21. , startupHook = startup
  22. , terminal = "gnome-terminal"
  23. , modMask = mod4Mask
  24. } `additionalKeys`
  25. [ ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
  26. , ((0, xK_Print), spawn "scrot")
  27. , ((mod4Mask, xK_p ), spawn "rofi -show run")
  28. , ((mod4Mask .|. shiftMask, xK_q),
  29. xmonadPrompt defaultXPConfig
  30. { promptKeymap = fromList
  31. [ ((0, xK_r), do
  32. spawn "emacsclient -e '(kill emacs)'"
  33. spawn "systemctl reboot")
  34. , ((shiftMask, xK_s), do
  35. spawn "emacsclient -e '(kill emacs)'"
  36. spawn "sudo poweroff")
  37. , ((0, xK_e), do
  38. spawn "emacsclient -e '(kill emacs)'"
  39. io $ exitWith ExitSuccess)
  40. , ((0, xK_l), spawn "xscreensaver-command -lock")
  41. , ((0, xK_s), do
  42. spawn "xscreensaver-command -lock"
  43. spawn "systemctl suspend")
  44. , ((0, xK_Escape), quit)
  45. ]
  46. , defaultText = "(r) Reboot, (S) Shutdown, (e) Exit, (l) Lock, (s) Sleep"
  47. })
  48. ]
  49. startup :: X ()
  50. startup = do
  51. spawn "feh --bg-scale ~/Owncloud/Backgrounds/Xmbindings.png"
  52. spawn "owncloud"
  53. spawn "trayer --transparent true --alpha 0 --tint 0x00000000 --SetDockType true --expand true --edge top --align right --width 15 --height 18"