No description
  • Python 89.3%
  • C 10.1%
  • Shell 0.3%
  • Nix 0.2%
Find a file
elParaguayo 777a4403e4 [wayland] Fix build if no xwayland support
Qtile would not compile if wlroots was built without xwayland support as
our build script resulted in references to xwayland specific code and
because cffi doesn't preprocess headers.

Fixes #5884
2026-03-23 18:05:36 -06:00
.github ci: bump github actions 2026-03-23 18:04:53 -06:00
docs docs: add a generate_screens() example 2026-03-20 18:42:43 -06:00
libqtile [wayland] Fix build if no xwayland support 2026-03-23 18:05:36 -06:00
nix nix: update nixpkgs, fix deprecations, and align qtile deps with upstream 2026-03-05 08:03:50 -07:00
resources Remove objgraph.dot 2025-08-30 06:47:51 -06:00
scripts Log coredump back traces in CI 2026-02-10 17:50:10 -07:00
stubs chore: formatted 2024-09-03 10:48:26 -06:00
test tests: pass full env to x11_identify_output test 2026-03-23 18:05:03 -06: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 [wayc] add libconfig.mk to gitignore 2025-10-24 14:28:00 +02: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 Fix wayland build error 2025-12-14 10:58:25 -07:00
CHANGELOG Release v0.35.0 2026-03-20 18:46:14 -06:00
CONTRIBUTING.md CONTRIBUTING: add more docs about what we look for in PRs 2021-10-12 09:22:31 +01:00
flake.lock nix: update nixpkgs, fix deprecations, and align qtile deps with upstream 2026-03-05 08:03:50 -07: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 Makefile: install deps before building docs 2025-11-19 08:42:49 +00:00
MANIFEST.in Add build/*.o to manifest 2025-10-24 14:28:10 +02:00
pyproject.toml pyproject: don't specify python version for mypy 2026-03-15 07:39:58 -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