 i3 is my favorite window manager or at least it is right now. I'm sure some time off in the far future I will find another window manager that I like and maybe I'll call that my favorite at that point but at the moment i3 window manager or specifically i3 gaps is my favorite tiling window manager and it's for many reasons. I've talked about this in a video before so I don't really need to get into it too much but I think i3 is just kind of the best overall window manager you can do so much to it but you don't need to get into the nitty-gritty of a coding language in order to customize it. You can add as many workspaces as you want which is one of my favorite things in the world and it gives you some flexibility over how you control your key bindings how you do the rules and just a ton of stuff but there are actually quite a few things that I didn't know you could actually do with i3 and I'm betting that a lot of you didn't know you could do these things with i3 either so what we're gonna do today is talk about five things that I found surprising that you could do with the i3 window manager so let's go ahead and jump in. So the first thing is that if you have two windows side by side and I'm not sure if I'm gonna actually be able to demonstrate this because it's actually kind of hard but if you just manage to get your mouse in the right spot you can actually drag windows side by side to resize them now I don't know why you want to do this because it's kind of the whole point of using a tiling window manager is to use your keyboard and resizing with a keyboard is much easier because if you know the key bindings or you have set the key bindings in an appropriate way you can do it way easier than you don't have to worry about being in the precise spot in order to do this so the precise spot is really right over one of your borders so if you hover right over a border and then click and you do it just right you can then drag to resize the windows so like I said I'm not sure why you'd want to do that but you can do it so the next one is really interesting so if I go into my configuration files so my repo i3 and then vim into config one of the things that I've done here in my rules directory is that I've turned off the borders when there's only one client so this is something that you can do with DWM for sure I'm sure you can do this with other window managers as well but I had no clue you could do this with i3 so if I have two windows open you'll see I have borders if I only have one of these windows open no border and the way you do this is this line right here so you just do hide underscore edge underscore borders and then smart and that will have it so that there's no borders when there's only one client and you can have borders when there's more than one client so that is really cool especially if you use my next tip and my next tip is if you are a gaps person so you have gaps enabled using i3 gaps like I do and you would like it so that the gaps only show up when you have multiple clients so if you see here I have gaps enabled right here when I have multiple clients but if I close them I no longer do all gaps are gone and you do this by turning smart gaps on so smart underscore gaps on will have it so that when you only have one client on the screen the gaps go away if you have multiple clients on the screen you then have gaps and I like this because if you have just one client this gives you the maximum amount of real estate on your screen outside of actually having a bar but if you have multiple clients I like having gaps because it helps separate the workspace is a little bit so it tells me that these two things are separate if they were without gaps and just had the borders while yes it would give me more room on the screen it would kind of mesh things up just a little bit too much for me so I like I like having the gaps when there's multiple clients but having it so that there's no gaps when there's just one client is actually really cool now my next one is one that is specifically made for me because I have this I know I don't know what you'd say probably a obsession with making my i3 configuration file as small as possible and I want it to be just as few lines as possible it's just something that I really enjoy doing I don't know why it's stupid it really doesn't matter it's not as if I'm removing lines of code in the actual program to make it leaner I'm just making my configuration file smaller I like doing that for ages I had these rules one rule at a time so I had four window class equals pulse floating enable and then I had this part again and then this part and then this part again and then this part and then this part again and then this part and I had it for each one of these classes you don't need to do that instead you can put them all on one line so if you have several rules for this class all you have to do is put the rules in here and then put a comma between them so each of these commas just denotes a line in this case so you can have multiple rules for this class all on one line that means that you can tidy things up and you don't have to have multiple lines stating what class you're talking about now I don't think that this is going to be all that useful for a lot of people because chances are when you have a rule you probably just looking for one rule and you don't have all these rules here but if you're using scratch pads so like I use scratch pads there's multiple rules that you need so you need to have it floating you need to have it set to a certain size you need to have the move scratch pad command and you if you want to turn off the borders you need to turn off the borders just like that and if you have to list each of these out one line at a time that gets messy having them all on one line is fantastic I just discovered this this morning it's excellent it's very good so the last one on the list is probably the coolest one because I had no clue this thing even existed and I don't know how useful it's going to be for most people but if you have multiple monitors it could be super useful and this really doesn't matter how many monitors you have as long as you have more than one this thing works so let's just say you're on workspace number four and you want to move this thing this whole workspace let's just say you have multiple windows open I have multiple windows open and I want to move this whole workspace every single client that's on this workspace to the other monitor how would I do that well I could tediously move all these windows over one by one I could do that but there's actually a way to move this entire workspace workspace number four over to the other monitor and I do that in my case with super shift and M and you won't be able to see this because I'm not recording that screen at this moment but right now where workspace four was on this screen it's now on this screen now it doesn't do any swapping like you would see in like Qtile or X moment add or something like that no instead it just picks up the whole workspace all four of those windows I just had and moves it to this monitor and I can do the exact same thing again if I do super shift M again it goes comes back over to this monitor so that's really cool now I will say this I'm gonna close these here the way you do this is with this line right here so I have it set to my shift M and what it what the command is is it moves workspace to output next that's how you do it and that will always move it to the output on the right side so if you have three monitors and you start off on the farthest left it'll move it to the center one and then the right is the one to the first right and then it will rotate back around I think that's how it would work because I only have two I can't really test that it just goes back and forth for me but that's how you would do it and you can set that to whatever key binding you want so it won't be super shift M by default this is not in the configuration by default you have to add it so if you want if you want this you would create the key binding that you want and then add this part here move workspace to output next and that will move the workspace to the next monitor and it doesn't matter how many windows you happen happen to have open so for example let me move right on this workspace on this monitor here I have workspace 15 in focus so if I put my mouse over there and do super shift M I now have workspace 15 over here on this monitor and you can see that see workspace 15 and normally I have it set up so that workspace 15 is always always on this monitor like I have it in my configuration file for that to always be true but because I've used this key binding it's moved it over here I think that's fantastic and I'm going to use this all the damn time because it's every once in a while like I want OBS right in front of me or I want crusader right in front of me or want discord whatever normally what I would have to do would be to move that client to another workspace that happens to be on this monitor but no I can move the whole monitor and it's much more efficient especially if you have multiple clients on the workspace you want to move so if I had two terminals side by side and I wanted to move it from one monitor to the other both clients that would be wager to do with this and then instead of moving one client at a time so those are the tips that I have for you and I think they're amazing now they're a little obscure and I'm not sure how useful they'll be for everybody but hopefully there's at least one there that will help you out if you have other i3 tricks that you would like to share you can leave those in the comment section below you can follow me on Twitter at the Linuxcast you can follow me on Macedon and all my other social media networks you can find those links in the video description below you can support me on Patreon at patreon.com slash the Linuxcast I would normally read the names out here but for whatever reason my graphic is not working for some odd reason I'll get that fixed for the next video so thanks everybody who does support me on patreon I really do appreciate that if again if you'd like to support me on patreon patreon.com slash the next cast thanks everybody for watching I'll see you next time