2016-09-16 14:38:11 -07:00
|
|
|
import System.Taffybar.Hooks.PagerHints (pagerHints)
|
|
|
|
|
2016-09-15 21:47:23 -07:00
|
|
|
import XMonad hiding ( (|||) )
|
2016-09-16 12:53:09 -07:00
|
|
|
import XMonad.Actions.WindowBringer
|
2016-09-15 16:57:12 -07:00
|
|
|
import XMonad.Config ()
|
2016-09-13 02:50:25 -07:00
|
|
|
import XMonad.Hooks.EwmhDesktops
|
2016-09-13 12:51:06 -07:00
|
|
|
import XMonad.Hooks.ManageDocks
|
2016-09-27 17:25:36 -07:00
|
|
|
import XMonad.Hooks.FadeInactive
|
2016-10-03 14:57:58 -07:00
|
|
|
import XMonad.Layout.BoringWindows
|
2016-09-15 21:47:23 -07:00
|
|
|
import XMonad.Layout.LayoutCombinators
|
2016-10-03 14:57:58 -07:00
|
|
|
import XMonad.Layout.Minimize
|
2016-09-27 17:27:03 -07:00
|
|
|
import XMonad.Layout.MultiColumns
|
2016-09-15 01:49:15 -07:00
|
|
|
import XMonad.Layout.MultiToggle
|
|
|
|
import XMonad.Layout.MultiToggle.Instances
|
2016-09-14 16:56:37 -07:00
|
|
|
import XMonad.Layout.NoBorders
|
|
|
|
import XMonad.Layout.Spacing
|
2016-09-16 12:50:53 -07:00
|
|
|
import qualified XMonad.StackSet as W
|
2016-09-15 21:47:23 -07:00
|
|
|
import XMonad.Util.CustomKeys
|
2016-09-14 16:56:37 -07:00
|
|
|
|
2016-09-16 14:38:11 -07:00
|
|
|
main = xmonad $ ewmh $ pagerHints def
|
2016-09-15 16:57:12 -07:00
|
|
|
{ modMask = mod4Mask
|
2016-09-13 12:51:06 -07:00
|
|
|
, terminal = "urxvt"
|
2016-09-13 17:51:12 -07:00
|
|
|
, manageHook = manageDocks <+> manageHook def
|
|
|
|
, layoutHook = myLayoutHook
|
2016-09-27 17:25:36 -07:00
|
|
|
, logHook = myLogHook
|
2016-09-16 14:33:37 -07:00
|
|
|
, handleEventHook = docksEventHook <+> fullscreenEventHook
|
2016-09-13 12:51:06 -07:00
|
|
|
, startupHook = myStartup
|
2016-10-03 14:57:58 -07:00
|
|
|
, keys = customKeys (\x -> []) addKeys
|
2016-09-15 16:57:12 -07:00
|
|
|
}
|
2016-09-09 17:48:28 -07:00
|
|
|
|
2016-09-27 17:25:36 -07:00
|
|
|
myLogHook :: X()
|
|
|
|
myLogHook = fadeInactiveLogHook 0.9
|
|
|
|
|
2016-09-16 12:50:53 -07:00
|
|
|
shiftThenView i = W.greedyView i . W.shift i
|
|
|
|
|
|
|
|
addKeys conf@XConfig {modMask = modm} =
|
2016-09-15 16:57:12 -07:00
|
|
|
[ ((modm, xK_p), spawn "rofi -show drun")
|
2016-09-19 11:07:03 -07:00
|
|
|
, ((modm .|. shiftMask, xK_p), spawn "rofi -show run")
|
2016-09-15 16:57:12 -07:00
|
|
|
, ((modm, xK_g), spawn "rofi -show window")
|
2016-10-05 01:12:34 -07:00
|
|
|
, ((modm .|. controlMask, xK_t), spawn "systemctl --user restart taffybar.service")
|
2016-09-15 16:57:12 -07:00
|
|
|
-- TODO: Change this to bringing the window to the current workspace
|
2016-09-16 12:53:09 -07:00
|
|
|
, ((modm, xK_b), bringMenuArgs' "rofi" ["-dmenu"])
|
2016-10-03 17:49:44 -07:00
|
|
|
, ((modm, xK_v), spawn "copyq paste")
|
2016-10-03 16:50:21 -07:00
|
|
|
, ((mod3Mask, xK_v), spawn "copyq_rofi.sh")
|
2016-09-15 21:47:23 -07:00
|
|
|
, ((modm .|. controlMask, xK_space), sendMessage $ JumpToLayout "Full")
|
|
|
|
, ((modm, xK_slash), sendMessage $ Toggle MIRROR)
|
2016-10-03 14:57:58 -07:00
|
|
|
, ((modm, xK_m), withFocused minimizeWindow)
|
2016-10-03 16:50:21 -07:00
|
|
|
, ((modm .|. shiftMask, xK_m), sendMessage RestoreNextMinimizedWin)
|
2016-09-16 12:50:53 -07:00
|
|
|
] ++
|
|
|
|
-- Replace original moving stuff around + greedy view bindings
|
|
|
|
[((additionalMask .|. modm, key), windows $ function workspace)
|
|
|
|
| (workspace, key) <- zip (workspaces conf) [xK_1 .. xK_9]
|
|
|
|
, (function, additionalMask) <-
|
|
|
|
[ (W.greedyView, 0)
|
|
|
|
, (W.shift, shiftMask)
|
|
|
|
, (shiftThenView, controlMask)]]
|
2016-09-15 16:57:12 -07:00
|
|
|
|
2016-09-27 17:26:06 -07:00
|
|
|
layouts = tiled ||| Full ||| multiCol [1, 1] 2 0.01 (-0.5)
|
2016-09-15 16:57:12 -07:00
|
|
|
where
|
|
|
|
tiled = Tall 1 (3/100) (1/2)
|
|
|
|
|
2016-10-03 14:57:58 -07:00
|
|
|
myLayoutHook = avoidStruts . smartSpacing 10 . noBorders . minimize
|
|
|
|
. boringWindows . mkToggle (MIRROR ?? EOT) $ layouts
|
2016-09-13 17:51:12 -07:00
|
|
|
|
2016-10-03 17:14:42 -07:00
|
|
|
myStartup = do
|
|
|
|
spawn "systemctl --user start wm.target"
|