A Flexibly Sinister Layout for Qtile

Lam Sun Avatar

·

Build Status
Version

Plasma, the twisted creation of numirias, promises a revolutionary way to organize your windows in Qtile. Are you tired of the mundane default layouts? Do you crave something more sinister and powerful? Look no further than Plasma.

A Dark and Enthralling Journey

Plasma operates on a twisted tree structure, reminiscent of i3wm. Each node in the tree represents a container, with child containers aligned either horizontally or vertically. Each window is attached to a leaf, taking up a certain amount of space in its parent container. With Plasma, you have complete control over your windows – you can resize, rearrange, and integrate them into other containers, opening up a world of possibilities.

Embrace the Dark Side

If you dare to explore the dark side of customization, Plasma is for you. Imagine the power of reshaping your workspace to fit your needs, with windows that conform to your desires. With Plasma, you can break free from the constraints of traditional layouts and enter a realm where your imagination is the limit.

But Beware…

While Plasma offers an intoxicating taste of freedom, it comes with a warning. The journey into the world of Plasma is not for the faint-hearted. The extensive control over your windows can lead to chaos if not handled with care. Only those with the skills and passion for front-end development can wield this power responsibly.

A Glimpse Into the Abyss

Demo

Take a look at the quick demo above to get a glimpse of what Plasma has to offer. See how it seamlessly adds modes, moves, integrates, and resizes windows with ease. It’s a sight to behold, but remember – with great power comes great responsibility.

Dive Into the Shadows

To embark on this sinister journey, install the qtile-plasma package from PyPI:

#
pip install --upgrade qtile-plasma

Next, add the Plasma layout to your Qtile configuration file. Customize the border colors, width, and margins to suit your taste.

#
from plasma import Plasma
...
layouts = [
    Plasma(
        border_normal='#333333',
        border_focus='#00e891',
        border_normal_fixed='#006863',
        border_focus_fixed='#00e8dc',
        border_width=1,
        border_width_single=0,
        margin=0
    ),
    ...
]

Finally, map the keybindings that will unlock the true potential of Plasma. Choose the combinations that make you feel powerful and in control.

#
from libqtile.config import EzKey
...
keymap = {
    'M-h': lazy.layout.left(),
    'M-j': lazy.layout.down(),
    'M-k': lazy.layout.up(),
    'M-l': lazy.layout.right(),
    ...
}
keys = [EzKey(k, v) for k, v in keymap.items()]

The Power Lies Within

Plasma unleashes a wide range of commands that allow you to manipulate your windows with precision. Whether you want to focus, move, resize, or integrate windows, Plasma has got you covered.

Here are just some of the commands at your disposal:

  • next(): Focuses on the next window.
  • move_left(): Moves the current window to the left.
  • integrate_up(): Integrates the current window up.

To explore the full list of commands, refer to the Commands section in the README.

Join the Dark Side

Plasma is a living project, constantly evolving and embracing new features. If you encounter bugs or have suggestions, you can contribute by filing an issue on the GitHub repository.

To contribute to Plasma locally, clone the repository and ensure that you have the necessary dependencies installed. Run the tests and ensure that your changes pass the linting. And if you make changes to the layout API, make sure to update the README’s commands section.

Embrace the darkness, front-end developers. Step into the world of Plasma and unleash your creativity. But remember, with great power comes great responsibility. Use Plasma wisely and create beautiful, yet functional layouts. Let your designs prosper and live long.

Leave a Reply

Your email address will not be published. Required fields are marked *