No description
  • Python 87.3%
  • C 12.2%
  • Nix 0.3%
  • Makefile 0.1%
  • Shell 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-16 21:42:07 -04:00
.github ci: bump actions@* in pre-commit 2026-06-26 09:29:42 -04:00
docs docs: update qtile-flake guide's url 2026-07-16 21:42:07 -04:00
libqtile start: detect the backend from the environment when -b is not given 2026-07-16 21:39:54 -04:00
nix docs: recommend launching qtile via a systemd user service 2026-07-16 21:40:07 -04:00
resources docs: recommend launching qtile via a systemd user service 2026-07-16 21:40:07 -04:00
scripts scripts: drop dead qtb script 2026-05-13 10:47:05 -06:00
stubs chore: formatted 2024-09-03 10:48:26 -06:00
test tests: surface qtile's logs on stderr when it fails to start 2026-07-16 21:40:59 -04:00
.clang-format WIP: Rewrite the wayland backend in c 2025-10-24 14:27:14 +02:00
.coveragerc Move from pytest-cov to coverage (#3870) 2022-10-29 11:25:30 +01:00
.git-blame-ignore-revs git-blame-ignore-revs: ignore mypy upgrade 2025-08-28 20:03:52 -06:00
.gitignore Create base for wayland test clients 2026-06-24 19:50:27 -04:00
.pre-commit-config.yaml pre-commit: bump versions of things 2026-03-20 18:42:30 -06:00
.readthedocs.yaml fix(ci): create own systray icon script 2025-11-07 17:15:00 +00:00
builder.py Force wheel to include python version 2026-06-13 15:16:54 -04:00
CHANGELOG Release v0.36.0 2026-05-22 07:58:46 -06:00
CONTRIBUTING.md CONTRIBUTING: add more docs about what we look for in PRs 2021-10-12 09:22:31 +01:00
Dockerfile Add procps to Dockerfile 2026-06-24 19:50:27 -04:00
flake.lock build: upgrade wlroots 0.19 → 0.20 2026-06-11 19:55:55 -06:00
flake.nix nix: update nixpkgs, fix deprecations, and align qtile deps with upstream 2026-03-05 08:03:50 -07:00
LICENSE Update copyright dates and author info 2026-01-10 07:46:13 -07:00
Makefile Refactor wayland build script 2026-06-24 19:50:27 -04:00
MANIFEST.in Create base for wayland test clients 2026-06-24 19:50:27 -04:00
pyproject.toml Try pytest-timeout to catch deadlocked tests 2026-05-23 20:40:47 -06:00
README.rst add @richcarni as a maintainer 2025-11-15 19:03:39 -07:00

|logo|

**A full-featured, hackable tiling window manager written and configured in Python**

|website| |pypi| |ci| |rtd| |license| |ruff| |coverage|

Features
========

* Simple, small and extensible. It's easy to write your own layouts,
  widgets and commands.
* Configured in Python.
* Runs as an X11 WM or a Wayland compositor.
* Command shell that allows all aspects of Qtile to be managed and
  inspected.
* Complete remote scriptability - write scripts to set up workspaces,
  manipulate windows, update status bar widgets and more.
* Qtile's remote scriptability makes it one of the most thoroughly
  unit-tested window managers around.

Community
=========

Qtile is supported by a dedicated group of users. If you need any help, please
don't hesitate to fire off an email to our mailing list or join us on IRC. You
can also ask questions on the discussions board.

:Q&A: https://github.com/qtile/qtile/discussions/categories/q-a
:IRC: irc://irc.oftc.net:6667/qtile
:Discord: https://discord.gg/ehh233wCrC (Bridged with IRC)

Example code
============

Check out the `qtile-examples`_ repo which contains examples of users' configurations,
scripts and other useful links.

.. _`qtile-examples`: https://github.com/qtile/qtile-examples

Contributing
============

Please report any suggestions, feature requests, bug reports, or annoyances to
the GitHub `issue tracker`_. There are also a few `tips & tricks`_,
and `guidelines`_ for contributing in the documentation.

Please also consider submitting useful scripts etc. to the qtile-examples repo
(see above).

.. _`issue tracker`: https://github.com/qtile/qtile/issues
.. _`tips & tricks`: https://docs.qtile.org/en/latest/manual/hacking.html
.. _`guidelines`: https://docs.qtile.org/en/latest/manual/contributing.html

.. |logo| image:: https://raw.githubusercontent.com/qtile/qtile/master/libqtile/resources/logo.png
    :alt: Logo
    :target: https://qtile.org
.. |website| image:: https://img.shields.io/badge/website-qtile.org-blue.svg
    :alt: Website
    :target: https://qtile.org
.. |pypi| image:: https://img.shields.io/pypi/v/qtile.svg
    :alt: PyPI
    :target: https://pypi.org/project/qtile/
.. |ci| image:: https://github.com/qtile/qtile/actions/workflows/ci.yml/badge.svg?branch=master
    :alt: CI status
    :target: https://github.com/qtile/qtile/actions
.. |rtd| image:: https://readthedocs.org/projects/qtile/badge/?version=latest
    :alt: Read the Docs
    :target: https://docs.qtile.org/en/latest/
.. |license| image:: https://img.shields.io/github/license/qtile/qtile.svg
    :alt: License
    :target: https://github.com/qtile/qtile/blob/master/LICENSE
.. |ruff| image:: https://img.shields.io/badge/code%20style-ruff-000000.svg
    :alt: Codestyle
    :target: https://github.com/astral-sh/ruff
.. |coverage| image:: https://coveralls.io/repos/github/qtile/qtile/badge.svg
    :alt: Coverage
    :target: https://coveralls.io/github/qtile/qtile

Acknowledgements
================

Special thanks to the authors of `SwayWM`_, `LabWC`_, and `DWL`_, whose implementations 
and source code served as inspiration and reference for protocol implementations and 
architectural patterns while building the Wayland backend (`wayc`) for Qtile.

.. _`SwayWM`: https://github.com/swaywm/sway/blob/master/LICENSE
.. _`LabWC`: https://github.com/labwc/labwc/blob/master/LICENSE
.. _`DWL`: https://codeberg.org/dwl/dwl/src/branch/main/LICENSE

Maintainers
===========

| `@tych0`_ GPG: ``3CCA B226 289D E016 0C61  BDB4 18D1 8F1B C464 DCA3``
| `@elParaguayo`_ GPG: ``A6BA A1E1 7D26 64AD B97B  2C6F 58A9 AA7C 8672 7DF7``
| `@jwijenbergh`_ GPG: ``B1C8 1CF3 063B 5836 4946  3687 4827 061B D417 C233``
| `@richcarni`_ GPG: ``FBB5 0201 8A0E 9CCF AF00  A5F0 9317 80BE 8CA8 83B5``

.. _`@tych0`: https://github.com/tych0
.. _`@elParaguayo`: https://github.com/elparaguayo
.. _`@jwijenbergh`: https://github.com/jwijenbergh
.. _`@richcarni`: https://github.com/richcarni

Maintainers Emeritus
====================
| `@cortesi`_
| `@ramnes`_ GPG: ``99CC A84E 2C8C 74F3 2E12  AD53 8C17 0207 0803 487A``
| `@m-col`_ GPG: ``35D9 2E7C C735 7A81 173E  A1C9 74F9 FDD2 0984 FBEC``
| `@flacjacket`_ GPG: ``58B5 F350 8339 BFE5 CA93  AC9F 439D 9701 E7EA C588``

.. _`@cortesi`: https://github.com/cortesi
.. _`@ramnes`: https://github.com/ramnes
.. _`@m-col`: https://github.com/m-col
.. _`@flacjacket`: https://github.com/flacjacket