 Hello everyone, and today we are going to see what could be our first patch to actually help KD develop So in this case we are going to do as an example Patch to the system settings to actually make it better I'll just make an example and then you can come with actual ideas and do what I did But with actual patches so you can get involved And what we're going to do is that you often I often see people saying like I type this in the search bar And this section should come up, but it doesn't well today We're going to make sure that it actually does So remember that time that you search for something I didn't find it Remember what the word was what the system setting section was today. We're going to fix it So how do you do this? Well step one is actually ask where these keywords are Because we do already have a system for actual actually adding keywords to a system setting modules They're called not sections To make sure that they're They come up when you search for something and to do that I myself asked in the visual design chat And people answered me. I can actually bring that up You can see that a very kind person told me it's xkd keywords locale section in the desktop file And that was so helpful. So as you can see asking actually works So he talks about this desktop file. What do we actually find that in kd source code? Now, let me explain one thing first. When you open system settings and I've got them here You see all of the sections and sometimes sections inside of them So all of these sections that you actually see are called the modules the kcm And I don't honestly know what that stands for like kd control module maybe And the idea is that they almost work as if there were standalone applications That get embedded into system settings And that is pretty nice because even like third parties can add their own section their own kcm And Manjaro does that as an example and I think other distributions do But what that means is that To make an example windows management kcm are going to be inside the code of Actually window management, which is kwind kwind as window management Whereas a workspace behavior is mostly going to be like In plasma desktop or plasma workspace, I think So it's not like you have the system setting up with all of the sections And you can find all of the sections there in the source code But it's actually fragmented depending on what's actually used for If we have somewhere, I don't know actually like a bluetooth. Yes here a bluetooth section This is going to be in the bluetooth repository of kd invent. I think it's like bluetooth CTL something I don't know but We're just going to use some random kcm. I've opened up a couple already, but What's the idea? So if you start saying, okay, they told me about this xkd keyword But I don't actually know Where that is In the code. Well, the easiest way is to just Well clone some repositories kd search build some stuff as I explained in the last video that's always useful I suggest kwin, plasma desktop, plasma workspace, plasma frameworks These four are I think the most important repositories to build Along with all of the dependencies, but that's done automatically by kd search build And then you go into the Search directory and use kfind which is like the most useful app if you don't know how to use it just go into Home kd source where all of the source code of everything is located you click You press control f to search and then more search tools kfind And you start you can search by name But what actually interests us is by text and here we can actually put what we were suggested before Which I don't remember xkd keywords And then you just press enter and you start searching since there is like lots of things in the source Directory you'll need to wait a bit, but after that Well, you can see that we already have lots of stuff and let's make an example. We have kcm firewall This is going to be the firewall kcm kscreen. This is going to be the screen thingy Playmouth, this is the login manager. I think no, maybe not the login the login animation There's sddm, which is the login one and it keeps coming Let's pick one as an example baloo. This is the kcm So the system setting module for baloo, which is the one that you all hate for some reason Let's open it up with gate And we can actually search With ctrl f as you would do normally in a file For these xkd keywords And here we are so basically baloo says, okay Also make results come up for search find files archives document file system hidden files File content folders directory and so on. Is anything missing? If so, you can just add it and you can easily guess that it's like this. Hello, but Let's actually try to add something and see that it works And but not on baloo That's kind of random. Let's actually go see the source code of kde here I hope you can see that and then you can go on. Let's speak as an example Either plasma frameworks or actually plasma workspace. So plasma workspace. We should have kcm's kde control module Modules, I guess And you got the users one the look and feel. Let's pick you look and feel. What is the look and feel module? It's This one It's called global theme here and inside of you inside of it You can see that there is this kcm look and feel desktop and this is the file. We were looking for Does it already have some keywords maybe? Well, that's actually really easy to find out at this point We just control f keyword And there's none we can actually add them which is nice Especially because we already saw how to do that. Let's pick again our example file baloo And we can see that after comment. We just add this string which we can copy paste Oh, sorry, we do have keywords. I'm just Blind, so we've got theme look feel global theme desktop appearance skin Let's also add of course pizza And let's actually try it out If it works or not, maybe it doesn't how do we do that? Well Now that we've built this using kde source build if you haven't do it But now that we have there's no actually you shouldn't Run again kde source build to build this because it won't work What you should rather do is get back here make a new tab in dolphin windows We've got that and in build kde workspace plasma workspace So same directory You probably don't have all these sub directories. You just have kde build plasma workspace much cleaner This was some mistake that was done by somebody. I don't know what happened And it's just stick to me. But anyway, we are in the right directory So we just have to pop up The terminal f4 for those who don't know I know some didn't and then you just go with make Actually, we can even go easier than that There should be a folder called kcms We can just build that sometimes if it works it works And you go with make install I don't do this do make install I have to do sudo make install because reasons believe me You shouldn't do that And then it will just work and if it doesn't well Well, we'll see we'll see if it works if it works for me It will work for you and of course it didn't work now in theory here I should just rebuild the whole plasma workspace directory and if still it fails to build I just run again kd serves build plasma workspace However, that too takes a lot of time and this video is Already too long. So I'll just do a little trick because this file here I already know where it's going to be installed it and it's going to be installed in kd use sure k service 5 Here so I can just edit out the end result. You shouldn't do this Just do this if you want to test out something really quickly otherwise, you don't And I just add pizza here as well Again, if you don't manage to build something just try again the old directory or run again kd serves build You might need to do again your changes That's a possibility. So check out if they were undone. But anyway, now that it's actually done We just Go back to their workspace plasma workspace directory. We source. Sorry We source the prefix and we close of course the old system settings and we restart it So this should be is this it system settings 5 And this is the new system settings And it should have our pizza patch inside of it And now if we search for pizza You can see that both the appearance and the global theme Come up So the global theme is Correct because it's the one we ask for the appearance one Looks like it's the very same one. Probably I Probably my developer setup is messed up. So I have two identical kcms with I don't know why Shit absence shit happens But anyway, it did work because we searched for pizza and the appearance or global theme kcms got brought up. So it does work Now, how do I transform this local patch to a patch that's in kd official code? There are two ways the hard one the easy one. Let's start with the hard one. I'll show both So you go into where you made the change You follow the git instructions on the development Get involved page And then you just Git branch check out that your master git check out minus b work slash your name. So nicolov slash A name for the patch. So add the pizza in this case Then you git pull rebase origin master Git pull, sorry Sorry, now we actually have to git add the file that we have modified first Then git commit To actually explain what we did we added pizza to the list of keywords as an example Like this And then we can actually do git pull rebase origin master What this does is simply say, okay, what I did I did it on my local changes Just pretend that I did it on the very latest version of kd plasma If this goes wrong It's a bit annoying because you have to mess with conflicts manually I'll do maybe a video about that one another time, but in theory this shouldn't happen Maybe do git pull first just for sure that takes out any possibility of error Now you go git push origin and then the name we gave before so work your name nicolov And we called it what was it pizza? What was it add pizza? Sorry And then it's going to say okay done To create a new merge request click on this link. So we copy paste it into firefox And that's it. There's the title which is the commit we gave you can add a description if you changed any UI Please add a screenshot. Please add a screenshot This is the best time for the screenshot And then you just click on this big blue button create merge request and that's it your work is done If you don't have a developer account, which you won't have if you're joining kd right now Somebody else will merge the patch for you And if you prove to be reliable through time like if you do multiple good patches You will get a developer account and you will be able to merge the merge request yourself But that's it. Let's also see the easier way now If there's a patch that's super small like super easy and super small We can just do it without even touching the code I mean without even touching our local code. We can do it from the website itself So we go to invent dot kd dot org where all of the code resides we search for our Project which is plasma framework server workspace. Sorry And it's this one Sorry, it's called I'm trying to not freeze And in here we can see the code and we search for the correct one. So kcms What was it look and feel Here And then look and feel desktop this one And then you click on this blue button Web IDE Which opens up Actual editor for the code directly in your browser. So that's much easier And You can make the change directly inside of it. So it's much easier However, you won't be able to actually review and build the change to check if it's working or not Which is pretty important. So only do this for this very small and it won't go wrong patches So we just add pizza and then bottom left commit We click on that It will tell us Please use a commit message again added pizza Create a new branch, which is called work slash your clothes slash Add pizza to And then there's also this stick start a new merge request And you press that And that's it much easier, but you cannot actually test your changes But if it's just one word, I don't think that nobody is going to say anything about that And just like that again We're in the same page as before to actually create the merge request with the blue button And you just have to add the changes. So now that you've seen this video You should be able to vary easily because For these kind of changes since it's so easy, you can just go in invent dot kd dot org Not even like clone all the repositories build them You can just go into invent dot kd dot org search for the right kcm and then edit it on the web id Make sure double check triple check that you're not screwing up Because you're not actually checking if what you're doing works And then you just do the merge request. So if you have any complaint about search results for the system settings Then you don't have a you don't have any excuse left because it's actually so easy to fix this It's the best first patch ever that you can do and if you don't know where a kcm Is you can just join the development chat kd develop on matrix and I think it's at kd development or maybe not actually it's at kd develop. Sorry in telegram as well and You just ask Hey, I want to fix this thing of this kcm, which is called something In what repository is it in in what directory is it in? And I'm pretty sure somebody will answer you and if nobody does you just Email me and I'll make sure to find out So that's it and I hope that this will actually Make you want to try to contribute to kde at least on these very small things And if there you think there's something else that you would like to try out Which is very simple, but you don't quite know where to get started Write me a comment and if it's actually simple and anybody could do this. Well, maybe who knows this could become a theory of Me showing you what could be good first time patches so Thanks to all of the names that just disappeared on my left My left. Yes, and see you next time