xmonad: add mimize events

This commit is contained in:
Dmitriy Pleshevskiy 2023-03-14 11:29:36 +03:00
parent a738fc02e8
commit 7e4dc20f15
Signed by: pleshevskiy
GPG key ID: 79C4487B44403985

View file

@ -16,6 +16,7 @@ import qualified Data.Map.Strict as Map
import Data.Monoid
import System.Exit
import XMonad
import XMonad.Actions.Minimize (withLastMinimized, minimizeWindow, maximizeWindow)
import XMonad.Actions.CycleSelectedLayouts (cycleThroughLayouts)
import XMonad.Actions.EasyMotion
( ChordKeys (..),
@ -34,12 +35,13 @@ import XMonad.Hooks.ManageHelpers
)
import XMonad.Hooks.StatusBar
import XMonad.Hooks.StatusBar.PP
import XMonad.Layout.BoringWindows (boringWindows)
import XMonad.Layout.BoringWindows (boringWindows, focusUp, focusDown, focusMaster, swapUp, swapDown)
import XMonad.Layout.Gaps (gaps)
import XMonad.Layout.Grid
import XMonad.Layout.LimitWindows (limitWindows)
import XMonad.Layout.NoBorders (smartBorders)
import XMonad.Layout.Spacing (spacing)
import XMonad.Layout.Minimize (minimize)
import XMonad.Prompt (XPConfig (..), XPPosition (Top), XPType (..), XPrompt (..), mkComplFunFromList', mkXPromptWithModes)
import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig
@ -102,7 +104,7 @@ main' dbus =
keys = myKeys,
mouseBindings = myMouseBindings,
-- hooks, layouts
layoutHook = myLayout,
layoutHook = myLayoutHook,
manageHook = myManageHook,
handleEventHook = myEventHook,
logHook = myPolybarLogHook dbus,
@ -158,7 +160,7 @@ myPolybarLogHook dbus = myLogHook <+> dynamicLogWithPP (polybarHook dbus)
-- The available layouts. Note that each layout is separated by |||,
-- which denotes layout choice.
--
myLayout = avoidStruts . smartBorders $ (Mirror tiled ||| tiled ||| full)
myLayoutHook = minimize . boringWindows . avoidStruts . smartBorders $ (Mirror tiled ||| tiled ||| full)
where
full = Full
tiled = gapSpaced 5 $ Tall nmaster incRatio ratio
@ -280,17 +282,17 @@ myKeys conf =
-- Easy moution to focus windows
("M-s", selectWindow easyMotionConfig >>= (`whenJust` windows . W.focusWindow)),
-- Move focus to the next window
("M-j", windows W.focusDown),
("M-j", focusDown),
-- Move focus to the previous window
("M-k", windows W.focusUp),
("M-k", focusUp),
-- Move focus to the master window
("M-m", windows W.focusMaster),
("M-m", focusMaster),
-- Swap the focused window and the master window
("M-<Return>", windows W.swapMaster),
-- Swap the focused window with the next window
("M-S-j", windows W.swapDown),
("M-S-j", swapDown),
-- Swap the focused window with the previous window
("M-S-k", windows W.swapUp)
("M-S-k", swapUp)
]
where
easyMotionConfig =
@ -317,7 +319,10 @@ myKeys conf =
-- Toggle the status bar gap
-- Use this binding with avoidStruts from Hooks.ManageDocks.
-- See also the statusBar function from Hooks.DynamicLog.
("M-b", toggleStruts)
("M-b", toggleStruts),
-- Minimize and maximize windows
("M4-m", withFocused minimizeWindow),
("M4-S-m", withLastMinimized maximizeWindow)
]
where
togglePolybar = spawn "polybar-msg cmd toggle &"