 Tiling window managers. I can't get enough of them. Every time I hear about a new tiling window manager I've got to check it out, especially if it's written in a meme programming language and rust is certainly the latest meme and today I want to check out a tiling window manager that's written in rust called left WM the website for left WM can be found at leftWM.org and they talk about why they wrote a tiling window manager written in rust they wrote it in rust for quote stability and performance and Looking around at some of the screenshots. There's some really nice theming going on and one of the really interesting things about left WM That really separates it from other tiling window managers is left WM quote is built for themes Meaning, you know, you create your own custom color scheme your panel, you know, whatever panel you want to use There's not a built-in panel with left WM. So if you want to use poly bar great You want to use xmo bar great and you can theme them however you want you create your own theme That is placed in your dot config folder. It dot config slash left WM slash themes And it's easy to share your theme with the world and your theme is just your theme really It's just the colors and the panel. It's not your key bindings Your key bindings are a completely different file separate from the theming I think that's a really neat feature for left WM And I do think it makes left WM stand out a little bit from the crowd For those of you that want to install left WM the source code for it is hosted over on github So you can grab the source code there What I would suggest for those of you on arch or an arch based distribution left WM is in the a u r I believe there's two a u r packages left WM and left WM dash get I just installed the left WM package I I installed it with the paru a u r helper and it it built just fine It really didn't take that long to install And let me show you my left WM desktop now left WM will not look like this out of the box When you first log into left WM, it's very reminiscent for those of you that have ever installed a really minimal window manager Like xmo nad for example because left WM Is in a lot of ways like xmo nad is just not written in haskell It's written in rust but when you first log into left WM chances are you're going to have a black screen You're not going to have a wallpaper set of any kind. There's not going to be a panel Right. It's just a black desktop But you do have some key bindings that do work There's a default config on the system that allows you to bring up a terminal bring up a run prompt The default terminal that left WM expects to be on your system is a lacrity. Why is that the case? Well, a lacrity is a terminal. It's a really nice terminal and it's written in rust So I strongly urge you guys if you're not using the lacrity terminal, check it out It's a fantastic terminal and the default key binding to bring up that terminal is super Which is the modkey super shift enter brings up a terminal That's very similar to the default key bindings in xmo nad the default key bindings in xmo nad Are modkey shift enter to bring up a terminal In xmo nad the default key binding to bring up a run prompt a d menu prompt Is the modkey plus p for prompt and here super p in left wm also brings up d menu This is d menu at the top and I could launch something Maybe I wanted I don't know pc man fm, you know for a graphical file manager The default key binding to close a window is super shift q to close Super shift x will exit out of left wm. So be careful One of the things because I switched between so many different Tiling window managers. I often find myself fumbling around every time I switch So what I end up typically doing is I make every tiling window manager that I use Use the same key binding so I don't accidentally kill the window manager when I meant to close a window For example, so shortly after I finish recording this video I'm probably going to change a lot of the key bindings to to suit my needs I left them as default though for purposes of this video The only thing that's not default though really is the fact that I have a wallpaper And that I have poly bar as a panel at the top I also played a little bit with xmo bar with left wm and xmo bar plays nice with left wm for those of you that Want to just stick with xmo bar if you already have it on the system because you use xmo ned Now I did not theme this poly bar. What I did is I wanted to check out the theming features in left wm So if I go back to the github for left wm Somewhere down here, they talk about the theming and they give you a link to the community repository for sharing themes And you get to this repository left wm community themes and you have different themes that you can try out also In the standard left wm config here or a repository. That is if you go to their themes folder You have basic poly bar basic xmo bar also basic lemon bar And I downloaded both the basic poly bar theme and the basic xmo bar theme And both of those seem to work just fine. Let me show you how you get these themes to work So if I switch back to the desktop here and let me do a super shift enter to get a terminal and let me Zoom in here and I'll open the config file here with wm So let me do a vm space and then dash config Slash left wm slash config dot toml to ml And this is the default Config file. I haven't changed anything except for two things because They were annoying me a little bit. First of all the tags by default. They're one through nine I gave them names. I gave them the exact same nine names that I use in every other window manager So that's really the only thing I changed. I also changed the default A key binding to bring up a terminal by default. It is set to alacrity But of course the default shell on my system would open alacrity using the bash shell I wanted to use the fish shell. So I changed the value from alacrity to alacrity dash e Fish because I want alacrity to always immediately launch the fish shell when it launches, you know Then the fish shell gives me nice, you know coloring and auto completion and everything that I really miss If if I'm in bash or zsh So I just prefer fish everything else though I left as the default key bindings although I'm going to end up changing a lot of them because I don't like using the arrow keys You see a lot of key bindings that involve the up key the down key up down up down left right I would prefer those to actually be the vm motion keys hjkl because that's what they are in Every other tiling window manager. So it would be confusing to use the uh the arrow keys instead of the hjkl keys But they do work if I want to change focus between these two windows with the keyboard I believe super and the uh down key. Yeah and super up key down Goes one direction up goes another if you want to send a window to a different workspace You could do super shift and then whatever the number of the workspace maybe workspace four So super shift four will take this terminal that has focus and move it to workspace four And if I move to workspace four with super four You know that terminal is on the fourth workspace if I go back to the second workspace This terminal is still here. Let me go back to the fourth workspace And I'm going to do super shift two to send it back to the second workspace I'm going to do super two for me to move back to the second workspace and everything is still here Now let me close this empty terminal that I really didn't need and I'm going to do super p again To bring up my d menu and let's actually bring up a graphical file manager. Let me get into pc man ethium Now in your home directory, you have a dot config folder This is where all your user config files for most of your programs get placed So go into dot config and look for a folder called left wm And then by default you're going to have config dot toml there. This is just your default config You're not going to have a themes folder create a themes folder And when you create a themes folder Go and download some themes and place them in here. And where do you go? Well, I just grabbed basic xmo bar and basic poly bar And I put them in here Of course, you also have the community repository of themes that were here and there is one two three four five themes You could grab any of those and also just drop them into that themes folder So once you have that then whichever one you want to actually use right now I'm using basic poly bar and what you need to do is create a sim link linking basic poly bar to current And it actually gives you the command on the uh github page here at the bottom of the github page It gives you the command to add the sim link that you need and let me zoom in There's the make directory command to make the dot config slash left wm slash themes directory Which we had already made, you know, I already had that directory here And then you need to run this command l in for link dash s It's going to be a symbolic link and it needs to be whatever theme You want to be your default theme such as basic poly bar, which is the one I set And then you need to link it to this path here dot config slash left wm slash themes slash current So just copy and paste that into a terminal and run that and if you have a graphical file manager open You'll see this directory appear current and it has the little arrow beside it meaning that's a sim link It's actually pointing somewhere else. Where's it pointing to it's pointing to the basic poly bar theme And that's what we're looking at here. Let me go to an empty workspace You know, this is what it looks like. This is not the wallpaper. It comes with this is one of my wall papers But the poly bar that you're looking at is that poly bar. Uh, I didn't mess with the widgets or anything I did do think I messed with the colors a little bit But for the most part, I left all the modules and everything that were in that config as is what I'll probably do after this video Is just use my standard poly bar config that I use with Uh, bspwm and erbsluft and a bunch of other Italian window managers You guys have seen The poly bar config that I typically use that kind of has the power line effect going on and it has Modules that I like such as it tells me how many updates are available on my system and things like That I don't really need to know that my keyboard layout right now is the us keyboard layout I mean that module is pointless and then these with the percent signs here. I don't even know what those are off hand 39 percent. What is that? Well, it's got the slash beside it. So I'm assuming that's the root mount point It's telling me how much drive space I have probably used up and that's probably 39 of my drive is filled Let me get back to the workspace that had the theme Let me show you what a theme directory in left wm actually looks like. So if you go into basic poly bar And again, I grabbed this from the github this This is their theme that they had on the left wm github and you see it has a number of files in it What are these files? Well, you have a theme dot toml file and let me open that up So what I'm going to do is I'm going to quit out of the config over here and let's go into config slash left wm slash themes slash basic poly bar And let's open up the theme dot toml and it just has a few basic settings here It's setting the border width, which is just one pixel wide setting the margin around the windows eight pixels That's my standard go-to margin size if I want gaps around my windows I never go above about eight or ten pixels And then we have the border colors the floating border color the focus border color The focus border color is the yellow that you see here Some of the other config files in this directory are not that easy to figure out Now we have a shell script change to tag I'm assuming that has something to do with the changing workspaces and how they interact with the poly bar panel You have down, which is a shell script. You also have up, which is a shell script now these Let me quit out of this and let's go to the up Script here because this is important. This is a bash script. And if you look at it Just taking a look at some of what's going on We are running pycom if it exists on the system if Pycom exists, then would you launch pycom? And I'm doing pycom with dash dash experimental dash back in because I use a fork of pycom called Pycom dash jonaberg which has some fancy effects. I'm actually not using pycom at the moment I turned off the compositor for this video. Then I added this here setting the background using nitrogen dash dash restore That's setting my wallpaper. Then at the bottom it looks like it's calculating probably how many monitors we have Because we have monitor equals and it's running some stuff through grip and sit probably wants to know how many monitors I have I have three monitors and if I have three monitors it needs to know Hey, you need to launch poly bar three times and in these particular Coordinates and so that is what the up Config file here the up script is doing you can think of up as your auto start script Right if you want something to launch as soon as you launch into left wm or relaunch Restart left wm then probably put it in the up script one of the other config files here is poly bar dot config I shouldn't have to explain what that is. That's just a poly bar config file If you've ever seen a poly bar config file, you've seen them all. It's just you know poly bars config file I'm not going to go over that One other thing there is template dot liquid here and let me just look at that because I'm actually not sure What is going to be in that? Uh, some kind of script here and it involves the tags and workspaces I'm assuming that template dot liquid and sizes dot liquid Have something to do with the workspaces and how things are displayed in relation to the poly bar config So i'm actually not going to play with that I would probably need to dive into the left wm Documentation to figure out exactly what those templates are doing But I probably won't be playing with those unless I know exactly what's going on with them By the way, there is a wiki. I should have showed you guys that there is a left wm wiki on github too And it tells you some of the things that are available for you and the standard config file You know your default left wm config file. So if I cd back up Into this directory. I cd into the wrong directory. So let me vm.config slash left wm config.toml So this file here if you're wondering about all the values that are possible, you know because you got some stuff in here Most of it is key bindings But what are you setting key bindings for what are the functions for the bindings? Just check out this particular wiki Because there were some things missing from the default config that I wanted for example If I get back into the desktop here, how do I resize these windows? How do I make one window? increase in width or decrease in width That's something that all my other window managers have the ability to do I would assume left wm has the ability to do that too But in this config nowhere in this config Do I see a key binding that has anything to do with resizing the windows like that? But if you get into the wiki It looks like increase main width decrease main width Those are the functions that I need to add haven't got around to that yet again That I left everything as is as the default config But I will definitely be adding these functions to that config.toml because that's something that I use all the time This was just a really quick look at left wm out of the box for the most part. I've made very minor changes Again, this is with poly bar. I found poly bar works perfectly with left wm I did try one of the basic xmobar configs as well and xmobar worked really well with it But the only problem I had with the xmobar config is the windows tended to cover up the xmobar config And I couldn't figure out why I probably should open up an issue over at the left wm github So my initial impressions just spending a couple of hours in left wm is it looks like it's a really nice tiling window manager It it functions very similarly to xmone add and qtile, which I love Also specter wm all four of these window managers xmone add qtile specter wm and left wm Functioned very similarly and the way they handle multi monitors and workspaces and their dynamic layouts You know the master and stack layout and all that so if you're comfortable in any of those window managers You'll be comfortable in the other three as well. So I would be right at home with left wm It's not a very old project though. I don't think it's been under development that long So there may be bugs there may be pain points But it's something i'm definitely gonna keep an eye on and i'm probably gonna play around with left wm a little bit going forward Now before I go I need to thank a few special people I need to thank the producers of the show absy dallas divin fran gape Lou corbinian mitchell economy arch 55 30 christ chuck david the other david donnie dylan gregery Lewis paul pick dm scott weston willy there the producers of this episode without these guys I wouldn't have tried out left wm Well, I probably would have because i'm a tiling window manager junkie, but still these guys They help out All of these guys help out too all of these ladies and gentlemen They help support my work over on patreon because the distro tube channel has no corporate sponsors You guys sponsor distro tube if you'd like to support my work look for dt over on patreon. All right guys peace