The lazy.lazy
object is a special helper object to specify a command for later execution. This object acts like the root of the object graph, which means that we can specify a key binding command with the same syntax used to call the command through a script or through qtile-shell
.
from libqtile.config import Key
from libqtile.command import lazy
keys = [
Key(
["mod1"], "k",
lazy.layout.down()
),
Key(
["mod1"], "j",
lazy.layout.up()
)
]
This is overview of the commonly used functions for the key bindings. These functions can be called from commands on the qtile_commands
object or on another object in the command tree.
Some examples are given below.
function | description |
---|---|
lazy.spawn("application") |
Run the application |
lazy.spawncmd() |
Open command prompt on the bar. See prompt widget. |
lazy.reload_config() |
Reload the config. |
lazy.restart() |
Restart Qtile. In X11, it won't close your windows. |
lazy.shutdown() |
Close the whole Qtile |
function | description |
---|---|
lazy.next_layout() |
Use next layout on the actual group |
lazy.prev_layout() |
Use previous layout on the actual group |
lazy.screen.next_group() |
Move to the group on the right |
lazy.screen.prev_group() |
Move to the group on the left |
lazy.screen.toggle_group() |
Move to the last visited group |
lazy.group.next_window() |
Switch window focus to next window in group |
lazy.group.prev_window() |
Switch window focus to previous window in group |
lazy.group["group_name"].toscreen() |
Move to the group called group_name . Takes an optional toggle parameter (defaults to False). If this group is already on the screen, it does nothing by default; to toggle with the last used group instead, use toggle=True . |
lazy.layout.increase_ratio() |
Increase the space for master window at the expense of slave windows |
lazy.layout.decrease_ratio() |
Decrease the space for master window in the advantage of slave windows |
function | description |
---|---|
lazy.window.kill() |
Close the focused window |
lazy.layout.next() |
Switch window focus to other pane(s) of stack |
lazy.window.togroup("group_name") |
Move focused window to the group called group_name |
lazy.window.toggle_floating() |
Put the focused window to/from floating mode |
lazy.window.toggle_fullscreen() |
Put the focused window to/from fullscreen mode |
function | description |
---|---|
lazy.group["group_name"].dropdown_toggle("name") |
Toggles the visibility of the specified DropDown window. On first use, the configured process is spawned. |
lazy.group["group_name"].hide_all() |
Hides all DropDown windows. |
lazy.group["group_name"].dropdown_reconfigure("name", **configuration) |
Update the configuration of the named DropDown. |
function | description |
---|---|
lazy.function(func, *args, **kwargs) |
Calls func(qtile, *args, **kwargs) . NB. the qtile object is automatically passed as the first argument. |
lazy.function
can also be used as a decorator for functions.
from libqtile.config import Key
from libqtile.command import lazy
@lazy.function
def my_function(qtile):
...
keys = [
Key(
["mod1"], "k",
my_function
)
]
Additionally, you can pass arguments to user-defined function in one of two ways:
- In-line definition
Arguments can be added to the lazy.function
call.
from libqtile.config import Key
from libqtile.command import lazy
from libqtile.log_utils import logger
def multiply(qtile, value, multiplier=10):
logger.warning(f"Multiplication results: {value * multiplier}")
keys = [
Key(
["mod1"], "k",
lazy.function(multiply, 10, multiplier=2)
)
]
- Decorator
Arguments can also be passed to the decorated function.
from libqtile.config import Key
from libqtile.command import lazy
from libqtile.log_utils import logger
@lazy.function
def multiply(qtile, value, multiplier=10):
logger.warning(f"Multiplication results: {value * multiplier}")
keys = [
Key(
["mod1"], "k",
multiply(10, multiplier=2)
)
]