 channel today, we're going to be talking a little bit about i3 versus BSPWM. So when you're choosing a tiling window manager, there's really two things you want to consider, maybe three things. For sure, two things. Two things you want to consider when you're making your decision. The first is, do you want a manual tiling window manager or do you want a dynamic tiling window manager? So let's talk a little bit about the differences. A manual tiler base, and I'll show you this when I talk about i3, is basically means you choose where the window appears next in the tiling tree or whatever. Dynamic tiling window manager means it has a set layout. So it means that usually this is the main and stack layout so that you have a master here and a whole bunch of stacks on this side. I'll show you that when I get to BSPWM. So that's one, the first thing you should consider because those things do make a difference between how you use things. You wouldn't really think it would. I used to be a big proponent of manual tilers like i3 mainly because I really wanted that power to choose where my window spawned, which you don't get in a dynamic tiling window manager. But I've kind of been persuaded to the dark side and I've learned to enjoy dynamic tiling window managers. The second thing you'll want to consider when you're choosing a tiling window manager is how it's configured. So it's not as big of a deal with the two window managers I'm going to be talking about today because the configuration files for both of these are very easy to get a hold of even for new users. These are both very new user friendly window managers. Like something say DWM or Xmonad even, those are things that are much more complicated because you're editing the source code directly. So if you're using DWM, you have to know a little bit of C. If you're using Xmonad, you need to know Haskell or some Haskell at least, or being willing to learn those things. So those are really the two things you really need to pay attention to when you're choosing a tiling window manager. It's not as big of a deal with these particular two window managers because both of these two have configuration files that are very easy to get into. Now, they're different configuration files. So let's jump into I3 so you can see what a configuration file for I3 looks like. So this right here is I3. This is the I3 config file. This is not the standard I3 config file. This started out its life as an ARCO I3 config file. The standard I3 config file looks like this here. I think I can zoom in a little bit here so you can actually see this. And it's about 200 lines, mine's about 100 lines. But that's because I use SXHKD for all of my key bindings. That's not something that comes out of the box. You have to actually go through and do that. I have a video you can see the cards or in the video description below. The standard I3 config file has all the bindings right inside it. Standard I3 config file configuration also has its own bar, which will run along the bottom. It's called I3 status. It is configurable through its own configuration file. It can also be configured a little bit through this here. But then there's also a configuration file for the modules as well. And that can run scripts just like any other bar can. I'm using Polybar. I have Polybar for both I3 and BSPWM. As far as I'm aware, BSPWM does not come with its own bar. So if you need a bar for I3, for BSPWM, you'll have to provide your own. Most people use Polybar. You could use something like Bumblebee or Lemonbar. Or probably, you probably could probably could use Xmobar if you really wanted to. I don't know why you'd want to because you then have to install all the Haskell dependencies. That'd be kind of a pain in the butt. I talked at the beginning about the configuration file. I3 is written in C as far as I'm aware. But you don't have to actually know any C in order to configure it because it's written in this kind of user-friendly syntax. BindSIM makes sense because that's binding the letter U and then executing this command. It's very user-readable. And that's not something you can really say with C because C is a little bit different. And you have to have the knowledge of where do I put the comma? Where do I put a semicolon? How do the comments work? It's completely different. So I3 is one of a few window managers that is not configured in the language in which it's written. And that's a good thing for beginners because it allows you to go through as a new person and do all the configuration files without having to learn a specific programming language. It's also kind of a lazy way of doing it because really if you're using a title window manager, you should be willing to learn something because really, if you're learning this, you're not going to be able to take a lot of the skills of I3 and then transfer them over into using something like BSPWM because of the way they're configured. DWM is configured directly with a source code and you have to kind of learn to C. So that's one of the things that's kind of different. And we'll talk about BSPWM when we sit over there, but the configuration files are, while very noob-friendly, are completely different because BSPWM is, their configuration file is actually just a script. And I'll show you that, like I said, when we get into the BSPWM part of the video. So really, the last thing I wanted to talk about, because remember at the beginning we talked about those two things that you should consider when choosing a window manager. This I3 is a manual tiling window manager that what that means is when you spawn new windows, they all spawn in the same direction until you tell I3 not to. So with mod V, I can start spawning windows in a different direction and then mod H like this. And it just will keep going on forever and ever. And you can choose, you know, I can, I can then go back to mod V and I mean, they just keep getting smaller and smaller and smaller and smaller. Eventually, I'm assuming that Python or something will crap out on me. So I probably don't want to keep going too far, but so I'll just close some of these. But that's what a manual tiler is. It allows you to choose where the next window is spawn. You always have that control. Whereas a dynamic tiling window manager like BSPWM or DWM or Xmoned, they all have a set layout. Some of them you can change the layout, but whatever layout you're in, that's the way your windows are always going to be unless you move, you know, you change the floating or something. So that is I3 in a very general nutshell. I would consider I3 the best window manager for new users, just simply because the configuration file is very readable. It's also very configurable. Once you've moved past your noobness, you can do a lot of configuration file configuration in it to kind of get your feet wet. Now you can't do as much configuration as if you were editing the source code directly, like you do in, you know, DWM, but there are a lot of things that you can do with it and expand it by bringing in other things. So like I've gone through and moved all my key bindings to SXHKD, that's something that you can do. You can bring in Polybar, obviously, if you don't want to use the I3 bar or I3 status. And there's just tons of stuff you can do. Now a lot of people will consider I3 a limiting because it's not directly editing the source code, because you can't go through and code something in yourself. But really, how many people really do that? Not many people really do that. I don't find it limiting at all. I think it's really good for new users. So we're going to pause there and we're going to move over to my BSPWM install and we'll look a little bit at what a dynamic tiling window manager looks like and what the BSPWM config looks like. So we're going to pause there and we'll be back in just a second. Okay, so I'm back and we're going to show I'm going to show you BSPWM here in just a second. The main differences you'll see in BSPWM is it's going to be the way it's configured and the way the window manager lays out windows as their response. So I'm going to show you that and then I'm going to show you a little bit about why I like BSPWM just a little teensy a bit better than I3. And that's going to be it's weird because I've spent a lot less time in BSPWM, but I do like a lot of things that BSPWM does outside, you know, than what I3 does. This is what BSPWM looks like. And again, this is going to be a different than what it looks like out of the box. And I'm going to talk at the end a little bit about some a few programs that you're going to need it for both I3 and BSPWM that will make your life better. But before I get to that, I just want to show you what BSPWM basically is. So first of all, it's a dynamic tiling window manager. That means that when you spawn something, it's going to look like this. This is the Fibonacci layout. I think it's what is what is called it means every Winston window that spawned is exactly half of what was spawned before it. So that you know, this window here is half of this one, this one's half of this one, and so on and so forth. I believe you can change the layout. I think it has other layouts. I'm not sure about that. This is it's a little bit different than other dynamic tiling window managers in that it's not like the master and stack layout because they're math master and stack means they're all kind of these all over here in the stack would be completely even. It's basically, you know, the same thing that are just different sizes. Like I said, I'm not I'm pretty sure that you can patch in or something other layouts, but I've just never done that. The standard configuration files actually only like 18 lines long. So if you if you've installed this from scratch, you're not going to get a lot here. One of the dependencies in this is SS XHKD because BSPWM itself does not handle any key bindings at all. So you have to have an external program in order to do that. So I will if I do this and going to see whoops, let's zoom in here CD into dot config BSPWM and SSHKD and then SSHKD RC. This is these are the key bindings that you'd use with SSHKD. Now, if you if we go to a level, a CD dot dot, less, your configuration file is BSPWM RC. This is what mine looks like with close that, I think them and to BSPWM RC. And that's what this is what mine looks like. Now this started out as a Arco Linux configuration file. Again, I believe you at the beginning, you do an auto start, and then you have things that control the gaps and the padding and stuff like that for the ratio of the split, and so on and so forth. Now, this is I think I'm I've not gone through and changes anything anyways, but a lot of the stuff could actually go away because a lot of the stuff is comments. There's 120 slides long, so it's a little bit longer than the standard, but it's not anything crazy like the Arco Linux I3 config file was, which is just crazy long. So, so we've shown you the, you know, the way the windows are layout. So if you'll notice at the top of this, but if we go to the top, you'll notice this is just a bash script or a shell script in this case. That's all this. So if you know how to code in bash at all, basically that's the syntax you're going to be using. So BSP, BSPC is the command that interacts with the window manager itself. And so BSPC config, whatever, BSPC, what, you know, also manages a lot of stuff in SXHKD. So that's the difference between I3 and BSPWM is that BSPWM is actually just a shell script that, you know, that you can edit just like any other shell script. It's very new friendly as well because shell scripting is not hard to learn. It's not horrible in terms of syntax like C or Haskell or something or even Python. Python can get really bogged down in the commas if you've ever seen a, like a Qtile configure something. So that is what BSPWM basically is. As I said at the beginning of the video, those are the two things that really differentiate any window manager, how it's configured. I3 and BSPWM and I3, it's kind of a user readable kind of thing that's kind of its own language-ish kind of thing. And then BSPWM, it's a shell script. The other thing that determines what, you know, what manager you want to choose is how the windows are laid out. So in this case, you have a more kind of off traditional dynamic window manager kind of thing. Whereas with I3, you're getting a manual Tyler, which means you can choose where your your windows spawn. In both of these, there are several programs that you're going to want to download in order to get to make it usable. One of the things you're going to want to do is download some kind of wallpaper setter. So when I first started using I3, I used FEH. I will probably link these in the description below, if I remember. But now I use something called nitrogen. So if we do, this is what nitrogen looks like. Mine's always a little bit different, because I don't know why they won't spread out like that. It's always been weird. You know, so if I just choose this here and apply, I can just quit that and I have any wallpaper. Tada. That's what nitrogen is. And in your in your cdintu.config bspwm. And then ls here, we think some auto start. Yeah. So the auto start thing here will actually go through it'll start your Polybar. And there's another one here nitrogen dash dash restore. Basically, that will allow you to go through and have your wallpaper start up at the beginning. So you'll need an auto start file of some kind. If you use bspwm, that's something that you don't really need as an I3 because an I3, the I3 config file can actually go through and start up all of its scripts right away in the configuration file. After a while, I went through and actually created an auto start file for I3, simply because I wanted sxh. I kind of wanted to configure that. I wanted to compress that config file down into under 100 lines. And that's just, you know, my ADD backing up. So you'll need a wallpaper setter of some kind. In bspwm, you'll want, you'll have to have some kind of demon to do your key binding. So sxhkd is the one that is set as a dependency, but you could use it. There are other ones. sxhkd was actually designed to work with bspwm. So it's really well integrated. It's very easy to set up. In I3, you don't need to do that because the configuration file has all of your key bindings right in it. But I've actually gone through and moved all the key bindings to sxhkd just because, again, I wanted to get that config file to be smaller. Another thing you'll want is something to manage your power settings. So especially if you're on a laptop, you'll want something that will monitor when your screen turns off, when it goes to sleep, and so on and so forth. I use XFCE settings that controls, you know, pretty much all your power settings and comes with a few other things. In both of them, if you want to set GTK themes, you'll need something called LX appearance. And that will allow you to set your GTK themes and icon theme and cursor themes as well. And I'm pretty sure most distributions probably when you install, you know, the regular develop packages, you probably get X-Rander. So you probably won't need X-Rander. But if you're not interested in using command line to manage your monitors, you can look up something called A-Rander. And that is a GUI application that you can use to manage your monitors and your displays and so on and so forth. I think that that is it. So basic. So let's just do a little bit of a conclusion here. I said I wanted to say there was one thing that I really liked about BSPWM that over I3 and that's kind of the config file. The stock I3 config file is can get very, very heavy. Not necessarily heavy, but very, very long. Like the ARCO I3, I've said this before in this video is like 500 lines long. And that's fine. But it's kind of unwieldy and I like the BSPWM one is like 18 lines long to begin with. I mean, you have to add some other stuff in order to make it work. But even this one here, which is kind of pimped out because ARCO is only is less than 200 lines long. And that's because it requires a separate, you know, key bindings file. And I like that it's a shell script. I'm into shell scripting and that you know, you know, it just it makes me feel like I'm more interacting. We think BSP if you're planning on doing something with like DWM or Xmona, I think BSPWM is the great one to start on because it gives you get you practicing actually interacting with code instead of doing whatever it is you do with that I3 config file. So that's one of the reasons why I like BSPWM. But I would still say that I3 is probably the more noob friendly is because the code is a little bit more readable. But both of these window managers are very, very good for window, for new users, which one you choose again, will just depend on how you like the windows to spawn and which way of configuring it, you're more comfortable with, whether it's, you know, editing a script file, or doing it in the way I3 has chosen to do it. Now, the last thing I want to talk about is documentation. I'm actually going to go back to the main screen for this, a real good reason to to use I3 if your new user is the documentation. So this is the documentation page, you can get that this by going to I3WM.org, and just clicking on the dock section. It's spectacular. It's just, I mean, just line after line of awesomeness. It shows you all the key bindings using I3 from directly from the beginning. It's just, I've been using pretty much window managers for like last year or so. And I've used pretty much all of them, all the main ones anyways. And you'll never find any window manager out there that has better documentation than I3. Just, I mean, it can't even be debated. It's so good. The only one that I've found comes closest Qtile. And that's a little bit different because their website is a little bit hard to navigate. And it's a little bit more technical because you have to know some Python. I3's documentation is really, really very good. I can't say enough about it. BSPWM, on the other hand, has crap documentation. I mean, it's just not all that great at all. This is it. One page, no, like, table contents or anything, the configuration file. I mean, you'll remember that configuration files only 18 lines long to pay default. So they're not expecting you to, you know, do much. But it covers everything you need to know. It's just not as in depth as you know, what the I3 one is. So that is the another reason why if you're really, really new to tiling window managers, I would go with the I3 route. If you've used it, I3 for a little, if you've used tiling window managers for a little while, but you're not comfortable taking the jump to something like DWM or Qtile or anything like that, then try BSPWM because it's a little bit more complicated than I3 with less documentation and will kind of force you to experiment a little bit more. So that is it for this little versus competitive thing, whatever that we did today. If you're, if you liked it, give it a thumbs up. If you didn't give it a thumbs down, subscribe, hit the notification icon thing so you don't miss Linux tutorial videos, which I or tutorial is any kind of videos because we do Linux rants and all that kind of stuff pretty much seven days a week. I think I'm pretty sure I'm going to take tomorrow off, but who never knows. If you want to subscribe to or support us through Patreon, you can do so at patreon.com slash the next cast. And thank you for watching. I'm going to go try to edit this video now. So we'll see you next time.