110 lines
4.6 KiB
Haskell
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")
|
|
]
|