Advertisement
Guest User

Untitled

a guest
Nov 6th, 2024
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. import System.Posix.Env (getEnv)
  2. import Data.Maybe (maybe)
  3.  
  4. import XMonad
  5. import XMonad.Util.XUtils
  6. -- import XMonad.Core
  7. --import XMonad.Config.Prime
  8. import XMonad.Util.Font
  9. --import FileLogger
  10. import Control.Monad
  11. import Data.List
  12. import XMonad.Util.EZConfig
  13. import XMonad.Util.Dmenu
  14. import XMonad.Util.Ungrab
  15. import XMonad.Layout.Tabbed
  16. import XMonad.Layout.Accordion
  17. import XMonad.Actions.SpawnOn
  18. import XMonad.Hooks.SetWMName
  19. import XMonad.Util.NamedScratchpad
  20. import Foreign.C.String
  21. import qualified Data.Map as M
  22. import qualified XMonad.StackSet as W
  23.  
  24. main :: IO ()
  25. main = xmonad $ def
  26. { modMask = mod4Mask
  27. ,manageHook = newManageHook
  28. ,startupHook = myStartupHook
  29. }
  30. `additionalKeysP`
  31. [ ("M-S-l", spawn "xscreensaver-command -lock")
  32. ,("M-C-s", unGrab *> spawn "scrot -s")
  33. ,("M-w", spawn "chromium-browser")
  34. ,("M-Enter", spawn "kitty")
  35. ,("M-x", kill)
  36. ,("M-d", spawn "dmenu")
  37. ,("M-f", withFocused toggleFloat)
  38. ,("M-a", namedScratchpadAction scratchpads "browser")
  39. ]
  40. where toggleFloat w = windows (\s -> if M.member w (W.floating s)
  41. then W.sink w s
  42. else (W.float w (W.RationalRect (1/3) (1/4) (1/2) (4/5)) s))
  43. scratchpads = [
  44. NS "browser" myBrowser (className =? myBrowser)
  45. (customFloating $ W.RationalRect (1/4) (1/4) (2/4) (2/4))
  46. ]
  47. runOrRaiseMasterShift :: String -> Query Bool -> X ()
  48. runOrRaiseMasterShift run query = runOrRaiseAndDo run query (\wId -> whenX (elem wId <$> visibleWindows) swapNextScreen
  49.  
  50. myBrowser = "chromium-browser"
  51.  
  52. myStartupHook :: X ()
  53. myStartupHook = composeAll
  54. [ setWMName "Songbird"
  55. ,spawnOn "1" "kitty"
  56. ,spawnOn "1" "kitty"
  57. ,spawnOn "1" "kitty"
  58. ,spawnOn "1" "kitty"
  59. ,spawnOn "1" "kitty"
  60. ,spawnOn "1" "kitty"
  61. ,spawnOn "1" "kitty"
  62. ,spawnOn "1" "kitty"
  63. ,spawnOn "1" "kitty"
  64. ]
  65. myManageHook :: ManageHook
  66. myManageHook = composeAll
  67. [ className =? "chromium-browser" --> doFloat
  68. ] <+> namedScratchpadManageHook scratchpads
  69. newManageHook = myManageHook <> manageHook def
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement