Files
dotfiles/xmonad/xmonad.hs
T
2026-10-18 09:21:12 +05:45

110 lines
4.6 KiB
Haskell

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")
]