Built-in Extensions

CommandSet

class libqtile.extension.CommandSet(**config)[source]

Give list of commands to be executed in dmenu style.

ex. manage mocp deamon:

Key([mod], 'm', lazy.run_extension(extension.CommandSet(
    commands={
        'play/pause': '[ $(mocp -i | wc -l) -lt 2 ] && mocp -p || mocp -G',
        'next': 'mocp -f',
        'previous': 'mocp -r',
        'quit': 'mocp -x',
        'open': 'urxvt -e mocp',
        'shuffle': 'mocp -t shuffle',
        'repeat': 'mocp -t repeat',
        },
    pre_commands=['[ $(mocp -i | wc -l) -lt 1 ] && mocp -S'],
    **Theme.dmenu))),
key default description
background None ‘defines the normal background color’
command None ‘the command to be launched (string or list with arguments)’
commands None ‘dictionary of commands where key is runable command’
dmenu_bottom False ‘dmenu appears at the bottom of the screen’
dmenu_command 'dmenu' ‘the dmenu command to be launched’
dmenu_font None “override the default ‘font’ and ‘fontsize’ options for dmenu”
dmenu_height None ‘defines the height (only supported by some dmenu forks)’
dmenu_ignorecase False ‘dmenu matches menu items case insensitively’
dmenu_lines None ‘dmenu lists items vertically, with the given number of lines’
dmenu_prompt None ‘defines the prompt to be displayed to the left of the input field’
font 'sans' ‘defines the font name to be used’
fontsize None ‘defines the font size to be used’
foreground None ‘defines the normal foreground color’
pre_commands None ‘list of commands to be executed before getting dmenu answer’
selected_background None ‘defines the selected background color’
selected_foreground None ‘defines the selected foreground color’

Dmenu

class libqtile.extension.Dmenu(**config)[source]

Python wrapper for dmenu http://tools.suckless.org/dmenu/

key default description
background None ‘defines the normal background color’
command None ‘the command to be launched (string or list with arguments)’
dmenu_bottom False ‘dmenu appears at the bottom of the screen’
dmenu_command 'dmenu' ‘the dmenu command to be launched’
dmenu_font None “override the default ‘font’ and ‘fontsize’ options for dmenu”
dmenu_height None ‘defines the height (only supported by some dmenu forks)’
dmenu_ignorecase False ‘dmenu matches menu items case insensitively’
dmenu_lines None ‘dmenu lists items vertically, with the given number of lines’
dmenu_prompt None ‘defines the prompt to be displayed to the left of the input field’
font 'sans' ‘defines the font name to be used’
fontsize None ‘defines the font size to be used’
foreground None ‘defines the normal foreground color’
selected_background None ‘defines the selected background color’
selected_foreground None ‘defines the selected foreground color’

DmenuRun

class libqtile.extension.DmenuRun(**config)[source]

Special case to run applications.

config.py should have something like:

from libqtile import extension
keys = [
    Key(['mod4'], 'r', lazy.run_extension(extension.DmenuRun(
        dmenu_prompt=">",
        dmenu_font="Andika-8",
        background="#15181a",
        foreground="#00ff00",
        selected_background="#079822",
        selected_foreground="#fff",
        dmenu_height=24,  # Only supported by some dmenu forks
    ))),
]
key default description
background None ‘defines the normal background color’
command None ‘the command to be launched (string or list with arguments)’
dmenu_bottom False ‘dmenu appears at the bottom of the screen’
dmenu_command 'dmenu_run' ‘the dmenu command to be launched’
dmenu_font None “override the default ‘font’ and ‘fontsize’ options for dmenu”
dmenu_height None ‘defines the height (only supported by some dmenu forks)’
dmenu_ignorecase False ‘dmenu matches menu items case insensitively’
dmenu_lines None ‘dmenu lists items vertically, with the given number of lines’
dmenu_prompt None ‘defines the prompt to be displayed to the left of the input field’
font 'sans' ‘defines the font name to be used’
fontsize None ‘defines the font size to be used’
foreground None ‘defines the normal foreground color’
selected_background None ‘defines the selected background color’
selected_foreground None ‘defines the selected foreground color’

J4DmenuDesktop

class libqtile.extension.J4DmenuDesktop(**config)[source]

Python wrapper for j4-dmenu-desktop https://github.com/enkore/j4-dmenu-desktop

key default description
background None ‘defines the normal background color’
command None ‘the command to be launched (string or list with arguments)’
dmenu_bottom False ‘dmenu appears at the bottom of the screen’
dmenu_command 'dmenu' ‘the dmenu command to be launched’
dmenu_font None “override the default ‘font’ and ‘fontsize’ options for dmenu”
dmenu_height None ‘defines the height (only supported by some dmenu forks)’
dmenu_ignorecase False ‘dmenu matches menu items case insensitively’
dmenu_lines None ‘dmenu lists items vertically, with the given number of lines’
dmenu_prompt None ‘defines the prompt to be displayed to the left of the input field’
font 'sans' ‘defines the font name to be used’
fontsize None ‘defines the font size to be used’
foreground None ‘defines the normal foreground color’
j4dmenu_command 'j4-dmenu-desktop' ‘the dmenu command to be launched’
j4dmenu_display_binary False ‘display binary name after each entry’
j4dmenu_generic True ‘include the generic name of desktop entries’
j4dmenu_terminal None ‘terminal emulator used to start terminal apps’
j4dmenu_usage_log None ‘file used to sort items by usage frequency’
j4dmenu_use_xdg_de False ‘read $XDG_CURRENT_DESKTOP to determine the desktop environment’
selected_background None ‘defines the selected background color’
selected_foreground None ‘defines the selected foreground color’

RunCommand

class libqtile.extension.RunCommand(**config)[source]

Run an arbitrary command.

Mostly useful as a superclass for more specific extensions that need to interact with the qtile object.

Also consider simply using lazy.spawn() or writing a client.

key default description
background None ‘defines the normal background color’
command None ‘the command to be launched (string or list with arguments)’
font 'sans' ‘defines the font name to be used’
fontsize None ‘defines the font size to be used’
foreground None ‘defines the normal foreground color’
selected_background None ‘defines the selected background color’
selected_foreground None ‘defines the selected foreground color’

WindowList

class libqtile.extension.WindowList(**config)[source]

Give vertical list of all open windows in dmenu. Switch to selected.

key default description
all_groups True ‘If True, list windows from all groups; otherwise only from the current group’
background None ‘defines the normal background color’
command None ‘the command to be launched (string or list with arguments)’
dmenu_bottom False ‘dmenu appears at the bottom of the screen’
dmenu_command 'dmenu' ‘the dmenu command to be launched’
dmenu_font None “override the default ‘font’ and ‘fontsize’ options for dmenu”
dmenu_height None ‘defines the height (only supported by some dmenu forks)’
dmenu_ignorecase False ‘dmenu matches menu items case insensitively’
dmenu_lines '80' ‘Give lines vertically. Set to None get inline’
dmenu_prompt None ‘defines the prompt to be displayed to the left of the input field’
font 'sans' ‘defines the font name to be used’
fontsize None ‘defines the font size to be used’
foreground None ‘defines the normal foreground color’
item_format '{group}.{id}: {window}' ‘the format for the menu items’
selected_background None ‘defines the selected background color’
selected_foreground None ‘defines the selected foreground color’