Skip to main content

QtileLXA is a modular extension suite for the Qtile window manager, featuring custom widgets, dynamic theming, video wallpapers, and system controls, all designed to enhance and automate your Qtile desktop experience.

Project description

🧩 QtileLXA

QtileLXA is a modular extension suite for the Qtile window manager, offering advanced desktop enhancements like custom widgets, utility scripts, dynamic theming, screen locking, Docker integration, and more — designed to streamline advanced Linux desktop setups.


📦 Features

  • 🎨 Dynamic Theme Manager:

    • PyWall & VidWall support
    • Wallpaper rotation with NASA/Bing/Git repo sources
    • Live decoration and color scheme switching
  • 🔐 Auto Screen Lock:

    • Integrates with xautolock or betterlockscreen
  • 🔊 Device Controllers:

    • Volume, microphone, brightness toggles and indicators
  • 🖥️ Multi-screen Management:

    • Profile switcher for workspace and layout presets
  • 📡 Smart Network Profile Detection

  • 🪄 Custom Power Menu:

    • Shutdown, reboot, sleep, hybrid-sleep, hibernate, etc.
  • 🧩 Modular Codebase:

    • Easily extensible and cleanly organized Python modules

📂 Project Structure

Click to expand
qtile_lxa/
├── src/qtile_lxa/           # Main package
│   ├── assets/              # Icons, sounds, wallpapers
│   ├── utils/               # Utilities (lock, controllers, notifications)
│   └── widget/              # Custom widgets by category
├── test/                    # Widget test scripts
├── dist/                    # Build artifacts
├── pyproject.toml           # Build config
├── requirements.txt         # Dependencies
├── README.md                # You’re reading it!
└── LICENSE                  # MIT License

🚀 Installation

1. Clone the repository

pip install qtile-lxa

Dependencies: docker, qtile, xautolock, betterlockscreen, dunst, etc.


🛠️ Setup in Qtile Config

In your ~/.config/qtile/config.py:

from pathlib import Path
from qtile_lxa import widget as lxa_widgets
from qtile_lxa.widget.theme.bar import DecoratedBar
from libqtile.config import Screen

Use your favorite widgets like:

screens = [
    Screen(
        top=DecoratedBar(
            [
                lxa_widgets.docker.DockerCompose(
                    config=lxa_widgets.docker.DockerComposeConfig(
                        compose_file=Path("docker-compose.yml"),
                    )
                ),
                lxa_widgets.theme.theme_manager.ThemeManager(),
                # Add more...
            ],
            height=24,
        ).get_bar(),
    ),
]

🧠 Example Use Cases

  • Auto lock screen after idle time with Qtile hooks
  • Monitor containerized environments (Docker, Podman, K8s)
  • Instantly switch wallpapers, themes, and bar decorations
  • Get visual feedback for volume and mic status with dunst

🧪 Development & Testing

Run import tests

python test/import_widgets.py

Build the package

python -m build

📷 Screenshots

Top Left Bar
Workspaces Controller
Top Right Bar
System Monitors
Bottom Right Bar
Other Custom Widgets
Theme Manager
Wallpaper, Color, Decorations
Video Wallpaper
Dynamic Background Control
Power Menu
Shutdown, Restart, Sleep

📜 License

This project is licensed under the MIT License.


🙌 Contributing

Contributions are welcome! Please open an issue or pull request for suggestions, bug fixes, or new widgets.


🧠 Credits

Built with ❤️ by Pankaj Kumar Patel (Pankaj Jackson) for the Arch/Qtile community.

Wallpaper credits: NASA, Bing Images, and LXA originals.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qtile_lxa-0.0.10.tar.gz (3.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qtile_lxa-0.0.10-py3-none-any.whl (3.1 MB view details)

Uploaded Python 3

File details

Details for the file qtile_lxa-0.0.10.tar.gz.

File metadata

  • Download URL: qtile_lxa-0.0.10.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for qtile_lxa-0.0.10.tar.gz
Algorithm Hash digest
SHA256 0f017663029135c861917917e6483450092a8d433fe5796c375b80666ab5493e
MD5 9eeb9c8e07bee25062c42d0528feeb58
BLAKE2b-256 33fd1705c7c53556d450034021b72362c608ecf0c078c38cf37f541d59c50268

See more details on using hashes here.

File details

Details for the file qtile_lxa-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: qtile_lxa-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for qtile_lxa-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 ba262c37d7a241307a0c8cd76e1206adafe4a78dd4af06ded7bb6c70ad8577ec
MD5 ece352346d6d547721f8b9ed924265b0
BLAKE2b-256 da81cd94bffbd3402c762845ac681913349744dbd024140580d12a4cfaa2e9c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page