import XMonad import XMonad.Util.EZConfig (additionalKeysP) import XMonad.Hooks.DynamicLog import XMonad.Hooks.StatusBar import XMonad.Hooks.StatusBar.PP import XMonad.Hooks.EwmhDesktops import XMonad.Util.SpawnOnce (spawnOnce) import XMonad.Layout.Spacing import Theme import NaturalGreenTheme main = do xmonad . ewmhFullscreen . ewmh . withEasySB (statusBarProp ("xmobar " ++ themeWallpaper myTheme) (pure $ themeXmobarPP myTheme)) defToggleStrutsKey $ myConfig myConfig = def { terminal = myTerminal , modMask = myModMask , borderWidth = myBorderWidth , focusedBorderColor = themeFocusedBorderColor myTheme , normalBorderColor = themeBorderColor myTheme , startupHook = myStartupHook , layoutHook = spacingWithEdge myGapSize $ myLayoutHook } `additionalKeysP` myKeybindings myTerminal = "alacritty" myModMask = mod4Mask myBorderWidth = 2 myEmacs = "emacsclient -c -a 'emacs' " myBrowser = "firefox" myWorkBrowser = "firefox -P emre@mixrank.com" myTheme = naturalGreenTheme myLauncher = ".config/rofi/launchers/type-6/launcher.sh" myPowerMenu = ".config/rofi/powermenu/type-6/powermenu.sh" myGapSize = 13 myStartupHook :: X () myStartupHook = do spawn $ "/usr/bin/xmobar " ++ themeBarConfig myTheme spawn $ "feh --bg-fill " ++ themeWallpaper myTheme spawn "xscreensaver -no-splash" spawnOnce "trayer --edge top --align right --SetDockType true --SetPartialStrut true --expand true --width 10 --transparent true --tint 0x5f5f5f --height 31" spawn "emacs --daemon" spawn "picom --experimental-backends" myKeybindings :: [(String, X())] myKeybindings = [ ("M-S-e", spawn myEmacs) , ("M-S-", spawn myWorkBrowser) , ("M-S-f", spawn myBrowser) , ("M-s", spawn "scrot -s - | xclip -selection clipboard -t image/png") , ("", spawn "brightnessctl s +4%") , ("", spawn "brightnessctl s 4%-") , ("", spawn "amixer -q sset Master 3%+") , ("", spawn "amixer -q sset Master 3%-") , ("M-", spawn myTerminal) , ("M-q", spawn "xmonad --recompile; killall xmobar; killall picom; xmonad --restart") , ("M-d", spawn myLauncher) , ("M-S-d", spawn myPowerMenu) ] myLayoutHook = tiled ||| Mirror tiled ||| Full where tiled = Tall nmaster delta ratio nmaster = 1 ratio = 1/2 delta = 3/100