 Whenever I discover an obscure window manager, I get pretty excited because I love window managers They're one of my favorite things about Linux and I've tried many times over the last two years to Go back to floating window managers or floating desktop environments and every time I do I miss the tiling aspect of the window manager and It's just something that I can't leave behind and I don't really want to you know what I mean So whenever I discover a new one, I get pretty excited now the last one that I looked at was a window manager called worm and It was weird like it was a weird window manager There were some things you like you could tell that that thing was very new and there was some things that were just you know Not implemented yet. So it was very very beta quality the one we're gonna look at today is also new and It is also a little weird, but it feels more complete than worm did I will put that out there So the one we're gonna look at today is called nim now now Just like worm this one is written in a programming language called NIM and just like when I made the NIM video I still have no clue what NIM is now. I've looked it up a little bit But the explanation over why it is you know Korea has been created is Just something that goes right over my head. I don't really understand what it's for all I know is that there are quite a few window managers that are written in NIM now. So just Take that for what it is now one thing that is different about NIM now is that it's configured That it has its own configuration file. It's a Tamil configuration file I think and it's configured very very similar to how you would Configure left WM and if you've ever configured left WM, you'll know that it has a very User-friendly configuration file. That's the same way that NIM now does their Configuration file the differences kind of end there though because Whereas left WM is more similar to something like I3 or BS PWM NIM now is More similar to DWM and in fact it was based on DWM not forked But the concept came from DWM So when we load into this you'll notice that it has a lot of similarities to DWM So let's just go ahead and jump in I'm going to install this on Arch Linux because it's in the a you are so if you Are going to give this a try the best place to do so it is on Arch because it's in that repository If you want to build it from scratch you can do so using NIM and I don't know how Easy or not easy that is just I've never tried it. So let's go ahead and jump in okay so here we are on Arch Linux and we're going to open up a terminal here and The easiest way to install this is to use your a you are helper So in the case of this VM, I have paro installed so I'm going to paro nimdow dash Bin and then I'll hit one hit yes hit yes again and wait for it to install now by installing it this way I don't have to create an accession file or anything like that and as you can tell it is a very Lightweight window manager now at this point you could log out of your desktop environment and log into nimdow It would function fine. However, you would not have a configuration file that you could edit so in order to do that you have to copy the default configuration file to a Directory in your dot config and I'm going to have to look up the location of that default Configuration files. I'm going to go to the nimdow github page and if we scroll down here The default configuration file is at this location right here So I'm going to go back to the terminal and do CP extra. I'm going to first. I'm going to make directory Dot config nimdow. Okay, and then we're going to then CP that directory into dot config Nimdow, and then I believe it has to be called config dot Tommel Okay Now if we clear this in CD into dot config Nimdow and then config and then then we'll them into config to Tommel This is what the configuration file looks like and like I said if you've ever used left WM This should look fairly familiar because it's actually as far as I can tell the exact same syntax as the configuration file for left WM There might be some Different names so like the the processes at the top in the brackets Those are probably going to be different But the syntax looks very similar to me in terms of functionality. It's pretty Well fleshed out and we'll talk about that more in a minute but while I'm here what I'll want to do is make sure that I have access to a terminal and a Launcher of some kind so I believe I'm gonna have to open up another terminal here and do sudo pacman dash s and then alacrity and Then I'm also going to install the menu like this as well, even though that's not how you should install it Oh, look that I already have those installed cool. I can close that then so I'm going to go down here and This is fine But I want to change this command here from ST to alacrity because I don't have ST installed Alacrity like so and now I can write and quit out of that and now I'm going to log out and we'll see our first View of nimdow now from the brief time that I've spent with this we're gonna have a problem with screen resolution I almost guarantee it for whatever reason. This does not work well with Virtual machines in their screen resolution I'm hoping that by switching to arch and doing some vanilla arch that this actually will work fine my first foray into nimdow was done in Storm OS and for whatever reason that did not want to work with my Experient resolution, so I'm actually going to keep this screen resolution here instead of trying to make it into 1080p Because by changing it into 1080p. It actually just comes into a little box here in the corner So super enter by default gets you a terminal again It will look for ST if you don't make that change that I just made So let's just talk a little bit about the layout So if you hit a whole bunch of windows You can see that it has the master stack layout by default very similar to DWM right and as you can see also the bar is very similar to DWM So the you have your tags up here along the top There's a little dot indicating that there is something on the tab So if we go to 2 you can see that there's a little square up at the top just like you see in DWM That indicates that there's clients on that particular tag So in order to quit it's super shift Q quit the clients that mean super shift Q so we can close some of these clients and Let's just do a free dash M here. Let's just see very quickly how much memory we're using right now 299 megs That's not something I usually check when I do a window manager But it's good to check and see if it's using a lot of you know memory So other than looking a little bit like DWM What makes this an interesting window manager? So the first thing you'll notice is that there's nothing up there in the bar other than The x window call-out up here. So this is just giving you the Title of the window, but there's nothing up here now the thing about Nimdow is that it uses a lot of Similarities to DWM so in order to get something up there you would use x set root in order to Create a bar of some kind and that's fairly well documented pretty much all over the internet There are some customization changes that you can make in the Configuration file so if we them into the config.toml file if we scroll down here just a little bit You can see that you can make some settings changes here in the configuration file pretty much similar to what you could do in DWM only in a Much better syntax for new users because if you're doing DWM you're going to have to make all the changes in C That's part of DWM's charm. Everything is done inside the source code With this it has its own configuration file so you can change the font You can change all the colors for the like the bar background color foreground color selection color The bar height so if you wanted to change the bar height you could do that So let's just change this to 25. We'll save that and I believe Mod shift r is to yep that made the bar bigger So if we make sure we make that way bigger into 40 like so and then much of r You can see that the bar got way bigger So we can change that back to 20 and then much of r to restart the configuration file Now the one thing that I had problems with when I was on storm west taking a look at this Is that when I changed the resolution that much if r didn't really do anything at all I'm not sure what was going on there. I'm not sure if that had it was a West specific thing or if it was just having to do with that VM. I'm not actually sure Now in terms of auto start stuff you do all of your auto start stuff here in the between the exact brackets so you can Um, basically start up whatever you wanted to start up here. Whether you want, you know, dunced or your keyboard layout or Your pulket whatever all that stuff would be done right here Or you could just create a separate auto start file like an auto start script and then start that up every time you did your Your window manager started up. This does come with gaps built in So if we open up another window here and go back to the Invigration file and change this to say 20 Write this and then restart the thing you can see that the gaps got bigger, which is Nice it one of the things that is different from dwm Here is from what I can tell there are no patches I might be wrong about that But there doesn't seem to be a way to patch this because they want to build in all the stuff that you would need Right out of the box. Now one thing that I have not noticed Is a way to change the layout there seems to be only the master stack layout if what i'm seeing is correct But there are a lot of key bindings that are built in for Things that are usually missing on brand new window managers. So for example Moving windows to Different monitors that stuff is built in that is kind of awesome because like I said on most new window managers That's the stuff that kind of gets added later Once it's being more developed by the community instead of just the initial developer also by default Something that actually is not in dwm by default You can cycle through clients and this was a problem that I had with worm Was that there's no way to cycle through clients? So you cycle through clients with super and j and k that cycles through the whole stack Super h and l increases and decreases the size of the master window Which is I believe similar to how dwm does it another thing that is cool Is that by default? It has scratch pads enabled. So if you do super shift s That's going to move that window to a scratch pad. So if I then do super s That window comes back up as a scratch pad. So if I type in h top here I actually don't have it h top installed now if I open up h top here and then hide that Window which is super shift s that goes away and then super s scratch pad comes away now I believe if I made another scratch pad so super shift s If then if I do super s you would get a chance to you'd have both of them up And at the same time But you'd have you wouldn't be able to cycle through them So this is similar to how i3 handles scratch pads unless you do some finagling In that it will you can move any window to a scratch pad And then you can pop that all of your scratch pads up with the same key binding But there's no real way to cycle through them once you have them all up They're just there until they go back to being a scratch pad. It's not my favorite way of scratch pads being handled For sure. I have managed to on i3 to have it work well enough for me I'm not sure whether or not I would be able to do the same thing on nimdow But the fact that it has scratch pad support built in And enabled by default It has my heart. Okay, because I love scratch pads. They're amazing I think everyone should find a reason to use them And most window managers either don't have the functionality at all Or you have to build it in through a patch or a library or something like that So for example with x-monad x-monad has fantastic scratch pad support Really good, but it's not enabled by default You have to build that in with haskell libraries and you know putting it into your configuration file Same thing with like I believe qtile has scratch pad support. You have to put it put it in yourself Same thing with i3 like i3 has built-in scratch pad support But you have to put that in your configuration file This has it enabled out of the box and that makes it, you know, something that makes me really really happy Now if you wanted to pop that back into The stack i'm wondering how you would do that So let's go ahead and move back up here and see if we can find that key binding that will push it back into The stack. I think it's going to be the toggle floating one which is super f I believe no super space. So if you hover over this and do super space Yeah, super space moves it back into the stack and means that it's no longer It's no longer a scratch pad. So if I put the do super space on this Now I no longer have scratch pads. They're all back in the stack. So that's easy enough One of the things that I've been highly impressed with beyond the inclusion of scratch pads Is that there are a ton of key bindings here for doing a whole bunch of moving around so increasing the master count So if I wanted to increase the master count I could do super z and that would mean that I could do a layout something like this That means I would have two masters if I open up another window. I'm still opening it up in the Right hand column here right in the in the stack. So we'll close a couple of these. So if I wanted to then Decrease the master count. I could do super x and that would move that back over into the stack As you can see, there's a few for different monitors like I was saying before You can jump to an urgent window by using super u It has all of the normal stuff you'd see for moving stuff between tags Or just moving two different tags You can also use the arrow keys to move to different tags if you wanted to do that Which I find pretty neat if you you know are interested in using the arrow keys One of the things that I did find a little weird is that they don't use the word kill at least in terms of clients so that you can kill the Window manager by using control alt and delete. So that does use pkill to kill nimdow But the word that they use for Killing off clients, which is you know the windows they use the word destroy and that confused me for a while because Usually when you're in it like dwm uses the word kill. So I was expecting the word kill in order You know to search for it. So when I searched for kill like so that was the only You know only instance of the word kill there. So I was like is there not a way to kill Windows so but there is They use the word uh destroy so The it's right here destroy selected windows is super shift q. It's just I've never seen it described like that before Uh, just so just keep that in mind if you're searching for that. That's what they're called Now if we go to the github page one of the things that you can do if you want is Use the command nimdow to control your Window manager in the command line now if you've used bspwm or You've used worm or you've used herpes luff wm all those have Little commands. Oh i3 does too even in sway does So they have things that you can run in the command line that will do Pretty much anything that the window manager can do with certain flags And nimdow is the same so it has a command called nimdow and you can use several different Cli commands, which is basically any of these so any of these top things here like the Move window next those things all turn into flags like so and You can use nimdow to execute that command in the command line Which means that you can script and you can create things like a A scratch pad script if you wanted to you could do things for To assign Some things to certain key bindings The flexibility that this gives you means that you can do a lot of stuff with scripting That you wouldn't be able to do if this didn't exist same thing for using alternative keyboard shortcut Demons so if you wanted to use sxhkd you could use nimdow to Or you could use sxhkd With this nimdow command to completely control your window manager You would never have to use the configuration file at all which is really kind of cool So I have to say That i'm pretty impressed so There are i'm sure things that are missing but from a usability perspective This is a very usable window manager for being so new and very Curable so you don't have to worry about learning nim at all I have no clue how I would even go about doing that Right, but I didn't need to learn any of that because the configuration file Is really simple like it's just some brackets and telling it you know key binding and stuff at the top of it Actually didn't show you this if we go to the top of the configuration file There's an example of rules here So you can do app rules if you want to do app rules That means you can change the things from floating full screen so on and so forth. That's cool You can also change it so that it can Certain applications will open up on certain tags just like you would in dwm The difference is is that this syntax is way easier than the rules for dwm If you've ever tried to make a rule in dwm, you'll know what i'm talking about those rules are a mess This is not like that. So that syntax is way easier So I could see if this ends up being a window manager that stays well supported And continues to develop features I could see this being fairly popular in the future because it's easy to configure has a lot of features Seems to be pretty fast has a configurable bar It doesn't have that messy patching system that dwm has so it has a lot of good things going for it And honestly the best thing I like about it the most is that it has scratch pads You know and able by default. So you have that you're automatically going to have my loyalty in your respect It's just it's very easy to get my attention. Give me scratch pads and I'm a happy happy boy All right, so that is just a brief look at nimdao. Like I said, I'm very impressed with it Unlike worm where worm was just weird and felt unfinished This one is still weird and that it's dwm, but without all the quirks But it doesn't feel unfinished. It feels very Despite the fact that it's being called beta. It feels very usable and the fact that they've gotten it this far Is very impressive. So if you have comments on this, you can leave those comments in the comment section below I really do truly appreciate all the comments and stuff that I get makes you hit the like button as well That really does help the channel. You can follow me on twitter at the next cast You can support me on mastodon or any of those other platforms by Finding those links in the video description You can support me on patreon at patreon.com slash linuxcast just like all these fine people If you do so, you will notice that you'll get the occasional video early I've been doing fairly good on early access lately. So if that's something that interests you tier two and above patrons Do get the occasional early video along with blog posts and stuff like that early as well So thanks everybody who does support me on patreon. I really truly do appreciate that Thanks everybody for watching. I'll see you next time