Updated readme
This commit is contained in:
parent
f436e6b455
commit
15cbedb8f5
1 changed files with 23 additions and 18 deletions
41
README.adoc
41
README.adoc
|
@ -1,41 +1,46 @@
|
|||
kiwmi
|
||||
=====
|
||||
|
||||
A fully manual tiling Wayland compositor.
|
||||
|
||||
Concepts
|
||||
--------
|
||||
|
||||
Most *manual* window managers aren't *truly* manual. They behave like a dynamic one sometimes. However, kiwmi is fully manual. It doesn't do this.
|
||||
|
||||
When a window is spawned without allocating space, it's put in an invisible queue. Then you allocate space for the window; when the window is pulled from the queue, it goes into the aforementioned space. This solves the classic problem with regular window managers, where the window with a longer start time will spawn in the current tag (workspace) instead of the one in which it was opened in.
|
||||
|
||||
In kiwmi, empty spaces available for windows behave like a normal window does. You can resize and move around them. Ergo, you don't need to re-learn how a tiling window manager behaves and works.
|
||||
A client controlled Wayland compositor.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
Configuration languages are confusing. They are neither flexible nor easy to use. Moreover, it adds a lot of complexity to the program itself.
|
||||
`kiwmi` listens to a socket and offers a basic client, `seed`, to communicate with kiwmi. Much like how `bspwm` works.
|
||||
kiwmi listens to a socket and offers a basic client, kiwmic, to communicate with kiwmi. Much like how bspwm works.
|
||||
|
||||
This allows the user to write the configuration in any langauge, e.g. as a bash script, which allows for high flexibility.
|
||||
|
||||
More info soon(TM).
|
||||
On top of that, kiwmi barely handles anything on it's own.
|
||||
Instead it emmits events, to which the client can subscribe and react accordingly.
|
||||
This allows for 100% flexibility and customizability, while comming at a little effort at first.
|
||||
As soon as they exist I'll link a few user configurations, that are likely to help you get started.
|
||||
|
||||
This means the user will end up using a big, monolithic frontend, or a collection of small scripts, to configure kiwmi.
|
||||
If I get around to it I will probably create a small Python (probably) library, to make it easier to create a monolithic frontend.
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
kiwmi depends on https://github.com/swaywm/wlroots-rs[wlroots-rs]. This means that all dependencies listed there are required.
|
||||
|
||||
No further dependencies are needed.
|
||||
- https://github.com/swaywm/wlroots[wlroots]
|
||||
- meson (build)
|
||||
- ninja (build)
|
||||
- git (build, optional, to fetch the version)
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
Make sure all dependencies are installed. Then run this.
|
||||
|
||||
----
|
||||
$ git clone --recurse-submodules https://github.com/buffet/kiwmi
|
||||
$ cd kiwmi
|
||||
$ cargo build --release
|
||||
$ meson build
|
||||
$ ninja -C build
|
||||
----
|
||||
|
||||
You can then install it like this.
|
||||
|
||||
----
|
||||
# ninja -C build install
|
||||
----
|
||||
|
||||
Contribution
|
||||
|
|
Loading…
Reference in a new issue