buffet / kiwmi

A fully programmable Wayland Compositor
Mozilla Public License 2.0
585 stars 22 forks source link

Documentation #4

Closed Jackojc closed 4 years ago

Jackojc commented 5 years ago

Some documentation would be really nice, the project looks interesting but I have no idea how to run or use it.

buffet commented 5 years ago

Hey! I'm sorry to admit that the documentation you found (none) pretty describes the capabilities of this project right now.

kiwmi is pretty early in development, and I didn't put much time into it recently (which will help soon hopefully, as I finally want to use this myself). That said let me answer your questions as good as I can for now.

How to execute kiwmi?

You can just run kiwmi in a TTY, in X, or in another Wayland compositor, and it will automatically detect what backend to use.

WARNING: Do not run kiwmi in a TTY, as it will softlock your machine right now, forcing you to power off, or ssh into it, to kill kiwmi. This is because there is no way to kill kiwmi right now, and TTY switching is not yet implemented.

How do I send commands from kiwmic to kiwmi?

You don't, as kiwmic doesn't exist yet.

It will work like kiwmic COMMAND [PARAMETERs]... though, I'm not exactly sure what the commands will look like though. I want them to be as clear as possible (no bspwm-esque single letter flags everywhere) while also offering flexibility (unlike herbstluftwm, hiding flexibility behind huge and ugly constructs).

How can I configure kiwmi and what options are available?

Again, none right now.

In the end I want to stay away from the concept of "options" as much as possible, having the user handle as much as they want in their frontend. So if there's going to be options, the user has to add them in their frontend.

This will mean the user has to put in a lot of work, which I can see is unattractive to many people, but the people who are willing to put in the time will benefit greatly from it. To make the entry as easy as possible I'll write a bunch of scripts, both for tiling and floating usage, and will link setups that are good for learning purposes, so that users can initially cherry pick and hack on these.


I hope this makes the state of the project somewhat clear. If you have any further questions feel free to ask them.

Jackojc commented 5 years ago

Thank you for the reply! I will follow the project with keen interest as I really like the concept. Best of luck.

Aareon commented 5 years ago

I wasn't aware that TTY switching needed to be implemented. I recall (when I was testing my own WM), that I didn't need to implement TTY switching, it "just worked".

If I'm understanding correctly, this means that you can't switch TTYs with the normal Ctrl+Alt+F* keys?

buffet commented 5 years ago

@Aareon When you implemented your own (xorg) WM, xorg implemented TTY switching for you. This is Wayland, which is just a protocol the compositor (kiwmi) needs to implement itself. This means I need to implement TTY switching myself.

If I'm understanding correctly, this means that you can't switch TTYs with the normal Ctrl+Alt+F* keys?

This is actually possible now. You can switch TTYs with Ctrl+Alt+F* and quit with Super+Esc (currently hardcoded, will be removed in the future, as the frontend should handle this).

Jackojc commented 5 years ago

If xorg implements the TTY switching then how is it I am able to switch TTYs without X running?

buffet commented 5 years ago

@Jackojc Nice question.

Not sure tbh. It should be the kernel implementing it, that doesn't hold anymore though, as I (or rather libinput) grab control of the hardware.

Jackojc commented 5 years ago

Interesting problem.

buffet commented 4 years ago

Closing this for now, as my answers are outdated and documentation isn't happening until this is usable anyways.