Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import XMonad hiding ( (|||) )
  2. import XMonad.Config.Xfce
  3. import XMonad.Util.EZConfig
  4. import XMonad.Util.Replace(replace)
  5. import XMonad.Hooks.EwmhDesktops
  6. import XMonad.Hooks.ManageDocks
  7. import XMonad.Hooks.ManageHelpers
  8. import qualified XMonad.StackSet as W
  9. import XMonad.Layout.LayoutCombinators
  10. import XMonad.Layout.LayoutScreens
  11. import XMonad.Layout.PerWorkspace
  12. import XMonad.Layout.WindowNavigation
  13. -- import XMonad.Layout.TwoPane
  14. import XMonad.Layout.Circle
  15.  
  16.  
  17. import XMonad.Actions.Navigation2D
  18. import XMonad.Actions.WithAll
  19. import XMonad.Layout.NoFrillsDecoration
  20. import XMonad.Layout.Tabbed
  21. import XMonad.Layout.ResizableTile
  22. import XMonad.Layout.Accordion
  23. import XMonad.Layout.Simplest
  24. import XMonad.Layout.SubLayouts
  25. import XMonad.Layout.Gaps
  26. import XMonad.Layout.Spacing
  27. import XMonad.Operations
  28.  
  29.  
  30. main = do
  31.     replace
  32.     xmonad $ withNavigation2DConfig myNavigation2DConfig
  33.            $ ewmh xfceConfig
  34.         { terminal = "urxvt"
  35.         , modMask     = mod4Mask
  36.         , borderWidth = 2
  37.         , normalBorderColor = myNormalBorderColor
  38.         , focusedBorderColor = myFocusedBorderColor
  39.         , startupHook = myStartupHook
  40.         , manageHook = myManageHook <+> manageDocks <+> manageHook xfceConfig
  41.         , layoutHook = myLayoutHook
  42.         } `additionalKeysP` myKeys
  43.  
  44. myNormalBorderColor     = "#000000"
  45. myFocusedBorderColor    = active
  46.  
  47. --------------------------------------------------------------------------------
  48. -- key bindigns
  49. --------------------------------------------------------------------------------
  50. myKeys =
  51.     [
  52.       --------------------------------------------------------------------------
  53.       -- Launchers
  54.       ("M-p", spawn "xfce4-appfinder")
  55.     , ("M-e", spawn "thunar")
  56.     , ("M-o", spawn "emacsclient -c")
  57.     , ("M-s", spawn "xfce4-settings-manager")
  58.     , ("M-S-t", spawn "gnome-system-monitor")
  59.     , ("<Print>", spawn "xfce4-screenshooter")
  60.     , ("M-g", spawn "google-chrome-stable")
  61.       --------------------------------------------------------------------------
  62.     --
  63.       --------------------------------------------------------------------------
  64.       -- Windows Manage
  65.     , ("M-j", windowGo D True)
  66.     , ("M-k", windowGo U True)
  67.     , ("M-h", windowGo L True)
  68.     , ("M-l", windowGo R True)
  69.     , ("M-w h", sendMessage $ pullWindow L)
  70.     , ("M-w l", sendMessage $ pullWindow R)
  71.     , ("M-w j", sendMessage $ pullWindow D)
  72.     , ("M-w k", sendMessage $ pullWindow U)
  73.     , ("M-w M-h", sendMessage $ pushWindow L)
  74.     , ("M-w M-l", sendMessage $ pushWindow R)
  75.     , ("M-w M-j", sendMessage $ pushWindow D)
  76.     , ("M-w M-k", sendMessage $ pushWindow U)
  77.     , ("M-w u", withFocused $ sendMessage . UnMerge)
  78.     , ("M-w m", withFocused $ sendMessage . MergeAll)
  79.     , ("M-<Backspace>" , kill)
  80.     , ("M-S-<Backspace>", killAll)
  81.     , ("M-S-h", sendMessage Shrink)
  82.     , ("M-S-l", sendMessage Expand)
  83.     , ("M-S-j", sendMessage MirrorShrink)
  84.     , ("M-S-k", sendMessage MirrorExpand)
  85.     --
  86.     , ("M-C-j", windows W.swapDown)
  87.     , ("M-C-k", windows W.swapUp)
  88.     , ("M-'", onGroup W.focusDown')
  89.    , ("M-;", onGroup W.focusUp')
  90.     , ("M-q", sendMessage ToggleStruts)
  91.     ]
  92.  
  93. --------------------------------------------------------------------------------
  94. -- layout & workspace definition
  95. --------------------------------------------------------------------------------
  96.  
  97. base00  = "#657b83"
  98. base01  = "#586e75"
  99. base02  = "#073642"
  100. base03  = "#002b36"
  101. red     = "#dc322f"
  102. blue    = "#268bd2"
  103. yellow  = "#b58900"
  104.  
  105. active      = blue
  106. activeWarn  = red
  107. inactive    = base02
  108. focusColor  = blue
  109. unfocusColor = base02
  110.  
  111. myFont      = "xft:Monospace-12"
  112.  
  113. topBarTheme = def
  114.     { fontName              = myFont
  115.     , inactiveBorderColor   = base03
  116.     , inactiveColor         = base03
  117.     , inactiveTextColor     = base03
  118.     , activeBorderColor     = active
  119.     , activeColor           = active
  120.     , activeTextColor       = active
  121.     , urgentBorderColor     = red
  122.     , urgentTextColor       = yellow
  123.     , decoHeight            = 10
  124.     }
  125.  
  126. myTabTheme = def
  127.     { fontName              = myFont
  128.     , activeColor           = active
  129.     , inactiveColor         = base02
  130.     , activeBorderColor     = active
  131.     , inactiveBorderColor   = base02
  132.     , activeTextColor       = base03
  133.     , inactiveTextColor     = base00
  134.     }
  135.  
  136. addTopBar = noFrillsDeco shrinkText topBarTheme
  137.  
  138. -- myTabsLayout = avoidStruts
  139. --                $ addTabs shrinkText def {fontName = "xft:Monospace-12"}
  140. --                $ Simplest
  141.  
  142. mySpacing = spacing 10
  143. myGaps = gaps [(U, 10),(D, 10),(L, 10),(R, 10)]
  144.  
  145. myFlexLayout = avoidStruts
  146.                $ windowNavigation
  147.                $ addTopBar
  148.                $ addTabs shrinkText myTabTheme
  149.                $ subLayout [] (Simplest ||| Accordion)
  150.                -- $ mySpacing $ myGaps $ ResizableTall 1 (0.025) (2/3) []
  151.                $ ResizableTall 1 (0.025) (2/3) []
  152.  
  153. defaultLayouts = avoidStruts $ myFlexLayout ||| Circle ||| Full
  154.  
  155. -- myLayoutHook = onWorkspace "2" myTabsLayout $
  156. --                onWorkspace "3" myFlexLayout $
  157. --                defaultLayouts
  158. myLayoutHook = defaultLayouts
  159.  
  160. myNavigation2DConfig = def
  161.     { defaultTiledNavigation = centerNavigation
  162.     , floatNavigation = centerNavigation
  163.     , screenNavigation = lineNavigation
  164.     , layoutNavigation = [("Full", centerNavigation)]
  165.     , unmappedWindowRect = [("Full", singleWindowRect)]
  166.     }
  167.  
  168.  
  169. --------------------------------------------------------------------------------
  170. -- auto startup
  171. --------------------------------------------------------------------------------
  172. myStartupHook = do
  173.     spawn "google-chrome-stable"
  174.     spawn "urxvt"
  175.     spawn "compton"
  176.     spawn "emacs --daemon"
  177.     spawn "thunar"
  178.     spawn "~/.xmonad/startup.sh"
  179.     spawn "xfce4-panel -r"
  180.     spawn "xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 2" -- always hide xfce4-panel
  181.     spawn "xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 0" -- never hide xfce4-panel
  182.     refresh
  183.     -- spawn ""
  184.  
  185. --------------------------------------------------------------------------------
  186. -- Application manage hooks
  187. --------------------------------------------------------------------------------
  188. myManageHook = composeAll
  189.                [ className                     =? "Xfce4-notifyd"           --> doIgnore
  190.                , className                     =? "URxvt"                   --> doRectFloat (W.RationalRect 0.2 0.2 0.7 0.7)
  191.                , className                     =? "Xfrun4"                  --> doCenterFloat
  192.                , className                     =? "Wine"                    --> doCenterFloat
  193.                , className                     =? "Google-chrome"           --> doShift "1"
  194.                , className                     =? "Thunar"                  --> doShift "2"
  195.                , className                     =? "Emacs"                   --> doShift "3"
  196.                , appName                       =? "libreoffice"             --> doShift "4"
  197.                , title                         =? "LibreOffice"             --> doShift "4"
  198.                , appName                       =? "VirtualBox"              --> doShift "6"
  199.                , className                     =? "Skype"                   --> doShift "5"
  200.                , className                     =? "Gmpc"                    --> doCenterFloat
  201.                , className                     =? "mpv"                     --> doCenterFloat
  202.                , className                     =? "GoldenDict"              --> doCenterFloat
  203.                , className                     =? "Catfish"                 --> doCenterFloat
  204.                , className                     =? "Xfce4-settings-manager"  --> doCenterFloat
  205.                , className                     =? "Xfce4-appfinder"         --> doCenterFloat
  206.                , className                     =? "Slack"                   --> doCenterFloat
  207.                , className                     =? "Gedit"                   --> doCenterFloat
  208.                , className                     =? "Evolution"               --> doCenterFloat
  209.                , className                     =? "Gnome-system-monitor"    --> doCenterFloat
  210.                , className                     =? "Org.gnome.gedit"         --> doCenterFloat
  211.                , className                     =? "File-roller"             --> doCenterFloat
  212.                , className                     =? "Xfce4-screenshooter"     --> doCenterFloat
  213.                , className                     =? "Pamac-manager"           --> doCenterFloat
  214.                , stringProperty "WM_ICON_NAME" =? "File Operation Progress" --> doCenterFloat
  215.                ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement