Ok, so here is the plan.
Disclaimer: will only work for opensource drivers. Is intended at first to my system.
I have a hacker willing to help me.
Instead of starting from scratch, we start from mesa, libvaa and existing drivers that we adapt to our needs.
As I already started, there is a massive amount of LoC that are gone.
This strategy is faster for us to get working and it will be very lean. No need to change the whole stuff completely.
Drivers won't be touched more than needed.
It is made to replace the existing gui frameworks (qt, gtk), and coordination (X, dri), and it comes
with a dedicated lightweight desktop environment.
Don't underestimate that last bold statement: massive code can be thrown away with a new desktop environment. It will be a futuristic (and beautiful
) hybrid-tiling one (no overlap possible, except popups). I am in charge of the design.
The framework is going to be very easy to customize (css like). But will always be a hybrid-tiling one.
You will still have the possibility to display multiple apps at the same time, hide them, etc.. and have overlaying popups. All that with animations.
Multi monitor will be managed with the api. (send_to_manager(char * buffer, struct display_hints * hints) )
So devs will have an easy framework API to deal with graphics. The math algos will be borrowed from open source project with complying licences. If the default math is not satisfying, devs can override the functions with function pointers.
Again, we have one life. This may be tuned by people later.
After all, when people are not satisfied and things are open source,
they are legit to test and bring new ideas.
A compatibility layer is possible to converge gtk and qt apps to this framework. But at this point, we will need help from the community.
As part of the plan, there is something you may not like (for reason A,B or C). That thing is that every application submit its buffer to the framework and a very thin manager will update the screen. Hardware acceleration will work as usual.
If the app messes with its buffer, that is a problem which will not spread among other app renderings (different surface, even if the result will not be pretty).
The display manager is dozens of C code lines.
An interrupt manager will select the app to send it (do not try all the apps to see who need that interrupt).
What you may prefer: it will be easy to change that behavior (good separation of logic).
What it buys you, as a custom OS dev: more performance and lower electric consumption.
Once we feel that it is ready to show, I will post the github link.
Well..