xmonad.hs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import XMonad
  2. import XMonad.Hooks.DynamicLog
  3. import XMonad.Hooks.ManageDocks
  4. import XMonad.Util.WorkspaceCompare -- getSortByXineramaPhysicalRule
  5. import XMonad.Util.EZConfig -- additionalKeys
  6. import XMonad.Prompt
  7. import XMonad.Prompt.Window -- windowPrompt
  8. import XMonad.StackSet (focusDown)
  9. import XMonad.Layout.Grid
  10. myLayout = avoidStruts (Full ||| tiled ||| Mirror tiled ||| Grid )
  11. where
  12. tiled = Tall nmaster delta ratio
  13. nmaster = 1
  14. ratio = 1/2
  15. delta = 3/100
  16. myManageHook = composeAll
  17. [ className =? "qemu-system-x86_64" --> doFloat
  18. , className =? "st-256color" --> doShift "1"
  19. , className =? "Navigator" --> doShift "2"
  20. , className =? "Firefox" --> doShift "2" -- Theses fucking script popups
  21. , className =? "mpv" --> doShift "3"
  22. , className =? "ffplay" --> doShift "3"
  23. --, isDialog --> doFloat
  24. , className =? "Pidgin" --> doF focusDown
  25. , className =? "Navigator" --> doF focusDown
  26. , role =? "browser" --> doShift "2"
  27. ]
  28. where
  29. role = stringProperty "WM_WINDOW_ROLE"
  30. promptConfig = defaultXPConfig
  31. { font = "xft:monospace-10"
  32. , borderColor = "#1e2320"
  33. , fgColor = "#dddddd"
  34. , bgColor = "#1e2320"
  35. , fgHLight = "#ffffff"
  36. , bgHLight = "#5f5f5f"
  37. , height = 16
  38. , position = Top
  39. }
  40. main = xmonad $ docks $ def
  41. { borderWidth = 0
  42. , focusFollowsMouse = False
  43. , clickJustFocuses = False
  44. , logHook = dynamicLogString xmobarPP
  45. { ppTitle = xmobarColor "green" ""
  46. , ppVisible = wrap "[" "]"
  47. , ppSort = getSortByXineramaPhysicalRule
  48. } >>= xmonadPropLog
  49. , modMask = mod4Mask
  50. , manageHook = manageHook def <+> myManageHook
  51. , layoutHook = myLayout
  52. , handleEventHook = handleEventHook def <+> docksEventHook
  53. , terminal = "st"
  54. }
  55. `additionalKeys`
  56. [ ((mod4Mask, xK_b), sendMessage ToggleStruts)
  57. , ((mod4Mask .|. shiftMask, xK_g ), windowPrompt promptConfig { autoComplete = Just 500000 } Goto allWindows)
  58. , ((mod4Mask .|. shiftMask, xK_b ), windowPrompt promptConfig Bring allWindows)
  59. ]