Skip to content

pankajackson/qtile-lxa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

318 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 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.

About

qtile_lxa 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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors