 Okay, so when I first started using Tiling Window Managers, I was an i3 user and i3 is fairly easy to get a hold of and fairly easy to learn and fairly easy to customize. So there's not a ton there that I would actually consider difficult once you've got the hang of learning how to manage a Tiling Window Manager. At that point in my Tiling Window Manager career, I considered DWM the pinnacle of the difficult Tiling Window Managers. I always looked up to it like as if it was the most hard thing to configure in the world because I had no idea how to even install it. At that point, I hadn't even really ever built anything from source, it was just not something that I'd ever done. So I was a complete and utter noob when it came to trying to learn how to install and configure DWM. So with all that being said, I know for a fact that a lot of people who want to try DWM can kind of be overwhelmed with the idea of using a piece of Secless software and installing it for the first time, installing it from source for the first time, and it can just be overwhelming and kind of off-putting and might drive you into the arms of something like Awesome Window Manager or Q-Tile or something like that. And honestly, that'd be kind of a shame. It's not that those Window Managers are terrible or anything. It's just that I think DWM is really good and that you should give it a try. So what I thought I would do today is talk about five things you should do after you've installed DWM for the first time. Now, if you haven't got to the point of installing it yet, I do have several videos on how to do this and I will link those in the video description and I'll try to put a card up there but I probably will forget. So just check the video description if you don't know how to go through and install it yet. There's my dog running out. Well let's say you have it installed. What should you do next? The first thing you should absolutely do is back up your DWM folder. Any changes that you make to DWM or any of its related software should be backed up prior to you making any more changes. So for example, let's say you start on patching, which we're going to talk about next, and you make a patch and it fails or it corrupts something or it doesn't build properly and you have no clue how to fix it. The best thing you can do for yourself is having a backup of the prior time where your DWM worked. So there are a couple of ways of doing this. You can just do the old fashioned way. After you've built DWM for the first time and you have it up and running and you know it works, copy your DWM folder to somewhere else with a different name and then if something goes wrong, you can always go back and get that folder, copy it back into wherever you're storing your suckless stuff, rename it to DWM, recompile and you should be good to go. Or if you're familiar with how to use Git, you can use something like Git in order to push it up to GitLab or GitHub in order to monitor the changes as you go along. And then I highly recommend, and this is not something that I'm very good at following the advice of myself, but I highly recommend every time you've made a change and you know it works, push that up to your GitLab or GitHub or make another copy of it. Just in case that way if the next change you make fails or corrupts something, you can always go back. I highly recommend it's probably the most important tip of the day every time you make a change that works back it up so that you know that you have a working copy. So once you've gotten into the habit of doing that, the next thing you should do is change your key bindings. Now, let's take a look at DWM here. Now, this is a very fresh install of DWM. I've changed absolutely nothing. I mean literally nothing. I've just logged in and opened up OBS. That's all I've done. So the first thing you need to do after you've learned how to back things up and made some changes is to change the key binding. So by default to open up a terminal is Alt, Shift and Enter. Now this is only going to work if you have ST installed and built. So if you do not have ST installed and built, ST is another piece of suckless software. If you do not have that, you're not going to get a terminal when you press Alt, Shift, Enter. You will get absolutely nothing and won't work. If you're in that situation and you don't want to build ST, you don't want to use it, you can actually get around this by going into the source code and changing a variable to whatever terminal you want. And I'll show you how to do that here in a second. But I highly recommend to use ST at first. Install it so that you have it as a backup just in case you need it. I mean, there's very, it doesn't take up any resources at all. It's a very, very small, minimal program and ST looks for it. Now it's not the prettiest program here. We can zoom in here. Zoom in is control shift and page up, by the way, if you need to make it bigger, which I'm assuming most people probably will. So I highly recommend having ST here at the beginning. We can, we're going to change that default terminal here in just a second. But just know that if you are pressing Alt, Shift and Enter and nothing happens, that just means you don't have ST built or ST installed at all. So once you've got to this point here, what you're going to want to do is go into wherever you downloaded DWM and built it. So in my case, I created a folder called suckless. And then I cloned DWM into that directory. So if we do an Alice here, we have all of my DWM stuff that you normally see. Okay. Yours may be in a different place. You may be, maybe you cloned it in the home directory. Maybe you cloned it in a download or something. It doesn't really matter where you cloned it has no impact on how this works at all. I just happen to be more familiar with putting it in a directory called suckless. That way all my suckless stuff is together. So actually, if I see up a level here and I do an Alice, you'll see that I have D menu, DWM, SL status and ST all installed. Now that's another thing that I should talk about before we jump into the key bindings. You're getting a lot of extra tips here. This was only supposed to be five, but make sure you also download and build D menu because by default, there's no way to launch programs unless you, you launched them from the terminal. You have to have some kind of program in order to do that. And by default, DWM looks for D menu. Now if you want to launch a program, the way you do that, do that is alt and P. And as you can see up here on the top, D menu opens up. So if I wanted to open up brave, I just type in brave and whatever that's D menu. Now you can obviously change that later on, but by defaults, you have to have D menu installed. And I'm not even sure that DWM will build without D menu. I may be wrong about that. I've never actually tried to build it without D menu because D menu is just something that I've always installed. Now I don't use it personally. I use Rofi, but I always keep D menu installed because it's a good backup, right? It may seem like bloat to have two different launchers, but it's good to have two. I release. It's good to have DWM there just in case something goes wrong. Okay. So we're going to CD back into DWM here and we'll do that LS again. And what we want to do first is remove config.h, okay? This is just a habit I always do every time I do something because when you're patching stuff or making changes or whatever, and then you go through and recompile, if you don't delete the config.h, it's not going to change. So for example, if you add a lot of times you can make changes to the config.h and it'll be fine. But if you do a patch or something and it affects config.depth.h, that change won't filter down into an existing config.h file. So I just always remove it. It's not going to hurt anything. It'll come back after you recompile. So then what we're going to do is vim into config.depth.h. So this is actually getting back to the second point of what I was actually planning on talking about. And the next thing you want to do is change your key bindings. So the first thing you'll want to do is right here on line 48. It's line 48 for me. It might be a little bit different than you, but it should be around there. You'll see this line here, hash define, mod key, mod one mask. Now you don't have to change this. If you're perfectly fine using the alt as the modifier key, keep it this way. Alt is mod one. In this case, I want to change it to the super key. So I'm going to change that one to a four. That way the super key is the mod key and the alt key goes back to just being the alt key. Now I know a lot of people like using alt, a lot of people like using super. Change it to whatever floats your fancy, whatever you're used to. You could even potentially change it to something else if you wanted to do that. Personally, mod four is what I like to use. So once you've done that, then you can go through and change your default terminal. And you can do that on line 61. Again 61 for me. It should be very close for you. You're going to be looking for the line that says static const character, or C-H-A-R, and then a asterisk term command. And then equals. And then you're looking for the word ST. So that's what you want to change. So in my case, I'm going to change this to a laprity. And you can change it to whatever terminal you like. If you like GNOME terminal, if you like console, whatever. As long as you know what the class name is, you can do it. In order to find the class name, you can use a program called xprop. You type in xprop, hit enter, and then click on the window that you want to know the class name of. And then if we zoom in here, you can actually see the class name is right here. And in this case, the class name is ST-256 color. For our purposes, ST would work just fine in DWM. If you wanted to stick with ST, as you saw, we changed it, but a laprity has a different class name of just the laprity. So another thing you should know before we move on is to close a window by default Alt Shift and C will close a window. So once you've made those changes and any changes you want to make down here to any of your key bindings. So let's just say you wanted to change it so that the terminal popped up with just mod and enter. So you want to delete this part here and then make sure you don't delete any comments because those got to stay. If we made this right now, we have a problem because there's actually already a mod return here already. So we want to change this line here and then we're just going to add shift mask we're going to do pipe, shift mask and what we're that's just basically changing those two around. So the zoom functionality is mod shift return and we can go through and launch a terminal with super enter, which is what I'm used to. So and I always like to keep this stuff kind of lined up. So that's just a little bit of a OCD thing. So once you've got that, once you've made your changes, any changes you want, just make sure as you're going through and making changes to your key binding that you're paying attention to what key bindings are already there so that you don't have any duplicates because if you have duplicates chances are either it won't build or the key binding just won't work. So once you've done that and get out of the insert mode or whatever terminal or whatever text editor you're in exit out, save an exit and then what you're going to do is make and then pseudo make install and that's how you change key bindings. It's really simple. Now the next one on the list is patching and I'm not going to show you how to do this because I already have a video on how to patch. So if you don't know how to patch chocolate software, I highly recommend you seek out that video. It'll be linked in the video description. I will try to remember to put a card up there somewhere and you should go watch that and how to patch because that alone took about 15 minutes. So I'm not going to go through and teach how to do that in this video. But the next thing you should do is go through and select your patches, learn how to patch it in and go through that process of kind of customizing DWM to the point where you're happy with it. It's probably the hardest part of using DWM because patching can be kind of a pain in the butt. There are a couple things you should keep in mind. The more patches you use, the less likely you are to get things to run harmoniously together. If you use something like DWM Flexi Patch, you'll be able to get more patches working together than you will if you do this on your own. But just know the more you add, the more failures you're going to have and the more tweaking you're going to have to do in order to get things to work properly. So what I would highly recommend you do is choose the five patches that you absolutely have to have, start with those and then add them one at a time after that. So I would also recommend you to go through and add them one at a time. So go through, add one patch, recompile and then log out, log back in and make sure it works. Then do another one. Same thing. Also remembering, after every time you've done a successful patch, backing up that DWM folder so that you have a working version of DWM just in case the next patch you do messes something up. Also, as I said before, remove config.h before you compile every time. That way, any changes that happen to config.def.h will go through and propagate into whatever config.h is created once you've compiled again. So patching is probably the most important and the most hard part. And like I said, I highly recommend going checking out that video that I link to. It's a fairly good video. There are also other videos if you don't think it's a good video, but there's several people who have done videos on how to patch. I have one. That's why I'm going to link to that. So the next thing on the list is auto start. So here's the thing that DWM does not do that almost every other window manager does and that is controlling auto start. It has nothing to do with auto start at all. Now, there are several ways you can do auto start. Now, before I jump into it, let's talk about what I mean by auto start. Let's just say you want to set a wallpaper. Every time you log into your computer, you want your wallpaper that you chose before to come up. So you're using a program called like Faye or or nitrogen or something like that. And you want that to come up. But in order to do that, the window manager has to know to start that up. Now you can do this in any number of ways. If you're using an excellent RC file, you can put all of your startup programs in there and it'll work fine. That's a perfectly valid way of doing it. It's more suited towards people who are using something like Arch or or a headless version of Debbie and Arbuntu, because most of those people aren't using a login manager. So if you're one of those people who use start X to get into your computer, chances are you've also messed around with an excellent RC file and you can kind of figure out how to do the auto start thing by yourself fairly easy. So if you're not one of those people who uses an excellent in an RC file and you would like DWM to manage your startup applications and scripts itself, you can go through and do a patch called auto start. I will link it link to it in the video description. And I highly recommend actually doing it this way instead of excellent just because there are certain rules you have to know in order to use the accident RC file and you don't want to mess things up. It's not actually that hard, but if you're new to it, using the patch is actually better. Just trying to keep things separate. That way if you have multiple window managers, you don't have to worry about things conflicting or whatever. But anyways, install the auto start patch and then you create an auto start script in a dot DWM directory in your home directory. There are detailed instructions in the pan the patch page that I'll link to in the video description. It's very easy. Any before, which you probably have done in the last step, this patch here will just allow you to go through and manage your auto start stuff like setting wallpapers, starting pi com, starting sxhkd if you wanted to use that, starting MPD, anything right going through and making sure the SL status works. So if you're going to go through and use something like SL status to manage your stuff in the bar, it needs needs to be started from some kind of auto start file. So that is actually a very important step if you are moving along towards creating a functional version of DWM. Okay. So the last one on the list is the funnest one, the funnest, the most fun. I don't know. I'm a writer. I should know words. It doesn't matter. The point is the point is the last one is the most entertaining and the one that I enjoy the most. And that is choosing a wallpaper and ricing. Now I have a couple videos on the channel, which again, I will link in the video description on how to go through and actually rice DWM. I highly recommend you watch those videos, but I also highly recommend you to go through and just explore again, making sure that you're going through and backing up your DWM directory every time you make a change. That way, if you do something wrong or mistype something, you have a working version to go back to. I can't stress that enough, but go through and choose your wallpaper, get that set up. And then there's a program that you can auto start using the previous tip to make sure that your wallpaper set every time DWM starts. That's fairly easy thing to do. And then comes the bar and the borders and the colors and all that stuff. Now, when it comes to the bar, eventually I'm going to go through and do a video on how to actually use DWM bar and all of the complexities that kind of go with it. I can't cover today. It's simply take an hour. There's seriously too many ways of doing it. So I'm just going to name three. So if you want to go through and just do your own script to your own bar script, you can use use something called exit tool. And there are tutorials online on how to do that. If you want to go through and do it that way, you can use a program called DWM blocks. That is a little bit more configurable than say SL status. But you have to go through and basically have all of your own scripts. It's also the only program other than the pure bash option, I suppose, which is the exit tool route. If you use DWM block, it's the only option allows you to have mouse interaction with stuff in your bar. And when I say stuff in the bar, I mean the stuff on the right hand side of your bar where all your time and temperature and whatever go, right? So if you want to have mouse interactions, look up DWM blocks and give that a try. I found it a little bit more complicated simply because again, you have to have all of your own scripts. So if you want to display the time, you have to have a script that displays the time. If you want to display the weather or something like that, you have to have a script that displays the weather. And that's just the way it is. It's all customizable on your own. If you're not interested in having all your scripts and having them be your own, I highly recommend using SL status. That's what I do is kind of the lazy man's way out. It has a ton of built in scripts that you can go through and use and put in your bar without actually having to have the script itself. Things like a network up and down speeds, time, all that stuff. It also allows you to display your own scripts if you have those as well. That way you can be as creative as you want with the bar without having to have all of them be your scripts. So SL status is probably my recommendation for most people. If you're not into scripting. So those are the five things you should do after installing DWM. I'm pretty sure there was more than five things there. But who said I knew how to count? I obviously didn't say that. So if you have any questions, you can leave those in the comment section below. I will try to get back to you and answer them. I try to help people who have questions on the stuff that I cover. If I miss it, you can also join the discord where I'm pretty much always at. So if you have questions, you can join there and I can try to answer your questions there or somebody else might chip in and give you your answer. You can follow me on Twitter where you can also ask questions. If you want to, I'm at the Linux Cast on Twitter. You can support me on Patreon at patreon.com slash the Linux Cast before I go. I'd like to take a moment to thank my current patrons. Siddha Devon, East Coast Web, Patrick O'Prymas, Marcus, Megalyn, Jack Snipers, Steve A, Sabragirl, Dennis Garrett, Mitchell, Archcenter, CarbonDead, Jeremy, Sean, Odin, Mark, me, Merrick, Camp, Joshua, Lee, J-Dog, Peter, Ray, Crucible, and Dark Bandit 6. Thanks to everybody for watching. I'll see you next time.