 Yes? Good. All right. So I talked about apps before. Now I'm going to talk about a very different kind of product, which is everything that is not an app that we make, which is all the different Plasma environments and things. But before I get ahead of myself, like I was about to, let me introduce myself. For those of you who don't know me, this is my name on the first line. It's not Alex. It's not Alex, especially. And it's not, I don't know, Albert. My name is Alex. That's my email. If you want to send me an email, I will always try to reply to you eventually, even if it's not on the same day. But I tried to do that. This is my 15th academy. So woo. And this means that I have been doing KTV stuff for quite a while. I've been doing KTV stuff since then. Like when I started joining academy, it wasn't by chance. And I am the KTV president right now. So I'm part of the KTV board as well. If you want to talk about the KTV things, one of these days, feel free to reach out and talk. If you want to talk about it with a beer between us, it's always a little bit better. But it's not mandatory. Now, getting a little bit in topic, it's what is plasma? And actually, I was saying that I was getting ahead of myself because I was already saying it's not an app. And actually, this is something that is our current understanding of plasma. There's been moments in history where what plasma was a framework to create apps, which is not something we're doing anymore. And it's something we might do eventually in the future, but not right now. So what is it really? And actually, I'm saying it's not apps, but we do distribute a fair amount of applications within plasma, like system settings or discover which they're clearly in the shape of an app. So when you go into the Internet discussions and look at the people talking about what everything is, it's always kind of fun that they say it's a desktop environment, which is something that it makes me feel a little bit uneasy inside. It's definitely technically true. And you can say that, and I'm not going to haunt you in your dreams or otherwise. But it has a bit of a problem. First, it talks about desktop, which, I mean, it made sense 20 years ago, 30 years ago, probably, maybe even 10, but not anymore. And especially since we started doing plasma mobile and we started doing all of the others, the big screen, et cetera, which is a little bit what I want to talk about today. Anyway, so I'm going to suggest that we don't talk about plasma in terms of desktops anymore because what is desktop? A desktop is where you write the letters to your loved ones or whatever in the light of a gas candle in a snowy night of 1893. Also, it's what Windows delivered in 1995. But the vision has changed a lot. So if we remove the word desktop, then we get with an environment, which is sure it's an environment, but that doesn't mean anything. And we would probably end up spending much more time defining what an environment is, even in the concept of Linux or software than the word is good for, right? So I'm going to suggest let's not do that. I'm not going to try to be negative during all of the presentation. Don't worry. Then we could say, all right. So we have it on different platforms, different form factors. We have it on a bunch of different kind of places, even in apps, right? So it's a bunch of frameworks to develop apps, right? But for starters, the framework definition is something highly technical. And I don't think that it either solves anything, right? Because when we are using a plasma-powered device, we are using a very specific set of features and of components, right? And while they could fit into the definition of framework, if we stress the definition of frameworks in a way, we could do that, but let's not do that. So while right now I'm talking about frameworks, I already delved into this, well, maybe it's an experience, right? It's like what these people have been trying to make me feel when I'm using a computer, which is not entirely wrong, although not everything you feel in front of your computer is our fault for better or worse. So I'm not going to go with that. So with the lack of a good one word that we can use, because I am not linguist or even an English native speaker, I'm going to go with it. It's a UX for a number of devices designed by us. Us being KDE, and more specifically the people in KDE that are working on plasma, which goes, of course, and without needing to say far beyond the actual developers who do the commits of these ifs and wiles, but like everybody who thinks about how we should be using when they see a problem, they poke us to address them, right? So I've been talking about plasma as if it was a thing, but now we're talking about plasma products, which is something that we can definitely enumerate, and then we should now be able to define that. So not to make the introduction of my talk all that much longer, let's go with it's a UX for a form factor designed by us. We could add an addendum here saying with a specific set of technical solutions that we collectively came up with, because if you had to use a different thing for everything, it would be very easy, very hard for us to share any code, and well, all of that. So I guess it does make sense. But in practice, we can maybe argue that it's an implementation detail that all of our plasma sessions are using the plasma framework, although it's an implementation detail that is very important in that like we're going to go through in this presentation, understanding how this technology works is going to make it much easier for you to be proficient at putting together this kind of products. Now, let's see what we are now before creating new ones. What we need to understand first is that we have some already said. Because one of the big outcomes that they want you to have from this presentation is I shouldn't be always creating new things, being mindful about what we have and how to improve it for my use case is something that always should be on the table and we should try to strive for. Now, this is a Plasma desktop like we've all known it for at least in Plasma 5 and it's not entirely different from maybe component by component from what we had in Plasma 1 or 2. We have menus, we have windows, we have applications that you can drag and maximize and all of that. This is how test-ups were invented a number of years ago and that's what we've rolled with for a while and it works because that's what we learned. It doesn't mean that test-ups need to be this way. We could have done something else but this is what we did and this is what we are and this is the technology that we are betting on at least for this kind of devices. Now I'm talking about desktop again but it's even false even in this very narrow context because I am pretty sure that 80% of our Plasma desktop users are on a laptop or on a different kind of device. Nowadays, laptops you can recognize the screen which would make anyone from the first laptop users gasp at this person is crazy why are they breaking their laptop. But it works quite right and actually we can for example use this Plasma desktop both on a desktop device and on a laptop and there's been a lot of effort into making sure that this kind of device, this product can be used on a laptop. It has support for battery and power management. This is something that wouldn't entirely make sense on a non-laptop device but it makes sense. So it's already our first example that this is something that we could have a different Plasma for laptops or for testables but we haven't done that or at least we haven't done that yet because well we value our time. Now with Plasma 526 we see that it's part of our release. This is something that had been going on. This is Plasma big screen. This is a Plasma experience designed to work on TVs and anything that you are sitting a little bit far apart. It has for example something that they started working on. Aditya mainly, he has a talk so he might give some insights on the topic but he started working on voice integration for it because for the use case it makes a lot of sense. So if you're thinking about laptop, does it make sense for you to talk to the laptop if you have it on your lap already or on the desk anyway? Probably not. You can already reach it with your hand but maybe or at least this is what they thought when they designed it. It does make sense to talk to your TV because it's a few meters away and well you want to control it and to be well explanatory. Something that also they had to work on that we just never realized. It was super important is what we call right now the Plasma remote controller component which makes it possible for you to use your TV remote on Plasma big screen and incidentally also on the Plasma desktop because we use the same technologies so there's well fitting back and forth and then there we also can use other kind of remote like gaming console remote and some other stuff like that and if you wanted to add something there this is something we could always do. Now I am talking about this as this is something that we needed a new product but we could easily if you wanted make the argument that it wasn't needed. I have been connecting my Plasma desktop to my TV to play movies for the longest time and then you would be quite right. If you want to watch the last movie you definitely didn't download on your TV. A very good way of doing that is to plug in your laptop or your desktop into the TV and play it. You don't need a whole new shell to be able to watch a movie full screen because we have a ton of software that already does that for desktops and in fact many of the applications that you're going to use on the desktop are the same as here. You don't need it but it's not convenient at all. You don't want to have a mouse and a keyboard connected to your TV just to be able to watch things and maybe actually if you're downloading definitely legal things you want to do it in a way to communicate that makes sense in this kind of UX. If you're already integrating the remote controller for your TV you want to be able to do your things from up and down and left and right and when you cannot you want to integrate maybe these things with KT Connect which is already doing these things and the things that KT Connect will do with this kind of shell will already be different from what you would be doing on the desktop. I'm actually mentioning specifically KT Connect because they already did some specific integration work with KT Connect so that for example you can send your voice into the phone and into the Minecraft engine over there to execute the commands because well you need a good microphone and something that you have on a phone often is a good microphone. Another plasma product that we've been working on over the last several, several years is Plasma Mobile. It's again using 99% of the same code as the rest. It's using the same kind of kernels. It's using the same Qt. It's using the same KT frameworks and it's using a lot of the same plasma components. You did see Dev & Stock, I'm sure many of you, you saw that we're sharing the same components for notifications. We're sharing a lot of the same applications but yet if you put Plasma Desktop on a phone which definitely you can do it wouldn't be very nice, right? Like for example you would have over here a little button that opens a menu that you can scroll on. This would be fine but I don't think anyone wants to do that. So it's all a matter of seeing is it worth it what we get to create a new UI but also well how convenient and how better your product is going to be when you adopt it. But for example we can see that we never ended up putting together a product for our tablets which yes it's not entirely true. We tried that but in the context of this talk we don't have today a Plasma for tablets and that's fine because some tablets will be alright with Plasma Mobile, some tablets will be fine with Plasma Desktop and that's alright. And if one day we say tablets definitely need these like if I shake it do something entirely different we can do another one. We can do it and why because we have all of the technology to make it easy to be done. So now what I want to put you in the mindset right now is before starting on Plasma product this means that you have a big long journey to take on you need to be thinking about a ton of things it's definitely doable but you need to be very mindful about what you want to do but then sometimes it's probably worth it and even advisable, right? So to do this presentation I'm going to use as an example the well this is the very first super alpha squared of something we call Plasma Inc which is for a device called the Pine Note which is the one that you can see framing our lovely black and white Plasma which is not Plasma for very old TVs but actually one of these Inc devices that well are one of the special things that they are only black and white but they have a ton of other specificities. So in this case I think that it makes a lot of sense that we do at least some of the adaptations that we need because for example if we show a lot of different shades of gray over here it makes everything much harder to read and for example we're going to have like we need to make sure that there's no animation here one of these things about this kind of displays that the refresh rate is not great and one thing we could do as Plasma is we're used to 60 FPS let's fix all of the Inc displays which if we did we'd probably get rich right now but that's not what we decided what we decided was let's try to not have animations right this is the kind of thing we're thinking about like let's make sure that when we have any kind of device with different restrictions we can adapt to them and be the kind of wall desktop we want to do for example here we haven't really changed yet the setup of the Plasma desktop because well first it's a super alpha so we didn't really have the time yet it could probably make sense we have several mockups for example to make the menu full screen because you don't want to be scrolling on this kind of of UIs like I said because very slow refresh rate so let's not do that all these kind of things need to be thought of and for example here you can see Dolphin is Dolphin the application that we want to have there maybe not probably not even but well we need people to think about it and I'm talking about this as a super alpha thing and I am hoping that all of you are starting to think what is going to be your role on this product because if we want to make it happen we need to work on it anyway so it's about this balance right it's about the balance between making everything go through the same solution like maybe Plasma desktop everywhere or Plasma mobile everywhere which I don't think it makes any sense or making an entirely different shell for any device like it doesn't even need to be any form factor right like we could decide that any HP laptops they get a new shell with a panel on top and whatever else right this could be done is a good idea I don't think so especially if the devices are not entirely different but it sure is something that we could be doing and please don't start sending mesh requests about this kind of details it's well an example now I'm going to try to take a look right now at what does it take at the technical level to do this kind of integration for a device not because you have to start creating very different devices right now but to see what kind of things we did for this Plasma in thing which could be looking maybe more complex than it is or less and then we will look a little bit later on a next section about the non-technical aspect of this endeavor effectively and as it is set up right now which actually doesn't even need to be the end game on the subject is that it's an executable so like you know when you start the session on your device I guess something is executed by SDM or different component different but similar component we execute executable what we do here is basically a script that just does this here I simplified it from the one that we have the one we have on plasma ink and plasma mobile and plasma big screen is maybe like 20 lines but it was too boring and it wasn't proving a point I am here to prove a point so what we are doing basically is just setting the shell that we want to load and starting a Plasma Wayland session and by the way before you ask or something I am only considering doing any other form factors using Wayland I don't think that it makes sense using X11 anymore for anything that isn't a desktop or a laptop but I wouldn't go much farther because specifically in this kind of cases Wayland gives us a very tight grip on the kind of relationship we have with the hardware whereas it's something that we need to delegate to X11 and Xorg in this case for X11 which it's very hard for us especially if none of us are Xorg developers which is something that we've all suffered over the last couple of decades now like I said it effectively is one of the files like you will see on your user share Wayland sessions you can see others over there from Plasma you will see others from non-plasma it's also what you will get I don't know from Sway and Nome and etc these executes are executable which is what we looked at before now you saw we were setting an environment variable that loaded what we call a look and feel which basically is defined by these four lines again I did clean up this because it's a little bit more complex than that but the rest is not all that interesting but what we're saying is Plasma Ink we're a Plasma shell and we're loading Plasma Ink so it will get all of the defaults and everything from packages called Plasma Ink and if they're not present it will use the Plasma desktop so that's how we could do like making something specific like the color stuff that I showed you and all but otherwise it looks like a Plasma desktop but then we can start like modifying things little by little until we're at the point where we want so this allows us to share a ton of code with our app streaming in this case which would be Plasma desktop there's a lot of things that we're going to need that can just be implemented in Plasma desktop and that's fine and everybody has them and there are some things like the colors we don't want to make everybody use black and white only because we want to be able to support in this place right so for those cases we can make it specific and that's fine so that you see what in practice it looks like because it could look a little or sound a little bit ethereal these are the defaults file which basically they define like here we're talking about this is the Plasma shell rc file and then we have the group and then this value this is going to be written into our .config file so when in this case when Plasma shell loads this application package it's going to find this for the shell package key right so as soon as you're using or as soon as you're developing Plasma shell it's already transparent to you you don't need to have a ton of ifs to see if I am Plasma ink or if I'm anything else you're just fed the correct thing something that we've developed to make it easy for you to create this kind of shells is Plasma Nano if you saw Nate's presentation it was started I think to make sure that the micro device and Plasma mobile could be sharing work and it's proved useful on other cases also big screen now of course is using it but there's other cases that you might want to use it we're not using it in ink for example just yet because we're defaulting on Plasma desktop which is more useful that way but it's something we could do if it came to it like I said it's a matter of whatever saves the most code wins now we've been talking about the technical level and note that we didn't talk about any C++ or any QML I mean definitely there is some of that but so far we've been talking about mostly desktop files and configuration so what you want is just to make to put your system into a state that looks for the defaults and the components they want to use into a different place and in case of many of the QML components like the lock screen the lock screen is different on Plasma mobile and on Plasma desktop what we do is we have in a different place the same files more or less and then when you are on that shell you're going to find the right one regardless now I was talking about how not to be creating like Maniacs a new Plasma product for everything but that it needs to make sense right so what we need to be thinking about is a user story I am not the most qualified person to be talking about user stories but you can definitely look it up on the interwebs but a little bit the idea is like what do you want your people your users to be experiencing over their process especially when they get this new device that they might be familiar with or not like for example something that is very clear on both Plasma mobile and Plasma desktop is that it's something even Plasma victory it's something that like you assume that there are some concepts that your users are familiar with from the get go but this is not something necessary right like you could be creating an entirely different kind of user experience that is new because it's a different kind of device that you can use for whatever right so there's something to be thinking about also something to think about is hardware vendor I think that is it's very important that we don't think about creating products for hypothetical vendors something we've been doing and in Linux and it's definitely been a problem and whoever doesn't say it's a problem is lying is that we haven't had like very ad hoc hardware vendors this is something we've been fixing over the recent years definitely still having problems right but you need to have a product like something in mind that you can touch that you can test with that you can have your people test with and try it and it needs to work for these things right then you can find another one or one also it doesn't need to be like you creating the hardware right it can be another company it doesn't even need to be when we started Plasma mobile with the wear and any easily available hardware so actually Bushan started I think working on putting it on Nexus 5x and Nexus 5 before actually it was probably before Bushan anyway KD developers started working on making sure that that device was available because we needed something that we could just rely on and make sure that it worked and ask our friends to test it over there you need to have something that you can buy and you can put the hardware on and what I said it doesn't need to be you shipping it you don't want to end up in the position where you cannot well tell your friends to buy this thing and it's going to run our experience right if you need to tell people you buy this thing you white wipe the the hard drive with all of your guarantee and then you put this other software that we create which is like ace I mean it's fine we've been doing it for a while and we've been suffering it as well so let's beware of it now like it was talking before about apps on the go talk we need to be doing far more beyond the technical work even if not it's not that technical work what I was talking over here we need to be doing the promotion the explanation of the product and actually having a hardware platform for example helps a lot over there you need to be able to explain to humanity what your product is about and why humanity needs your work because if nobody needs your work maybe and don't quote me maybe you're wasting your time but well hopefully not then something we've been doing in the past is and we're doing more and more of that is well thinking about how our binaries reach the hardware like I was saying before we weren't thinking before about the hardware because we're not even thinking about the step that took our software into hardware which has been distro but especially when you're starting like I said you need to have a hardware to run it on and to have a hardware to run it on you're going to need binaries and you need to have a plan for those this can be one of the distros that we have and by seeing distros here I am already being a bit biased maybe maybe not but you need to have a plan for that anyways for example with the kitty's limb book what we've been doing is kitty neon with the pine phone what we've been doing is working with manjaro but in any case we need to have like at least a path to adoption then it should never be just you working on that platform you're going to have what you're going to want people to be collaborating they can collaborate straight out into your shell by well by making merge requests but that only goes as far right we need to have a plan for people to be able to put together their ideas again what we've been doing in the past has been to rely on the distros a lot to be doing this kind of work but I think that we're seeing that using other means that are more direct to us also helps us like we can have a very direct relationship with the distros and say now we're working on the shell on these topics right but we cannot have every distro care about every different app and every different framework that there is around but if we have means for well third parties to read your platform that works and like David was saying this is how we've been doing like how Valve decided to do it was through flat apps specifically so yeah this is something you can should be thinking about now something that I thought that it could make sense to go through some topics that are well it's a tempting to say alright so you have this plasma desktop thing I'm going to just instead of making something on top and be sharing all of this stuff which is definitely more work what I'm going to do is I'm going to just do these couple of patches and it's going to be alright and then this what we could just call a micro fork right like yes Alex said in academy 2022 that any distro that is patching is already working it well then yeah it's probably a fork because and actually this is the biggest problem is that as soon as you start changing small things and well you get comfortable with it and actually you start working with it and on it you will see that you start doing more of that and this is a problem this is a problem for you as you're on downstream because you're changing things that potentially don't quite understand and it's a problem for us because all of the work that you're putting on it doesn't reach us so the other side of the coin is going to be just work with upstream like we said it's important that you establish a relationship with the different people who are going to get your product into the user's hands so if that's not you make sure that these people who are doing that talk to you explain to you what their problems are and that you have solutions for them because otherwise they're going to come up with their solutions and yeah they're going to fork and we don't want to fork right see the last slide before we end up in a weird loop over here just going to remind you that we're all here developing plasma because well we want to improve it and there's room for improvement so if you see something that is not working and it doesn't need to be a bug a something super obvious you think that it should work entirely different don't assume that somebody decided something needs to be in a specific way and it cannot be changed everything can be changed and everything should be discussed and I am sure that if you find your plasma designer developer whatever that you might need and have a thoughtful conversation you can do that you can make it happen and by the way we have more tools than we ever did like something that gave us the pandemic besides something a couple of years of non-talking to each other in person has been setting up something called me.kayadorc which is a magnificent tool for meeting each other you don't even need to travel you don't need to go anywhere you can just say okay let's have a talk you have a talk with each other you see the different points of view and I am definitely sure that this is better than a shared conversation on chat that very quickly escalates and well potentially doesn't lead anywhere and we talk about devices something I want to say is be careful with harm. Arm is very powerful and it has allowed us to do things with pain for example that we had never seen with other partners but you need to have a very committed partner to do that like any adoption that I've seen on a device on arm has needed very specific images for any kind of device which is something that is fine if it's a very important device for us but if we are on the prospect moment of our product when we haven't decided just yet to adopt it it can be very draining to see a percentage of your team instead of being able to worry about the user experience and what they're seeing when they're using your product that they need to be fighting with the hardware to make sure that it's booted. This is not something that we can afford I think so I would recommend working with more standard platforms that way. But in practice I think that it's a good opportunity for us to like be putting forward some experiences that among a very boring set of components you end up putting a very special experience that it's created by us making our users life more oh it didn't jump slides well it doesn't like my slide, well it has a nice landscape of Barcelona you're missing it that you can have your very special experience with what you're doing because there is definitely room for improvement we have a huge industry and we have probably the biggest competitors in our realm we're competing against Google Microsoft we're competing against Apple and that's probably one of the most uphill battles but we definitely have a chance and we have a chance as soon as we understand what our users are as soon as we understand our users and as soon as we can cater to them so well now we have a slide that says question mark because we can probably take some questions now or over the week. Thank you very much Alesh for the talk are there any questions in the room for the speaker I just checked the online ones but there weren't any at this point yeah so maybe someone in the room just a quick question like you showed that you will use desktop UI on the ink screen right? well I said that on the super alpha we have right now that's what we have so would it be better to use the plasma UI screen for such use cases or you think desktop UI is much better you mean the mobile UI? well the mobile UI relies on you like doing things like scrolling right and I'm not sure that this is the best solution for a screen that has very low refresh rate but I don't know like it's very easy to change like you said so you can try change and see I think that what we probably want to do is bespoke shell like we did for plasma mobile but it only makes sense to do that once we know exactly what the user experience of that device is going to be and I don't think it's clear to me or to the community at large but I mean it's definitely open to discussion and actually we do have a buff about plasma ink I'm pretty sure it's on Monday maybe Tuesday so yeah go to your buffs make things happen last second question on the chart here you mentioned ARM any thoughts about risk 5 so my complaint about ARM isn't the instructions in the executables right I wanted to say I couldn't care less it's I could care but the important thing is how hard it is to set up an image ARM could still figure themselves out right like as soon as I can create an image for a pine phone and use it on I don't know an iPhone then this problem will be solved and we can decide about other things but until that's the case I am still gonna feel like it's a big big effort to adopt ARM as a platform unless we have a big infrastructure like I said with the pine case anyone else with questions thank you very much Halish