moveresize
Extension Module
This module provides functionality for moving and resizing windows. The
core functionality is implemented by the abstract base class
MoveResize
. It is subclassed by the two classes
MoveResizeOpaque
and MoveResizeOutline
which resizes
windows by changing the window size, and by drawing an outline of the
new size, respectivelly. The latter requires the outline
module.
See the code for details on these classes.
Most resizing will be done via key handlers, so a template key handler class is provides that simplifies writing your own moving and resizing keyhandler for the currently focused client:
MoveResizeKeys
contains methods for the various move and resize
operations. Is should be subclassed, and in the subclass key binding
method names should be assigned to the general methods.
There are 24 general methods:
_move_X | Move the client in direction X |
_enlarge_X | Enlarge the client in direction X |
_shrink_X | Shrink the client from direction X |
The direction is one of eight combinations of the four cardinal points: e, ne, n, nw, w, sw, s and se.
Additionally theres two methods for finishing the moveresize:
_moveresize_end | Finish, actually moving and resizing the client |
_moveresize_abort | Abort, leaving client with its old geometry |
By default outline moveresizing is used with the
MoveResizeOutline
class. This can be changed by redefining the
attribute _moveresize_class
to any subclass of MoveResize
.
A small MoveResizeKeys
subclass example:
class MyMRKeys(MoveResizeKeys): _moveresize_class = MoveResizeOpaque KP_Left = MoveResizeKeys._move_w KP_Right = MoveResizeKeys._move_e KP_Up = MoveResizeKeys._move_n KP_Down = MoveResizeKeys._move_s KP_Begin = MoveResizeKeys._moveresize_end Escape = MoveResizeKeys._moveresize_abort
This would be invoked like this in a keyhandler event method in your basic keyhandler:
def KP_Begin(self, evt): MyMRKeys(self, evt)
MoveResize
generates events during operation. The type
attribute for all these are the event class, and the client
attribute is the affected client.
MoveResizeStart
is generated when the moveresize is started,
MoveResizeEnd
when it ends and the window geometry is changed,
and MoveResizeEnd
when it is aborted and the window geometry is
left unchanged.
MoveResizeDo
is generated for each change in window geometry
during moveresize. It has four attributes denoting the current
geometry: x
, y
, width
and height
.
Go to the first, previous, next, last section, table of contents.