diff --git a/xmonad.hs b/xmonad.hs index dfe1cf7..d2f9234 100644 --- a/xmonad.hs +++ b/xmonad.hs @@ -1,11 +1,30 @@ ---IMPORTS +-- xmonad.hs +-- xmonad example config file. +-- +-- A template showing all available configuration hooks, +-- and how to override the defaults in your own xmonad.hs conf file. +-- +-- Normally, you'd only override those defaults you care about. +-- import XMonad import Data.Monoid import System.Exit +import Graphics.X11.ExtraTypes.XF86 +import XMonad.Hooks.DynamicLog import XMonad.Util.SpawnOnce import XMonad.Util.Run +import XMonad.Hooks.ManageDocks import XMonad.Hooks.EwmhDesktops +import XMonad.Layout.Gaps +import XMonad.Layout.Spacing +import XMonad.Layout.MultiToggle +import XMonad.Layout.NoBorders +import XMonad.Layout.ThreeColumns +import XMonad.Layout.NoBorders +import XMonad.Layout.MultiToggle.Instances +import XMonad.Layout.Grid +import XMonad.Layout.Spiral import qualified XMonad.StackSet as W import qualified Data.Map as M @@ -58,11 +77,14 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $ -- launch a terminal [ ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf) - -- launch dmenu - , ((modm, xK_p ), spawn "dmenu_run") - + -- launch rofi + , ((modm .|. shiftMask, xK_d ), spawn "rofi -show drun") + -- launch gmrun , ((modm .|. shiftMask, xK_p ), spawn "gmrun") + + -- launch firefox + , ((modm .|. shiftMask, xK_f ), spawn "firefox") -- close focused window , ((modm .|. shiftMask, xK_q ), kill) @@ -119,7 +141,7 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $ -- , ((modm , xK_b ), sendMessage ToggleStruts) -- Quit xmonad - -- ((modm .|. shiftMask, xK_q ), io (exitWith ExitSuccess)) + , ((modm, xK_x ), spawn "wlogout") -- Restart xmonad , ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart") @@ -177,19 +199,16 @@ myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $ -- The available layouts. Note that each layout is separated by |||, -- which denotes layout choice. -- -myLayout = avoidStruts (tiled ||| Mirror tiled ||| Full) - where - -- default tiling algorithm partitions the screen into two panes - tiled = Tall nmaster delta ratio - - -- The default number of windows in the master pane - nmaster = 1 - - -- Default proportion of screen occupied by master pane - ratio = 1/2 - - -- Percent of screen to increment by when resizing panes - delta = 3/100 +myLayout = spacingRaw True (Border 0 5 5 5) True (Border 5 5 5 5) True $ gaps [(U,5), (D,5), (R,5), (L,5)] + $ avoidStruts + $ mkToggle (NBFULL ?? EOT) + $ smartBorders + $ tiled ||| Grid ||| spiral (6/7) ||| ThreeColMid 1 (3/100) (1/2) ||| noBorders Full + where + tiled = Tall nmaster delta ratio + nmaster = 1 + delta = 3/100 + ratio = 1/2 ------------------------------------------------------------------------ -- Window rules: @@ -240,19 +259,31 @@ myLogHook = return () -- -- By default, do nothing. myStartupHook = do - spawnOnce "nitrogen --restore &" - spawnOnce "picom &" ------------------------------------------------------------------------- + spawnOnce "nitrogen --restore &" + spawnOnce "picom &" +------------------------------------------------------------------------ +-- Command to launch the bar. +myBar = "xmobar" + +-- Custom PP, configure it as you like. It determines what is being written to the bar. +myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" } + +-- Key binding to toggle the gap for the bar. +toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b) + +------------------------------------------------------------------------ -- Now run xmonad with all the defaults we set up. -- Run xmonad with the settings you specify. No need to modify this. -- -main = do - xmproc <- spawnPipe "xmobar /home/mx/.config/xmobar/xmobarrc" - -xmonad $ docks default +main = do + xmonad =<< statusBar myBar myPP toggleStrutsKey defaults + xmonad $ defaultConfig + { handleEventHook = fullscreenEventHook + } + -- A structure containing your configuration settings, overriding -- fields in the default config. Any you don't override, will -- use the defaults defined in xmonad/XMonad/Config.hs