This is implemented implementation I was reading the titleist this video okay it’s a German speaking English I guess then I’m a German speaking English as well in this video changing language all the time wonderful um so let’s connect to the lagoon calm and keep building the thing so yeah this is a vanilla Minecraft server without roots or admins and so on and mmm yeah I don’t feel like doing a big introduction right now if you want to know something about the server wash like any other video on this channel then let’s go we are going to watch a video from the media CCC dot de With the title 36 c3 cows last x11 and Weyland a tale of two implementations All right welcome everybody we’re about to start the next talk which is the bug topic that I currently know very little off hello I’m really excited and looking forward to learn a bit about window managers which is you know definitely interesting so I’m very happy to introduce right to Who’s going to talk about his self written x11 window manager and yeah he’s going to talk a little bit about his experience implementing it and what he learned on the way so please welcome Rachel Wow fancy so hi I’m right you and this talk is basically terrifying me because this presentation Is given with a software that I’ve written so it’s an early alpha space so a pretty terrifying situation anyway I’m going to talk a little bit about my experience of x11 Weyland and implementing akari which is my window manager slash compositor and another interesting thing about this topic Basically spawns a lot of people that have a lot of opinions it’s kind of weird that people have very strong opinions on that but maybe I can give you some interesting maybe important information about what’s basically or not so yeah I said this talk is a little Bit about dakari I’m going to talk a little more about x11 abuela but first of all I want to tell you why I basically started doing what I did in the last one and a half years so I wanted to build the window manager for some reason and later on a compositor so I’ve been spending like the last one and a half years looking at x11 looking at Wayland those different protocols and roughly spending nine months working with you would be one of these and so I have written this this whole window manager which basically does things like moving your windows around resizing them does Displaying and all the stuff and makes Matt makes gives your ability to manage your windows sorry al I’ve written this thing from scratch and I was largely inspired by things like CWM and her slow spam so I wanted to have something that is sport driven so I’m a commuter iy 1 I Have shortcuts and and fancy things for everything I don’t want to use my mouse so I want to be able to do that so fast navigation and stuff like that now when it’s a waste very little screen space now I will show you what I mean to have Waste very waste very little screen space so this is this is basically my aesthetics so this is this is a terminal and it has a one pixel border and every pixel mean something so the white border tells me this window has focus that’s basically all wanna know all I want to See and I don’t have type of bars which consume a lot of stuff except when I have title bars so I build something like an oppressed moth it shows me the information that I need like business like fish my shelf it’s on first workspace and it’s in the group shell I’m going to talk a little bit about what these groups me and as you can see it tells me ok this is going up that window that has focus services inspired by CWDM would have this concept of groups they can put windows inside of groups and display them independently And you have groups 1 to 9 and I wanted to be able to have independent groups because I started using them as workspaces and which is kind of like defeats the purpose but I want to be able to group windows together in an arbitrary way so when you open another Window and open another one you can see you that when I press them off that these frames turn orange that is this belongs to a group and I can cycle between windows and titles of a group and there is nothing like that now I start a route show through this is a Different different group so I can cycle between the groups so this is something that that I wanted to have for some reason and it turned out to be very very much money it’s very much fits my workflow so yeah now also I’m not a big fan of tiling except when I want to Arrange my views and so I’ve built something that works like how to a fan where I can tile all these views and skim through them and this is configurable so you can write your layout and something that kind of resembles Jason it’s UCL which is the universal configuration language which Is used by FreeBSD by the way yeah this is basically what drove me to do this and I also want to have minimal dependencies like have a very slow set of libraries that I’m using and I want to be energy efficient I’d try to be as energy efficient as possible because Yeah saves a lot of time it gives you a lot of time with your would-be computer because battery time increases drastically and also I wanted to target FreeBSD because that’s the operating system that I’m using I will I will at one point support Linux and other operating systems but right now it’s It’s FreeBSD only yeah so it has to those two implementations I wrote this thing basically twice which spend twice the time on one thing why not yeah so what were these different approaches so we basically have X 11 which most of you people probably know and then we have This new thing like 10 year old whaling and both of these both of these things are basically protocols like TCP so it’s a protocol that somewhat describes your your application can decide I want to look like this I want to work with events in a certain way and there are Certain implementations like the export server and there’s also the Suellen thing but first let’s talk a little bit about X here and the X Window System which is the implementation of most of they’re probably using he said when you’re using recently known which is to play them by Default so let’s see the thing looks like this so we have the kernel we have to storm on setting stuff we had FTM which gives you a keyboard mouse event but stuff like that and in the middle we have this X server and it’s basically responsible for rendering all the stuff And then we have a bunch of clients up there so this could be your terminal this could be your screen locker and your window manager because your window manager is basically just the client to the X server it’s kind of odd and this step is optional what recently maybe like 10 years ago Even more 15 years ago they and it was compositing thing so when you press a button to generate an event the X Server tickets always crying it goes to sense that one to the client but find those things it figures out how it wants to look like to the X server then the Observer sense links to the compositor father to her munchies everything together and prints that back to the X or and here so basically this place all this stuff so we have a lot of things going on here and yeah this you can see there were a lot of processes involved And a lot of communication between the organ space so what does the window manager look like this is like the most simple and one attention that I’ve found it’s a tiny WM written by Nick Welch and it’s it fits fine I don’t know if you can read that shouldn’t but um just to Give you an impression of how easy it is to getting started with window management I basically have my first working implementation of Akari after week and I started using it on a daily basis off the bat which i think is kind of impressive because the platform gives you so much there’s so many Mechanisms that it provides but you basically have everything next server end yeah yep a lot of the stuff for free so now I want to be able to talk to that’s heaven talk to the ex server I said it’s a protocol and there are different ways to speak the AF server And the old way like the old people did call excellent and it’s all these of these API calls are pretty pretty synchronous to write a request and your weight and your each your response sent over and over again to do that it’s so you can see you waste a lot of time Waiting a lot of applications are really waiting like a long time before the x over it’s gone kind of annoying so people came up with x cb which is the foundation of a lot of things that the expert that’s basically build around this X CD plane but with X It would actually be you can what right right right right then wait for the responses and just consume all of these response which is a lot faster and I went with with this ICD and it gave me a store of 308 fluffy we’re no magical feeling compared to Others that were using excellent so yeah I went that way so now on I have to pack a lot of stuff so I’m hopefully I’m not going to faster so I want to talk a little bit up a be some interesting things that I I discovered when working With with X so let’s think about how I order windows in a stacking window matter so I basically put them on top of each other and then you get service to render them certainly you need to have some sort of ordering there and with order the windows we know the debt service Rendering them and you want to cycle through them so these have this console locus of these groups that I showed you and the answer has no idea about them so I it doesn’t know when I say go to the next window I could do that because it Doesn’t know what Bruce are so what I had to do is essentially and to reimplemented all this functionality in my window manager I to and synchronize them the X server now has an ordering of Windows and my window manager has an ordering of Windows ensign I’m not the Only one give me that basically every other implementation or with that of the modern modern window managers they are all doing the same thing I said to read reinvent the wheel basically which is a bit of a bit annoying and that’s the most thing let’s think about I want to Move this window to up one of the thing is that the ex server basically it has just one side buffer and then your your client to send some primitives to the X server and it draws banks there so it just crossed within one buffer and then You’ve seen this if you race this window then this portion of the screen needs to get redrawn and so what the H server doesn’t sends an expose event – window – to the client of window – and then it generates all these primitives like write a line draw a circle and an Awesome text over there and it’s just redraw sentiment so you sometimes you really see this effect where when your computer’s on power management that this you can watch it redraw itself and that’s kind of like learning to accept that but yeah it’s get it gets better with compositing but it’s still not Pretty it’s really something that annoyed me at some point and with modern with modern two eclipses even why they basically draw everything in the pics map and they have this pixmap over to the Xserve ends they draw this but don’t touch a drop distraught please and uh You can think about how much how much traffic you can generate when you have like this giant it’s map and on my screen resolution one frame of the entire studio basically like ten megabytes and let’s talk about network transfer see here that’s interesting thing to think about it but yeah this is Basically what happens and this was kind of annoying thing with excess cover another thing so this is code from I don’t know if you read the comment this cook from awesome that I saw as before it says map the ex-client is its window manager the window mender was Basically just a client I mean what did sometimes have to ask for a keyboard like when I open a view and I want to change the grubens in and I want to be able to type stuff here and so I have to grab all those keyboard inputs because I Want to like get all get all the screen events get on keyboard events and write that into a buffer so this is something I saw in awesome and awesome is basically like begging the server give me that key wart it’s doing that for a thousand times then it waits for a Millisecond so it basically tries for a second – please give me that resource even though but where no matter should be the thing in charge it’s basically begging for resources yeah this this felt wrong when I wrote it but yeah it’s also what most manometers seem to deal with here that’s that’s a Problem when you have a middleman yeah this is so would be conclusion of when I implement this an exhibition is that okay well it’s really easy to come up with the window manager this is like takes a week to get something roughly working and yeah but all these graphical User interfaces they kind of evolved they all basically all threw off upstream rendering then just shove around its maps and stuff like that maybe there could be something better you have to get really enough extensions that’s also fun because at one point you will discover a client that would use an Extension that you never heard of before and it will do something weird which is also fun and then you have to look up in all these other different window measures how they are dealing with it and it’s it’s not free and X is a global namespace like every Client every point in time can become a key driver can become screen recorder and just like send your stuff over the wire can have a lot of fun with that but we so from security standpoint that’s not good then the window managers decline that’s the back for fingers like the mouse or Keyboard so and you also complicate a lot of functionality and you ugly screen our text so mostly speak a bit fed up with this and thought well there’s this new new thing called Wayland so why not to look at that as well and see how that works so this is the architecture of Wayland and we basically just take out the entire depositor of the entire X thing now we just have clients and all these clients do off-screen buffering and now the client just said hey Eustice buffer and we all use shared memory here so it’s not going over the wire or Anything like just right to its buffer and I tell the compositor please display this and the compositor takes care of all the input events so I don’t have to pack for my keyboard anymore the compositor isn’t broken which also makes this from a security standpoint it’s a Lot more interesting because now you can say okay I will just deliver this keyboard event to this client the other ones don’t see that and the other ones think they are perfectly the only things that exist in the universe like this is real you is isolation you cannot build Something that records the content of your pocket any other strings which is pretty awesome and every frame is perfect this is really something that can do really well and really your boss around the notion of a frame like you know when the compositor decides when to Redraw it it’s not like draw a line draw a circle draw some text and in between I could just draw a frame and flicker and do filtering all this stuff this just doesn’t happen with Wayland everything is like super smooth it’s really you don’t want to go back when you see that Once it’s pretty impressive so and there’s also stuff like damage checking and if you want to read more about how Wayland and women compositors can do things I really encourage you to read that blog post by a Mersenne probably butchering those names are for that but uh that’s that’s really Interesting stuff up to hurry a little bit here so how did I write this thing obviously I need to be able to write this Waylon colorful stuff so I just use WL roots which is the foundation for sway which is basically a three foot Weiland and it’s like the fifty thousand Lines of code you need to write anyway so I thought yeah I don’t want to write those thank you and I used that thing and it’s basically now for a lot of compositor it’s the foundation and it’s it’s very very well written stuff so you should check that out but it was worse Released after I started working on the X implementation so no harm done here I mean they want to look at the most simple Wayland compositor they can look at tiny WM chips with WL roots it’s around a thousand lines of code that sounds like a lot but keep in mind That’s a compositor that’s server and a window manager like three things in one and cage is also something interesting to look at if you want to learn like have different resources it’s like she asked thing for Wayland Thomas also use WL roots and basically all of these two Tips that you see they all support Weiland out of the box save your client Brittany GDK or TT or clutter whatever that is I’m not educated I don’t know NS DL they all have wave ends now so you can basically switch transparently switch to all these things without even Noticing which I thought was pretty neat um firefox words underwear words just set this environment variable it’s a bit flaky at times so I’m kind of glad this thing didn’t trash it doesn’t that often but could happen in the worst worst of times oh there’s MTV your video player and um W have clipboard makes my new I’m happy and if you want to be able to have X applications you can do this with ex Whalen so yeah and to hurry here a little bit basically it’s a lot less complexity it looks way better there’s a lot of cool stuff going On there um yeah so apps roughly Amuro at the same time the same amount of code here which i think is pretty neat because it does so much more you have more responsibilities things like screen monitors you have to implement them so now you wonder what kind of programming Language did I use to implement this and this probably divides the room into gay and blue law but I basically this bit is for good reasons like I said before it’s fifty thousand lines of code see and a lot of people trying to do that in rust And they basically said okay it’s too hard we we can’t do that this is from the way cooler compositor which is often in Wayland and they basically said okay we can’t do this is too much work and I don’t want to rewrite fifty thousand lines of code and rust I basically don’t Have the time for that even though it will be probably an such thing to do so so yeah I did Andres sanitizing this is a very cool thing to check your if you have things like double fries or juiced up for free is a SAN is pretty cool and they used a Lot of DTrace I can show you the script later on that basically keeps track off all the memory allocations that I have sometimes with memory so yeah that’s basically it if you want to get ahold of me on a mastadon I’m on matrix you can Write an email to me or just join our encouraged headroom and or get in contact with me at the YAC Mannheim’s assembly thank you right on time oh no questions okay yeah it was yeah very interesting talks um well because I’ve never heard about somebody implementing a power window manager hmm Yeah and I really like how this guy writes all his stuff from scratch in Jesus’s own and window manager using his own you know presentation tool that’s cool that’s actually cool wait so this is to it oh you do with us maybe I should what is this wasteland oh my gosh I Didn’t know that oh man what a ending of the episode I didn’t know that we have such a wasteland on here but it makes sense somewhere those with us yeah they have to be somewhere right oh my goodness okay I feel like I’m in hell what the heck And it’s so dark oh my gosh okay well I guess that’s it for for this episode and see you see you in the next one make sure to connect to silly one.com and you can’t read it because it’s so tiny silly um calm microcell Valley the government without any rules why you can Yeah chill and play some minecraft like in the old days without anti-cheat plugins pure vanilla and have some fun but make sure to not go down here it’s it’s a mess so see you in the next episode Video Information
This video, titled ‘Minecraft Anarchy the wither cave – X11 and Wayland’, was uploaded by ZillyGurke on 2020-05-10 15:29:47. It has garnered 47 views and 2 likes. The duration of the video is 00:24:39 or 1479 seconds.
Lasergurkenland anarchy server ip: 88.214.56.94 domain: zillyhuhn.com
Small pure vanilla minecraft server. No plugins. No admins. No rules. Chilled anarchy server with stable tps and no queue. No world resets and stable uptime. The server will stay online for at least a few years.
media.ccc.de talks watched in this video: 36C3 ChaosWest: X11 and Wayland: A tale of two implementations https://www.youtube.com/watch?v=b8OY4VtYx1s