summaryrefslogtreecommitdiff
path: root/xmonad/xmonad.hs
diff options
context:
space:
mode:
authorThomas Ulmer <thomasmulmer02@gmail.com>2025-10-29 09:31:20 -0700
committerThomas Ulmer <thomasmulmer02@gmail.com>2025-10-29 09:31:20 -0700
commit2c46955719f6e13bbd3a5ddfec3cc5c1d0430f83 (patch)
tree3fac688751ace9de5660837f8786cc8960e01785 /xmonad/xmonad.hs
parent497c3ae2d00c782e295d94cd172a00d6a2d91227 (diff)
basic minimization, needs more work
Diffstat (limited to 'xmonad/xmonad.hs')
-rw-r--r--xmonad/xmonad.hs26
1 files changed, 18 insertions, 8 deletions
diff --git a/xmonad/xmonad.hs b/xmonad/xmonad.hs
index 347db1b..eaa0f47 100644
--- a/xmonad/xmonad.hs
+++ b/xmonad/xmonad.hs
@@ -23,8 +23,15 @@ import Graphics.X11.ExtraTypes.XF86 (xF86XK_AudioMute,
import XMonad.Hooks.StatusBar
import XMonad.Hooks.StatusBar.PP
import XMonad.Hooks.EwmhDesktops
+import XMonad.Hooks.ManageDocks (ToggleStruts(..))
+
import XMonad.Actions.WindowBringer
+import XMonad.Actions.Minimize (minimizeWindow, withLastMinimized, maximizeWindowAndFocus)
+
import XMonad.Layout.NoBorders (noBorders, smartBorders)
+import XMonad.Layout.Minimize (minimize)
+import qualified XMonad.Layout.BoringWindows as BW
+
-- The preferred terminal program, which is used in a binding below and by
-- certain contrib modules.
@@ -76,7 +83,6 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
-- launch dmenu
, ((modm, xK_d ), spawn "dmenu_run")
- , ((modm .|. shiftMask, xK_d ), spawn "dmenu_run")
-- browser
, ((modm, xK_e ), spawn "glide")
@@ -127,6 +133,10 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
-- Push window back into tiling
, ((modm, xK_t ), withFocused $ windows . W.sink)
+ -- push and pop from the hidden window stack
+ , ((modm, xK_backslash), withFocused minimizeWindow)
+ , ((modm .|. shiftMask, xK_backslash), withLastMinimized maximizeWindowAndFocus)
+
-- Increment the number of windows in the master area
, ((modm , xK_comma ), sendMessage (IncMasterN 1))
@@ -137,7 +147,7 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
-- Use this binding with avoidStruts from Hooks.ManageDocks.
-- See also the statusBar function from Hooks.DynamicLog.
--
- -- , ((modm , xK_b ), sendMessage ToggleStruts)
+ , ((modm , xK_b ), sendMessage ToggleStruts)
, ((noModMask , xF86XK_AudioMute), spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle")
, ((noModMask , xF86XK_AudioLowerVolume), spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%")
@@ -212,10 +222,10 @@ myLayout = smartBorders tiled ||| noBorders Full
nmaster = 1
-- Default proportion of screen occupied by master pane
- ratio = 2/3
-
+ ratio = 3/5
+
-- Percent of screen to increment by when resizing panes
- delta = 3/100
+ delta = 2/100
------------------------------------------------------------------------
-- Window rules:
@@ -248,7 +258,7 @@ myManageHook = composeAll
-- return (All True) if the default handler is to be run afterwards. To
-- combine event hooks use mappend or mconcat from Data.Monoid.
--
-myEventHook = handleEventHook def <+> fullscreenEventHook
+myEventHook = handleEventHook def
------------------------------------------------------------------------
-- Status bars and logging
@@ -285,7 +295,7 @@ main = xmonad $ withEasySB mySB defToggleStrutsKey defaults
--
-- No need to modify this.
--
-defaults = ewmh def {
+defaults = ewmhFullscreen . ewmh $ def {
-- simple stuff
terminal = myTerminal,
focusFollowsMouse = myFocusFollowsMouse,
@@ -301,7 +311,7 @@ defaults = ewmh def {
mouseBindings = myMouseBindings,
-- hooks, layouts
- layoutHook = myLayout,
+ layoutHook = minimize . BW.boringWindows $ myLayout,
manageHook = myManageHook,
handleEventHook = myEventHook,
logHook = myLogHook,