Initial commit
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
firstly, why im interested in wm's citing i3 and awsome etc as my inspiration but the fact that using similar systems for a while now, and i wish to explore every part of the software everyone uses and doesnt even feel the existence of, and stuff (kinda short section)
|
||||
|
||||
then focusing on X11 in particular and not just WM in general, and how it has set itself as the standard for windowing on linux/bsd since a long time and how linux, bsd and previously even mac os's used this and even though wayland is challanging that as a new alternative how X11 is still more popular to an extent. also with focus on how it can also be used of ssh (all of this using research to back it up)
|
||||
|
||||
then research findings for the X11 windowing system and how all teh communication etc. happens and compositors and WM's and ssh access etc. (basically the mental model behind X11's philosofy, with diagrams maybe?)
|
||||
|
||||
and then about DE's and what DE's that work with X11 systems exist and how they exist to make utilizing a system easier and how people take it for granted with a little secion on trying to use a a system without any WM or DE to show how hard using such systems would be.
|
||||
|
||||
And then focusing on WM's and how they are supposed to work with X11's event system and how much control they have over windows
|
||||
|
||||
then continuing that with icccm and netwm standards and their history + why standards are getting messy over time or do not apply in all cases, for example they assume WM's will always have iconic, minimized and visible states etc. (with research findings of their histories)
|
||||
|
||||
then explaining how a WM is not that helpful on its own so we build some basic components to make a usable system
|
||||
- the components being, a simple info bar (kinda like polybar in terms of usage)
|
||||
- a menu thing similar to rofi (with simple searching) but in this case reused for a clipboard manager, command runner and emoji/unicode selection thing
|
||||
- and finally a notification daemon that just shows the title and body of a notification int the corner of teh screen and a little highlight in the bar
|
||||
(i can easily do the whole system and i kinda have built similar stuff b4 but im more worried about teh writeup than actual project)
|
||||
|
||||
---
|
||||
|
||||
This was kinda the preface section on X11 and WM's, now we do analysis of the project i chose itself.
|
||||
|
||||
---
|
||||
|
||||
starting with what im deciding to build to actually go through this, with a section comparing xcb and the X11 library and then other x11 tools like xrandr etc.
|
||||
|
||||
and here about other similar systems like i3, awsome, bspwm, the suckless one, and similar for minimalism, and also gnome and xcfe and why that would be out of scope for this but how these work with X11 with
|
||||
focus on the reparenting system that is standardised among these even though it is not stricly a rule needed.
|
||||
|
||||
and here focus on teh exact rules laid out by icccm and netwm and how much would be needed to get working and how much would be needed for full compliance which might not even be possible in certain situations
|
||||
|
||||
then a final concluding chart of what needs to be coded with diagrams of the system states and how they connect and teh data needed to be stored and ill be building a mostly tiling but with floating support and workspace divided system identical to i3. (basically a requirements list)
|
||||
|
||||
then actual implementation of the core WM with development logs of what im actually doing with screenshots errors, fixes and rewrites id have to do because of rending issues etc. (huge section here)
|
||||
|
||||
while using O notation to show what complexity every component has and maybe even one or 2 graphs of performance/space somparisions for teh sake of it
|
||||
|
||||
Then a sort of indev testing report of what works what changes i had to make to the initial requiremnts due to complexities arising etc.
|
||||
|
||||
---
|
||||
|
||||
and now for sections on each additional component
|
||||
|
||||
---
|
||||
|
||||
first the bar, research on common bars used in minimalist systems and comparisions with bars in like windows, feature wise. (also ones like polybar etc.)
|
||||
|
||||
and then a list of info i might need on the bar building on top of that section of what is commonly done
|
||||
|
||||
then a diagram of the flow of states etc. of teh code and what objects and stuff i need to do, with requirements i plan on fulfilling with the bar
|
||||
|
||||
then the actual implementation and logs etc. from that
|
||||
|
||||
---
|
||||
|
||||
Then i talk about abstaction and code reusablity
|
||||
|
||||
which i then exapnd on to talk about why i can reuse the same underlying system for command runner, clipboard and unicode selector, the fact that they all have a simple menu that can be sorted using searches and one can type a text at the top and hit enter to run it
|
||||
|
||||
---
|
||||
|
||||
then a log of building this menu and then using it to build those 3 sub systems
|
||||
|
||||
---
|
||||
|
||||
then teh notification daemon
|
||||
|
||||
- i first focus on research for dbus and how it works and how do i get the notification data from the apps in the first place
|
||||
|
||||
- then i focus on research behind existing notification systems like dunst etc.
|
||||
|
||||
---
|
||||
|
||||
tying it up together
|
||||
|
||||
---
|
||||
|
||||
here i can now show testing of the system and how it works and a little self evaluation on the implementation part of them first
|
||||
|
||||
and performance reports and any bugs etc. i was unable to address.
|
||||
|
||||
then i can show the integration of these components in a normal working situation while tying it up with the starting secion on trying to use a system without any WM, and showing how even with such a minimalistic setup we can work so much more efficiently than then
|
||||
|
||||
and then comparing what i built out with other ones liek xfce i3 and all in terms of how it turned out.
|
||||
|
||||
---
|
||||
|
||||
then a section on what i learnt from building this system and what i could do more and how it makes me appriciate windowing systems and parts of our computers that most people ignore while actively using
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
link dump:
|
||||
|
||||
https://linux-hardware.org/?view=os_display_server
|
||||
shows wayland overtaking x11, but only very recently
|
||||
|
||||
https://blog.davidedmundson.co.uk/blog/metrics-in-kde-are-they-useful/
|
||||
(shows 45% wayland and 55% x11) but a lot of older devices wouldnt switch as teh difference isnt as noticable, but for newer systems where wayland is default it was more like 80% wayland and 20% x11.
|
||||
|
||||
gnome has cut off x11 support entirely while being the most used de.
|
||||
|
||||
https://www.phoronix.com/review/x_wayland_situation
|
||||
|
||||
This explains teh problems of teh x11 system
|
||||
|
||||
https://www.linuxteck.com/x11-vs-wayland/?utm_source=chatgpt.com
|
||||
|
||||
wayland improvements for security, frame memory usage and fixing the tearing
|
||||
Reference in New Issue
Block a user