|  | @@ -3,13 +3,18 @@ import XMonad.Config.Desktop
 | 
											
												
													
														|  |  import XMonad.Hooks.DynamicLog
 |  |  import XMonad.Hooks.DynamicLog
 | 
											
												
													
														|  |  import XMonad.Hooks.ManageDocks
 |  |  import XMonad.Hooks.ManageDocks
 | 
											
												
													
														|  |  import XMonad.Util.Run(spawnPipe, hPutStrLn, runProcessWithInput)
 |  |  import XMonad.Util.Run(spawnPipe, hPutStrLn, runProcessWithInput)
 | 
											
												
													
														|  | -import XMonad.Util.EZConfig(additionalKeys)
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | --- For shutdown commands and keys
 |  | 
 | 
											
												
													
														|  | 
 |  | +-- Layouts
 | 
											
												
													
														|  | 
 |  | +import XMonad.Layout.Spacing(smartSpacing)
 | 
											
												
													
														|  | 
 |  | +import XMonad.Layout.Tabbed(simpleTabbed)
 | 
											
												
													
														|  | 
 |  | +import XMonad.Layout.NoBorders
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +-- Shutdown commands and keys
 | 
											
												
													
														|  |  import Data.Map(fromList)
 |  |  import Data.Map(fromList)
 | 
											
												
													
														|  |  import XMonad.Prompt
 |  |  import XMonad.Prompt
 | 
											
												
													
														|  |  import XMonad.Prompt.XMonad
 |  |  import XMonad.Prompt.XMonad
 | 
											
												
													
														|  |  import System.Exit(ExitCode(ExitSuccess), exitWith)
 |  |  import System.Exit(ExitCode(ExitSuccess), exitWith)
 | 
											
												
													
														|  | 
 |  | +import XMonad.Util.EZConfig(additionalKeys)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  -- Brightness and audio keys
 |  |  -- Brightness and audio keys
 | 
											
												
													
														|  |  import Graphics.X11.ExtraTypes.XF86
 |  |  import Graphics.X11.ExtraTypes.XF86
 | 
											
										
											
												
													
														|  | @@ -17,78 +22,20 @@ import Graphics.X11.ExtraTypes.XF86
 | 
											
												
													
														|  |  main = do
 |  |  main = do
 | 
											
												
													
														|  |    xmproc <- spawnPipe "xmobar"
 |  |    xmproc <- spawnPipe "xmobar"
 | 
											
												
													
														|  |    xmonad $ docks defaultConfig
 |  |    xmonad $ docks defaultConfig
 | 
											
												
													
														|  | -        { manageHook = manageDocks <+> manageHook defaultConfig
 |  | 
 | 
											
												
													
														|  | -        , layoutHook = avoidStruts  $  layoutHook defaultConfig
 |  | 
 | 
											
												
													
														|  | -	, logHook = dynamicLogWithPP xmobarPP
 |  | 
 | 
											
												
													
														|  | -		{ ppOutput = hPutStrLn xmproc
 |  | 
 | 
											
												
													
														|  | -		, ppTitle = xmobarColor "green" "" . shorten 50
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -        , startupHook = startup
 |  | 
 | 
											
												
													
														|  | -        , terminal    = "gnome-terminal"
 |  | 
 | 
											
												
													
														|  | -	, modMask     = mod4Mask
 |  | 
 | 
											
												
													
														|  | -	} `additionalKeys`
 |  | 
 | 
											
												
													
														|  | -        [
 |  | 
 | 
											
												
													
														|  | -          -- scrot
 |  | 
 | 
											
												
													
														|  | -          ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
 |  | 
 | 
											
												
													
														|  | -        , ((0, xK_Print), spawn "scrot")
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        -- rofi
 |  | 
 | 
											
												
													
														|  | -        , ((mod4Mask, xK_p ), spawn "rofi -show run")
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        -- shutdown
 |  | 
 | 
											
												
													
														|  | -        , ((mod4Mask .|. shiftMask, xK_q),
 |  | 
 | 
											
												
													
														|  | -           xmonadPrompt defaultXPConfig
 |  | 
 | 
											
												
													
														|  | -           { promptKeymap = fromList
 |  | 
 | 
											
												
													
														|  | -             [ ((0, xK_r), do
 |  | 
 | 
											
												
													
														|  | -                   spawn "emacsclient -e '(kill emacs)'"
 |  | 
 | 
											
												
													
														|  | -                   spawn "systemctl reboot")
 |  | 
 | 
											
												
													
														|  | -             , ((0 , xK_s), do
 |  | 
 | 
											
												
													
														|  | -                   spawn "emacsclient -e '(kill emacs)'"
 |  | 
 | 
											
												
													
														|  | -                   spawn "sudo poweroff")
 |  | 
 | 
											
												
													
														|  | -             , ((0, xK_e), do
 |  | 
 | 
											
												
													
														|  | -                   spawn "emacsclient -e '(kill emacs)'"
 |  | 
 | 
											
												
													
														|  | -                   io $ exitWith ExitSuccess)
 |  | 
 | 
											
												
													
														|  | -             , ((0, xK_l),  do
 |  | 
 | 
											
												
													
														|  | -                   spawn "xscreensaver-command -lock"
 |  | 
 | 
											
												
													
														|  | -                   quit)
 |  | 
 | 
											
												
													
														|  | -             , ((0, xK_z), do
 |  | 
 | 
											
												
													
														|  | -                   spawn "xscreensaver-command -lock"
 |  | 
 | 
											
												
													
														|  | -                   spawn "systemctl suspend"
 |  | 
 | 
											
												
													
														|  | -                   quit)
 |  | 
 | 
											
												
													
														|  | -             , ((0, xK_Escape), quit)
 |  | 
 | 
											
												
													
														|  | -             ]
 |  | 
 | 
											
												
													
														|  | -           , defaultText = "(r) Reboot, (s) Shutdown, (e) Exit, (l) Lock, (z) Sleep"
 |  | 
 | 
											
												
													
														|  | -           })
 |  | 
 | 
											
												
													
														|  | -        -- pulseaudio
 |  | 
 | 
											
												
													
														|  | -        , ((0, xF86XK_AudioRaiseVolume),
 |  | 
 | 
											
												
													
														|  | -               spawn "pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo +5%")
 |  | 
 | 
											
												
													
														|  | -        , ((0, xF86XK_AudioLowerVolume),
 |  | 
 | 
											
												
													
														|  | -               spawn "pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo -XF86AudioMute exec --no-startup-id pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo toggle5%")
 |  | 
 | 
											
												
													
														|  | -        , ((0, xF86XK_AudioMute),
 |  | 
 | 
											
												
													
														|  | -               spawn "pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo toggle")
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        -- brightness
 |  | 
 | 
											
												
													
														|  | -        , ((0, xF86XK_MonBrightnessUp),
 |  | 
 | 
											
												
													
														|  | -           let
 |  | 
 | 
											
												
													
														|  | -              returnValM = fmap init $ runProcessWithInput "xbacklight" [] ""
 |  | 
 | 
											
												
													
														|  | -           in do
 |  | 
 | 
											
												
													
														|  | -             currentBrightness <- returnValM
 |  | 
 | 
											
												
													
														|  | -             if (read currentBrightness :: Double) == 0 then
 |  | 
 | 
											
												
													
														|  | -               spawn "xbacklight -set 2"
 |  | 
 | 
											
												
													
														|  | -             else
 |  | 
 | 
											
												
													
														|  | -               spawn "xbacklight -inc 5")
 |  | 
 | 
											
												
													
														|  | -        , ((0, xF86XK_MonBrightnessDown), spawn "xbacklight -dec 5")
 |  | 
 | 
											
												
													
														|  | -           -- Another option for brightness configuration: never let it reach 0.
 |  | 
 | 
											
												
													
														|  | -           {-|
 |  | 
 | 
											
												
													
														|  | -           let
 |  | 
 | 
											
												
													
														|  | -              returnValM = fmap init $ runProcessWithInput "xbacklight" [] ""
 |  | 
 | 
											
												
													
														|  | -           in do
 |  | 
 | 
											
												
													
														|  | -             currentBrightness <- returnValM
 |  | 
 | 
											
												
													
														|  | -             if (read currentBrightness :: Double) - 5 >= 0 then
 |  | 
 | 
											
												
													
														|  | -               spawn "xbacklight -dec 5"
 |  | 
 | 
											
												
													
														|  | -             else return ())
 |  | 
 | 
											
												
													
														|  | -           -}
 |  | 
 | 
											
												
													
														|  | -        ]
 |  | 
 | 
											
												
													
														|  | 
 |  | +    { manageHook = manageDocks <+> manageHook defaultConfig
 | 
											
												
													
														|  | 
 |  | +    , layoutHook = smartBorders $ withBorder 2 $ avoidStruts $ smartSpacing 5 $
 | 
											
												
													
														|  | 
 |  | +                   Tall 1 (3/100) (1/2) |||
 | 
											
												
													
														|  | 
 |  | +                   Mirror (Tall 1 (3/100) (1/2)) |||
 | 
											
												
													
														|  | 
 |  | +                   Full |||
 | 
											
												
													
														|  | 
 |  | +                   simpleTabbed
 | 
											
												
													
														|  | 
 |  | +    , logHook = dynamicLogWithPP xmobarPP
 | 
											
												
													
														|  | 
 |  | +      { ppOutput = hPutStrLn xmproc
 | 
											
												
													
														|  | 
 |  | +      , ppTitle = xmobarColor "green" "" . shorten 50
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    , startupHook = startup
 | 
											
												
													
														|  | 
 |  | +    , terminal    = "gnome-terminal"
 | 
											
												
													
														|  | 
 |  | +    , modMask     = mod4Mask
 | 
											
												
													
														|  | 
 |  | +    } `additionalKeys` myKeys
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  startup :: X ()
 |  |  startup :: X ()
 | 
											
												
													
														|  |  startup = do
 |  |  startup = do
 | 
											
										
											
												
													
														|  | @@ -97,3 +44,68 @@ startup = do
 | 
											
												
													
														|  |    spawn "trayer --transparent true --alpha 0 --tint 0x00000000 --SetDockType true --expand true --edge top --align right --width 15 --height 18"
 |  |    spawn "trayer --transparent true --alpha 0 --tint 0x00000000 --SetDockType true --expand true --edge top --align right --width 15 --height 18"
 | 
											
												
													
														|  |    spawn "xfce4-clipman"
 |  |    spawn "xfce4-clipman"
 | 
											
												
													
														|  |    spawn "xbacklight -set 12"
 |  |    spawn "xbacklight -set 12"
 | 
											
												
													
														|  | 
 |  | +  spawn "compton"
 | 
											
												
													
														|  | 
 |  | +  spawn "xscreensaver -nosplash"
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +myKeys = [
 | 
											
												
													
														|  | 
 |  | +  -- scrot
 | 
											
												
													
														|  | 
 |  | +  ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
 | 
											
												
													
														|  | 
 |  | +  , ((0, xK_Print), spawn "scrot")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  -- rofi
 | 
											
												
													
														|  | 
 |  | +  , ((mod4Mask, xK_p ), spawn "rofi -show run")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  -- shutdown
 | 
											
												
													
														|  | 
 |  | +  , ((mod4Mask .|. shiftMask, xK_q),
 | 
											
												
													
														|  | 
 |  | +     xmonadPrompt defaultXPConfig
 | 
											
												
													
														|  | 
 |  | +     { promptKeymap = fromList
 | 
											
												
													
														|  | 
 |  | +       [ ((0, xK_r), do
 | 
											
												
													
														|  | 
 |  | +             spawn "emacsclient -e '(kill emacs)'"
 | 
											
												
													
														|  | 
 |  | +             spawn "systemctl reboot")
 | 
											
												
													
														|  | 
 |  | +       , ((0 , xK_s), do
 | 
											
												
													
														|  | 
 |  | +             spawn "emacsclient -e '(kill emacs)'"
 | 
											
												
													
														|  | 
 |  | +             spawn "sudo poweroff")
 | 
											
												
													
														|  | 
 |  | +       , ((0, xK_e), do
 | 
											
												
													
														|  | 
 |  | +             spawn "emacsclient -e '(kill emacs)'"
 | 
											
												
													
														|  | 
 |  | +             io $ exitWith ExitSuccess)
 | 
											
												
													
														|  | 
 |  | +       , ((0, xK_l),  do
 | 
											
												
													
														|  | 
 |  | +             spawn "xscreensaver-command -lock"
 | 
											
												
													
														|  | 
 |  | +             quit)
 | 
											
												
													
														|  | 
 |  | +       , ((0, xK_z), do
 | 
											
												
													
														|  | 
 |  | +             spawn "xscreensaver-command -lock"
 | 
											
												
													
														|  | 
 |  | +             spawn "systemctl suspend"
 | 
											
												
													
														|  | 
 |  | +             quit)
 | 
											
												
													
														|  | 
 |  | +       , ((0, xK_Escape), quit)
 | 
											
												
													
														|  | 
 |  | +       ]
 | 
											
												
													
														|  | 
 |  | +     , defaultText = "(r) Reboot, (s) Shutdown, (e) Exit, (l) Lock, (z) Sleep"
 | 
											
												
													
														|  | 
 |  | +     })
 | 
											
												
													
														|  | 
 |  | +  -- pulseaudio
 | 
											
												
													
														|  | 
 |  | +  , ((0, xF86XK_AudioRaiseVolume),
 | 
											
												
													
														|  | 
 |  | +         spawn "pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo +5%")
 | 
											
												
													
														|  | 
 |  | +  , ((0, xF86XK_AudioLowerVolume),
 | 
											
												
													
														|  | 
 |  | +         spawn "pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo -XF86AudioMute exec --no-startup-id pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo toggle5%")
 | 
											
												
													
														|  | 
 |  | +  , ((0, xF86XK_AudioMute),
 | 
											
												
													
														|  | 
 |  | +         spawn "pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo toggle")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  -- brightness
 | 
											
												
													
														|  | 
 |  | +  , ((0, xF86XK_MonBrightnessUp),
 | 
											
												
													
														|  | 
 |  | +     let
 | 
											
												
													
														|  | 
 |  | +        returnValM = fmap init $ runProcessWithInput "xbacklight" [] ""
 | 
											
												
													
														|  | 
 |  | +     in do
 | 
											
												
													
														|  | 
 |  | +       currentBrightness <- returnValM
 | 
											
												
													
														|  | 
 |  | +       if (read currentBrightness :: Double) == 0 then
 | 
											
												
													
														|  | 
 |  | +         spawn "xbacklight -set 2"
 | 
											
												
													
														|  | 
 |  | +       else
 | 
											
												
													
														|  | 
 |  | +         spawn "xbacklight -inc 5")
 | 
											
												
													
														|  | 
 |  | +  , ((0, xF86XK_MonBrightnessDown), spawn "xbacklight -dec 5")
 | 
											
												
													
														|  | 
 |  | +     -- Another option for brightness configuration: never let it reach 0.
 | 
											
												
													
														|  | 
 |  | +     {-|
 | 
											
												
													
														|  | 
 |  | +     let
 | 
											
												
													
														|  | 
 |  | +        returnValM = fmap init $ runProcessWithInput "xbacklight" [] ""
 | 
											
												
													
														|  | 
 |  | +     in do
 | 
											
												
													
														|  | 
 |  | +       currentBrightness <- returnValM
 | 
											
												
													
														|  | 
 |  | +       if (read currentBrightness :: Double) - 5 >= 0 then
 | 
											
												
													
														|  | 
 |  | +         spawn "xbacklight -dec 5"
 | 
											
												
													
														|  | 
 |  | +       else return ())
 | 
											
												
													
														|  | 
 |  | +     -}
 | 
											
												
													
														|  | 
 |  | +  ]
 |