Untitled

mail@pastecode.io avatar
unknown
haskell
3 years ago
2.2 kB
4
Indexable
Never
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks
import XMonad.Layout.Gaps
import XMonad.Layout.NoBorders
import XMonad.Layout.Spacing
import XMonad.Util.EZConfig (additionalKeys)
import XMonad.Util.Run (spawnPipe)

import Graphics.X11.Xlib
import Graphics.X11.Xlib.Extras
import Data.Monoid
import Data.Word

import XMonad.Hooks.ManageHelpers
import XMonad.Layout.LayoutHints

import XMonad.Actions.WindowBringer

main = do
  xmonad $
    (docks . ewmh)
      defaultConfig
        { logHook = ewmhDesktopsLogHook,
          terminal = "gnome-terminal",
          modMask = mod4Mask,
          startupHook = myStartupHook,
          manageHook = myManageHook,
          borderWidth = 5,
          normalBorderColor = "#5C1772",
          focusedBorderColor = "#53D52A",
          layoutHook = myLayoutHook,
          handleEventHook = fullscreenEventHook
        }
      `additionalKeys` [ ((mod4Mask, xK_g), spawn "chromium"),
                         ((mod4Mask, xK_d), spawn "emacs"),
                         ((mod4Mask, xK_F1), spawn "toggle_keyboard"),
                         ((mod4Mask, xK_o), gotoMenu),
                         ((mod4Mask .|. shiftMask, xK_o), bringMenu),
                         ((mod4Mask, xK_F8), spawn "sudo ~/.local/bin/vm_on.sh && virsh start win10"),
                         ((mod4Mask, xK_F9), spawn "sudo ~/.local/bin/vm_off.sh && virsh destroy win10"),
                         ((mod4Mask, xK_F11), spawn "krdc"),
                         ((mod4Mask, xK_F12), spawn "zzz.sh")
                       ]

myStartupHook = do
  spawn "bash .config/polybar/launch.sh"
  spawn "feh --bg-scale --no-xinerama ~/Pictures/space1.jpg"
  spawn "xsetroot -xcf /usr/share/icons/DMZ-White/cursors/left_ptr 44"
  spawn "scream -i virbr0 &"
--  spawn "compton &"

myLayoutHook = (avoidStruts . spacing 1 . smartBorders) (tiled ||| Mirror tiled) ||| noBorders Full
  where
    tiled = spacing 3 $ Tall nmaster delta ratio
    nmaster = 1
    ratio = 1 / 2
    delta = 2 / 100

myManageHook =
  composeAll
    [className =? "zoom" --> doFloat,
--      className =? "dota2" --> doFullFloat,
      manageDocks
    ]