Find a file
2025-09-28 17:41:30 -06:00
.github Add py3.14-dev to CI 2025-09-02 06:57:47 -06:00
docs docs: build screenshots by default 2025-09-17 19:23:06 -06:00
libqtile don't reap processes spawned by asyncio 2025-09-23 11:23:30 -06:00
nix nix(flake): add aiohttp to propagatedBuildInputs 2025-09-04 14:55:37 +02:00
resources Remove objgraph.dot 2025-08-30 06:47:51 -06:00
scripts drop bin/qtile 2025-08-13 06:36:15 -06:00
stubs chore: formatted 2024-09-03 10:48:26 -06:00
test Disable flaky spawn_in_group test 2025-09-28 17:41:30 -06: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 fix(mypy): _build_config.py causes unused 'type: ignore' error 2025-08-13 06:35:31 -06:00
.pre-commit-config.yaml upgrade mypy 2025-08-28 20:03:52 -06:00
.readthedocs.yaml move docs requirements to pyproject.toml 2025-08-28 20:08:16 -06:00
builder.py Fix wayland builder 2025-08-29 02:23:26 -06:00
CHANGELOG Add window swapping to Columns layout 2025-09-19 09:13:51 -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: pin nixpkgs to nixos-unstable branch 2025-08-11 14:42:36 -06:00
flake.nix nix: pin nixpkgs to nixos-unstable branch 2025-08-11 14:42:36 -06:00
LICENSE Add MIT license declaration. 2008-08-08 09:27:46 +10:00
Makefile Makefile: add docs build target 2025-09-23 11:23:30 -06:00
MANIFEST.in Remove deleted script/ffibuild from MANIFEST.in 2025-08-10 07:16:56 -06:00
pyproject.toml add prompt_toolkit to optional core dependencies 2025-08-31 22:24:49 +01:00
README.rst fix the CI badge in the readme 2025-09-19 06:02:31 +01: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


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

| `@tych0`_ GPG: ``3CCA B226 289D E016 0C61 BDB4 18D1 8F1B C464 DCA3``
| `@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``
| `@elParaguayo`_ GPG: ``A6BA A1E1 7D26 64AD B97B  2C6F 58A9 AA7C 8672 7DF7``
| `@jwijenbergh`_ GPG: ``B1C8 1CF3 063B 5836 4946  3687 4827 061B D417 C233``

.. _`@tych0`: https://github.com/tych0
.. _`@ramnes`: https://github.com/ramnes
.. _`@m-col`: https://github.com/m-col
.. _`@flacjacket`: https://github.com/flacjacket
.. _`@elParaguayo`: https://github.com/elparaguayo
.. _`@jwijenbergh`: https://github.com/jwijenbergh