aboutsummaryrefslogtreecommitdiff
path: root/xmonad
diff options
context:
space:
mode:
Diffstat (limited to 'xmonad')
-rw-r--r--xmonad/.config/xmonad/xmonad.hs80
1 files changed, 80 insertions, 0 deletions
diff --git a/xmonad/.config/xmonad/xmonad.hs b/xmonad/.config/xmonad/xmonad.hs
new file mode 100644
index 0000000..a79b9d2
--- /dev/null
+++ b/xmonad/.config/xmonad/xmonad.hs
@@ -0,0 +1,80 @@
+import XMonad
+
+import XMonad.Hooks.DynamicLog
+import XMonad.Hooks.EwmhDesktops
+import XMonad.Hooks.StatusBar
+import XMonad.Hooks.StatusBar.PP
+import XMonad.Layout.Spacing
+import XMonad.Layout.NoBorders
+import XMonad.Util.EZConfig
+
+import qualified XMonad.StackSet as W
+import qualified Data.Map as M
+
+-- TODO: xres colors, fullscreen mode shows open windows
+
+main :: IO ()
+main = xmonad
+ $ ewmhFullscreen
+ $ ewmh
+ $ withEasySB (statusBarProp "polybar" (pure def)) defToggleStrutsKey
+ $ customConfig
+
+myMod = mod4Mask
+myTerminal = "st"
+myLayout = spacingWithEdge 6 $ Tall 1 (3/100) (1/2) ||| smartBorders Full
+
+customConfig = def
+ { terminal = myTerminal
+ , borderWidth = 3
+ , modMask = myMod
+ , normalBorderColor = "#1e1e2e"
+ , focusedBorderColor = "#6d82cf"
+ , layoutHook = myLayout
+ } `removeKeysP` removeKeys'
+ `additionalKeysP` additionalKeys'
+ `additionalMouseBindings` additionalMouseKeys'
+
+additionalMouseKeys' =
+ [ ((myMod, 2), \w -> withFocused $ windows . W.sink)
+ ]
+
+additionalKeys' =
+ [ ("M-<Return>", spawn myTerminal )
+ , ("M-<Space>", spawn "dmenu_run" )
+ , ("M-<Escape>", spawn "powermenu" )
+ , ("M-c", spawn "clipmenu" )
+ , ("M-a", spawn "passmenu" )
+ -- WM
+ , ("M-S-r", spawn "xmonad --recompile && xmonad --restart" )
+ , ("M-f", sendMessage NextLayout )
+ , ("M-z", windows W.swapMaster )
+ , ("M-r", refresh )
+ , ("M-q", kill )
+ -- Multimedia keys
+ , ("<Print>", spawn "screenshot full" )
+ , ("S-<Print>", spawn "screenshot select" )
+ , ("<XF86AudioPrev>", spawn "musctl previous" )
+ , ("<XF86AudioNext>", spawn "musctl next" )
+ , ("<XF86AudioPlay>", spawn "musctl toggle" )
+ , ("M-<XF86AudioPlay>", spawn "musctl notify" )
+ , ("<XF86AudioLowerVolume>", spawn "volctl decrease" )
+ , ("<XF86AudioRaiseVolume>", spawn "volctl increase" )
+ , ("<XF86AudioMute>", spawn "volctl mute" )
+ , ("M-<XF86AudioMute>", spawn "mute" )
+ , ("<XF86MonBrightnessUp>", spawn "brightness up monitor" )
+ , ("<XF86MonBrightnessDown>", spawn "brightness down monitor" )
+ , ("M-<XF86MonBrightnessUp>", spawn "redshift -P -O 3500" )
+ , ("M-<XF86MonBrightnessDown>", spawn "redshift -x" )
+ ]
+
+removeKeys' =
+ [ "M-S-<Return>"
+ , "M-S-<Tab>"
+ , "M-<Tab>"
+ , "M-<Return>"
+ , "M-m"
+ , "M-p"
+ , "M-S-c"
+ ]
+