Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

xmonad vertical resize tile/window

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??

like image 850
lucasem Avatar asked Sep 15 '14 22:09

lucasem


1 Answers

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)
    ]
like image 97
Dominique Devriese Avatar answered Oct 20 '22 14:10

Dominique Devriese