import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.SetWMName import XMonad.Hooks.ManageDocks import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.StatusBar.PP import XMonad.Util.Run import XMonad.Util.NamedScratchpad import XMonad.Util.EZConfig(additionalKeys) import XMonad.Layout.Spacing import XMonad.Prompt import XMonad.Prompt.Shell import System.IO import XMonad.Actions.SimpleDate import XMonad.Actions.WindowBringer import XMonad.Util.SpawnOnce import XMonad.Actions.FindEmptyWorkspace import XMonad.Actions.GridSelect import XMonad.Prompt.Ssh import XMonad.Prompt.Man import qualified XMonad.StackSet as W myStartupHook :: X () myStartupHook = do spawnOnce "nitrogen --set-scaled --random wallpapers/" spawnOnce "picom --config ~/.config/picom/picom.conf" spawnOnce "dunst --config ~/dotfiles/dunst/dunstrc" spawnOnce "stalonetray --config ~/dotfiles/stalonetray/stalonetrayrc" spawnOnce "nm-applet" spawnOnce "volumeicon" spawnOnce "transmission-daemon" spawnOnce "setxkbmap -option ctrl:nocaps" spawnOnce "xset -b" spawnOnce "copyq" spawnOnce "blueman-applet" setWMName "LG3D" myScratchPads :: [NamedScratchpad] myScratchPads = [ NS "terminal" "st -n scratchpad -t scratchpad" (resource =? "scratchpad") (customFloating $ W.RationalRect 0.1 0.1 0.8 0.8) ] main :: IO () main = do xmproc <- spawnPipe "xmobar /home/krrish/.config/xmobar/xmobarrc" xmonad .ewmhFullscreen .ewmh .docks $ def { manageHook = manageDocks <+> namedScratchpadManageHook myScratchPads <+> manageHook def , layoutHook = avoidStruts $ spacingRaw True (Border 0 8 8 8) True (Border 8 8 8 8) True $layoutHook def , startupHook = myStartupHook , terminal = "st" , logHook = dynamicLogWithPP $ filterOutWsPP [scratchpadWorkspaceTag] xmobarPP { ppOutput = hPutStrLn xmproc , ppTitle = const "" , ppCurrent = xmobarColor "#7aa2f7" "" , ppVisible = xmobarColor "#bb9af7" "" , ppHidden = xmobarColor "#565f89" "" , ppHiddenNoWindows = xmobarColor "#414868" "" , ppUrgent = xmobarColor "#f7768e" "" , ppSep = " " } , modMask = mod4Mask , borderWidth = 2 , normalBorderColor = "#292e42" , focusedBorderColor = "#7aa2f7" } `additionalKeys` [ ((controlMask .|. mod1Mask, xK_l), spawn "slock") , ((controlMask, xK_Print), spawn "sleep 0.2; ~/scripts/screenshot -s") , ((mod1Mask, xK_m), spawn "st cmus") , ((mod4Mask .|. shiftMask, xK_q), spawn "poweroff") , ((mod4Mask, xK_p), spawn "dmenu_run -c -l 9 -p run: ") , ((mod4Mask, xK_d), date) , ((mod4Mask, xK_s), spawn "search") , ((mod4Mask, xK_y), spawn "st node /home/krrish/programs/youtube-cli-app/youtube.js") , ((mod4Mask .|. shiftMask, xK_r), spawn "reboot") , ((mod4Mask, xK_b), spawn "notify-send 'Firefox' 'Opening firefox'; firefox") , ((mod4Mask .|. controlMask, xK_x), shellPrompt def) , ((mod4Mask .|. shiftMask, xK_t), spawn "stalonetray -p") , ((mod4Mask .|. shiftMask, xK_n), spawn "st newsboat") , ((mod4Mask .|. shiftMask, xK_x), spawn "st vim .xmonad/xmonad.hs") , ((mod4Mask .|. shiftMask, xK_u), spawn "st sudo pacman -Syu") , ((mod4Mask .|. shiftMask, xK_e), spawn "st setxkbmap us") , ((mod4Mask .|. shiftMask, xK_v), spawn "copyq show") , ((mod4Mask .|. shiftMask, xK_i), spawn "notify-send 'Intellij Idea' 'Opening Intellij Idea'; /home/krrish/idea/bin/idea.sh") , ((0, xK_Print), spawn "~/scripts/screenshot") , ((0, 0x1008FF11), spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%") , ((0, 0x1008FF13), spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%") , ((mod4Mask .|. shiftMask, xK_m), spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%") , ((mod4Mask .|. shiftMask, xK_p), spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%") , ((0, 0x1008FF12), spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle") , ((0, 0x1008FF02), spawn "brightnessctl set 10%+") , ((0, 0x1008FF03), spawn "brightnessctl set 10%-") , ((mod4Mask, xK_e), viewEmptyWorkspace) , ((mod4Mask, xK_g), goToSelected def) , ((mod4Mask .|. shiftMask, xK_e), tagToEmptyWorkspace) , ((mod4Mask .|. shiftMask, xK_s), sshPrompt def) , ((mod4Mask .|. controlMask, xK_m), manPrompt def) , ((mod4Mask .|. shiftMask, xK_f), spawnSelected def ["keepassxc", "brave", "pcmanfm"]) , ((mod4Mask .|. shiftMask, xK_w), gotoMenuArgs' "dmenu" ["-l", "9", "-p", "Window:"]) , ((mod4Mask .|. shiftMask, xK_space), namedScratchpadAction myScratchPads "terminal") ]