Mouse

The mouse config file variable defines a set of global mouse actions, and is a list of Click and Drag objects, which define what to do when a window is clicked or dragged.

Default Mouse Bindings

By default, holding your mod key and left-clicking (and holding) a window will allow you to drag it around as a floating window. Holding your mod key and right-clicking (and holding) a window will resize the window (and also make it float if it is not already floating).

Example

from libqtile.config import Click, Drag
mouse = [
    Drag([mod], "Button1", lazy.window.set_position_floating(),
        start=lazy.window.get_position()),
    Drag([mod], "Button3", lazy.window.set_size_floating(),
        start=lazy.window.get_size()),
    Click([mod], "Button2", lazy.window.bring_to_front())
]

The above example can also be written more concisely with the help of the EzClick and EzDrag helpers:

from libqtile.config import EzClick as Click, EzDrag as Drag

mouse = [
    Drag("M-1", lazy.window.set_position_floating(),
        start=lazy.window.get_position()),
    Drag("M-3", lazy.window.set_size_floating(),
        start=lazy.window.get_size()),
    Click("M-2", lazy.window.bring_to_front())
]

Reference

Click

class libqtile.config.Click(modifiers: list[str], button: str, *commands: LazyCall)[source]

Bind commands to a clicking action.

Parameters:
modifiers:

A list of modifier specifications. Modifier specifications are one of: "shift", "lock", "control", "mod1", "mod2", "mod3", "mod4", "mod5".

button:

The button used to start dragging e.g. "Button1".

commands:

A list LazyCall objects to evaluate in sequence upon drag.

Drag

class libqtile.config.Drag(modifiers: list[str], button: str, *commands: LazyCall, start: LazyCall | None = None, warp_pointer: bool = False)[source]

Bind commands to a dragging action.

On each motion event the bound commands are executed with two additional parameters specifying the x and y offset from the previous position.

Parameters:
modifiers:

A list of modifier specifications. Modifier specifications are one of: "shift", "lock", "control", "mod1", "mod2", "mod3", "mod4", "mod5".

button:

The button used to start dragging e.g. "Button1".

commands:

A list LazyCall objects to evaluate in sequence upon drag.

start:

A LazyCall object to be evaluated when dragging begins. (Optional)

warp_pointer:

A bool indicating if the pointer should be warped to the bottom right of the window at the start of dragging. (Default: False)

EzClick

class libqtile.config.EzClick(btndef: str, *commands: LazyCall)[source]

Bind commands to a clicking action using the Emacs-like format.

Parameters:
btndef:

The Emacs-like button specification, e.g. "M-1".

commands:

A list LazyCall objects to evaluate in sequence upon drag.