I have a few vertically stacked tiles on the left, and some on the right. I can easily horizontally resize the master pane (with mod + l and mod + h), but I'd like to vertically resize some windows (including non-master) in this setup.
How do I do this??
I don't think this is possible with the standard XMonad Tall
layout, but alternative layouts such as ResizableTall
from xmonad-contrib
support resizing the master pane.
To resize the master pane when using the ResizableTall
layout, bind the XMonad.Layout.ResizableTile (MirrorShrink, MirrorExpand)
messages.
For example, in my config I define my layoutHook
and keys
to use ResizableTall
with two master panes, and with Mod-M
+ arrow keys bound to resizing the master panes, using (simplified)
main = xmonad gnomeConfig
{ layoutHook = Full ||| tall ||| Mirror tall
, keys = myKeys
}
where
-- Two master panes, 1/10th resize increment, only show master
-- panes by default. Unlike plain 'Tall', this also allows
-- resizing the master panes, via the 'MirrorShrink' and
-- 'MirrorExpand' messages.
tall = ResizableTall 2 (1/10) 1 []
-- Add bindings for arrow keys that resize master panes.
myKeys x = M.fromList (newKeys x) `M.union` keys gnomeConfig x
newKeys conf@(XConfig {XMonad.modMask = modm}) =
[ ((modm, xK_Left), sendMessage MirrorExpand)
, ((modm, xK_Up), sendMessage MirrorExpand)
, ((modm, xK_Right), sendMessage MirrorShrink)
, ((modm, xK_Down), sendMessage MirrorShrink)
]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With