 Hi everybody! Today we are talking about tiling and in fact I've already talked a lot about KWIN that is the KD Plasma window manager and tiling. However, tiling was never like a feature of KWIN but it was always implemented through third-party scripts and I've always been actually slightly critical of the idea that by implementing tiling inside of KWIN directly it would give us anything better than what third-party tools currently offer just the scripts. However, you know today might be the day that I change my mind because tiling seemed to be coming to KWIN. In fact, there is a merge request and although this merge request is not currently being merged yet, I am positive that it will be merged. However, as always we are talking about stuff that is not finished completely and of course it might have some bugs or hiccups, it could be improved visually, all of these things do still currently apply. So we have this blog post that describes the functionality and that is rather useful because it tells us what this tiling inside of KWIN should be and what it shouldn't be. It comes from Marco Martin who is like a KD Plasma Core developer and it includes some videos about it but I'm going to show it to you because I've actually built the merge request to see how it works. So I mean let's just get to it. It is not meant, let me highlight this, it is not intended to be a full-fledged replacement for I3 or Vismuth. It is something from this point of view that is much simpler but I actually like it. Let me go through it and this is what you see after you first use the keyboard shortcut MetaT to toggle it and out of the box there is no tiling enabled, configured, anything. What you can do obviously is to set it up. So we can split horizontally as an example and now we do have two tiling areas. Now how do we use them? So let me get back to normal windows. Let's take Firefox as an example. If while I'm dragging Firefox around I press shift you can see that I can now snap Firefox into one of these tiling areas. Let's do this one as an example. Let's also open up a file manager and put it here. Here, nice. So you do see that now they are tiled and what is the benefit compared to the usual tiling? Well first of all you can now resize these two areas and since this is more like tiling these two actually snap together. If you go back and just try with the usual tiling which is this one which is just the normal shortcut for you know tiling two windows together this works. Since when? Like this didn't use to work? Is it from this merger? Because I don't know actually. This did not use to work. Maybe I have some third-party script that implements this because I was so annoyed at the lack of this feature that I actually downloaded a script. Apparently not. Okay so it works. Sorry completely wrong on this but you still get the options of you know actually creating more tiling areas compared that what you usually have just by the normal quarter tiling and then you can you know resize all of this to fit your liking which is pretty nice. Whenever you've done that you just go out of the tiling this tiling mode and then you can drag any window inside of that tiling area just by pressing shift so that is pretty nice. It also supports this floating tile concept which is this little tile which you can actually drag around to decide where it should be and what size it should have just like this. Now this really is meant for something like large monitors very wide monitors as an example in that case you could like separate three main areas of the monitor so that they are three distinct tiling areas and then you can just drag and drop the windows inside those specific areas. That sounds pretty useful actually. You can add more than one floating tile obviously that's nice and finally one thing that I did appreciate in particular is that you can customize directly here the amount of padding that you want to have between the tiling areas. Now a little detail from regarding this thing so you might see that I do have a floating panel. Now the floating panel will defloat as soon as anything touches it and in this case you can see that it's not defloating but if I turn the padding into zero then the windows start touching it and it defloats which means if you like a floating panel that never defloats then you can turn on the padding and make sure that the windows never touch the panel and thus the panel never defloats. If you do want the panel to defloat then you can set the padding to zero and make sure that the windows do touch the panel which is pretty nice. Personally I might go with the padding. Now it's not just this. The fact is that this is really meant to be something basic but as he says here hopefully a robust mechanism in the core with a pretty minimal and an obtrusive default UI and this is the very important part. Then the mechanism will have scripting bindings which should allow for third-party extensions to use it and implement it which means that cool stuff like bismuth which is mentioned just as at the beginning of that article and of this video should be able in theory if this is implemented as it is currently meant to actually use bindings regarding this tiling mode that is directly implemented inside of kwin to actually do the tiling. So instead of actually writing their own tiling code this could be something to improve their tiling functionalities and I think it is particularly cool this idea of having a feature within kwin that is actually customizable for third-party plugins. That's cool isn't it? Now this is currently lacking some of the things that you would expect for it to be competing with i3 and bismuth like I don't know keyboard shortcuts it doesn't have currently many keyboard shortcuts except you've seen it meta t but that's not the point again this is not meant to compete with i3 i3 or bismuth and by the way you can use both i3 and bismuth with kd plasma so if you need those you have them this is meant to be something that is directly within kwin and that you can just use and nicely you know add some nice functionalities to like large monitors if you need these kind of things. I really like how this feature is implemented actually.