 Qtile has long been one of my favorite tiling window managers. I've been using Qtile on and off Probably for 10 years or so. I've been a long time Qtile fan And one of the things is over the years each time I go and play around in Qtile living it for a while Configure it. I always discover new things and today I wanted to make a quick video Demonstrating some really cool built-in features to Qtile that most people probably don't know exist one of the things though Qtile has a fantastic website with fantastic Documentation and when you go and read their documentation Your mind will be blown by some of the stuff that is available for you in Qtile if you want it The first feature I want to talk about is actually one of the built-in layouts that's available for you within Qtile If you go to their documentation So these are probably about 15 layouts that you could enable within Qtile And one of the really cool ones and very unique is the tree tab layout and what the tree tab layout does it basically Has like a little side panel on one side of the screen that actually lists all your windows in a tree view And you can organize them into groups and you can have the windows Kind of stacked on each on top of each other and a particular order and you can have them indented depending on I guess The importance of a particular test. It's kind of Unusual and let me show you this in action. So I'm going to open four terminal windows right now I'm in the monad tall layout, which is the master and stack layout But let me cycle through my layouts until I get to tree tab So this is the tree tab layout So I've got those four windows open and I've created three groups by default in my tree tab layout And I've got them named. I simply named them one two and three But you can actually name the groups more descriptive names depending on like workspace names or you know The types of applications that are available within each of the tree tab groups essentially though It's a max layout, right? We've got the windows max for the most part on top of each other in a stack The only difference is I've got the the sidebar here that's actually got the tree view But if you do a super J or super K to cycle back and forth through the stack, you know, you can go through the stack As you would in the max layout But if I do super shift J or super shift K, I can actually move the windows through the groups So I if I do super shift J I just moved to this first terminal window that has focus down to Workspace or the group two here inside the tree tab view and let's change the title of this by actually running a program So it's titled H stop, right? Super shift J. I can move it to group three super shift K I can move it back up to two super shift K. I can move it back To workspace one here. Now what's really interesting? Watch what happens when I do super shift L for right, right? We're doing the Vem navigation keys L is right. So super shift L And you can see the window indented over a spot, right? You can say it's I guess less important than the window above it or maybe it's part of a Order of tasks that I maybe I need to do this window before I do this window By the way, I could click on this window with the mouse instead of cycling with super J and K But let's indent this one. Let me do super shift L on that one And you can see I indented that one over and because that one The h top window was below it and was already indented over it indented over a second time And you know, that's just kind of neat the way you can order these things if I Super shift L move that over now. They're all indented one two three four spots finally for the h top window But what happens if I do super shift h to move that back? I can super shift h again I could even move it all the way over so this I guess it's not part of This kind of grouping you you can think of it that way, but you can order them in whatever method you want But what's really cool? Let's go back to this very first terminal window. What happens if I do super shift j To move that to the next group It moves that window and all the windows that were indented over as part of its Tree it's on group, right? So that is just really really neat I don't know if I would ever personally live in tree tab and use it all the time But I think it's such an interesting kind of layout. I think some people for some use cases will really Enjoy the tree tab layout now. Let me pull up my cutal config so we can actually see Some of the code associated with that tree tab layout So i'm going to scroll down through my config until I get to the layout section here And you can see I've got this layouts section here and you can see I've got all of the built-in layouts that are available I've got it here But most of them are commented out like I'm not going to use the bsp layout the ratio tile layout the vertical layout So I've got a lot of those Commented out but the ones that I do use monad tall max stack columns and then tree tab and you know I've got all of these uncommented and you can see there are the options that are available for you to play with For tree tabs. So you got a lot of coloring options depending on Active window inactive window you can name the section g So I just named my sections one two three you can have as many or as few sections as you want And finally the the big thing is how wide is the panel you see panel underscore width That is the setting for that now one feature that probably most cutal users do know is available because if you've ever used the default Standard config for cutal, you know that super r brings you up a run prompt You can see I've got this little run prompt here spawn colon and then we've got a blinking cursor, right? It's essentially I think it's a wrapper around d menu, which honestly d menu the proper d menu program It's just a better program. So I always default to d menu I imagine most cutal users probably do use either d menu or rophy for their run launcher rather than the built-in Prompt there with super r that said using their built-in d menu wrapper That's the little run prompt here does have some advantages One of the advantages is with tree tab and because tree tab has these sections, right? Well, what if you want to dynamically add Sections or or delete sections to the tree tab layout? Well, you can actually do that There are commands available for you to do that you could actually set them to key bindings But really what you probably want to do is you want to create a new Function here in python and this simple little function I I grabbed this off of the internet because I saw someone else Using something similar But basically we're going to have this new function add tree tab section And then once we have that created we're actually just going to key bind that function So if I scroll down here, I've got this here Mod shift a so super shift a for add tree tab section prompt to add new section in tree tab And you see it's a prompt. So I'm going to get a prompt similar to this run prompt, right? Except this prompt will be prompting me to add a new section To tree tab. So let's see this in action. So let me once again, I'll open a few windows and let me cycle back over to tree tab And now I have one two and three for the group names for the tree tab But what if I do super shift a now I get a prompt it says section name and I could add four all caps and now I have a new section here that you know You could just randomly on the fly anytime you need a new section in your tree tab add that kind of a cool feature that's really kind of a neat thing that That built-in prompt for qtile Does integrate really well with some of these custom python functions that you may end up creating along the way And if you dive a little deeper into the qtile documentation, you'll actually find That qtile they've got a ton of built-in extensions and specifically they have a lot of built-in extensions that are designed around D menu because so many tiling window manager users and qtile users in particular here They they use d menu so it makes sense that they've built kind of these extension Programs built around d menu and one of the cool things is this built-in extension called command set It basically allows you To define almost like you're defining a key binding in your your standard key bindings in your config, right? Except this particular key binding using this command set extension basically allows you to quickly Create a d menu script. So let me show you this because I actually copied The example that they were using here And I gave it this particular key binding here super z And then one of the things you define is commands equals and then the braces inside the braces You give it a list of options. These are the options that are D menu options. It's this the options that d menu will show. So if I do super z you can see Play paul's next previous quit open shuffle repeat. Let me escape out of that play paul's next previous quit open shuffle repeat You give it a name, right? So that's the listing and then colon and then you give it the command that should execute if you Enter on that now for me. I do have mo cp. That's a Music on console a music player. I do have that installed on my system. I'm actually not going to play any music on this video urx vt I don't have that particular terminal open But you know what I could do really quick just to show you this in action instead of executing anything with mo cp I can just have it open The alacrity terminal. Let's open h top within alacrity. So i'm just going to change that Let's restart cutal and now i'm going to do Super z and if I go to the open option if I hit enter it should open h top in alacrity That's exactly what happens So that is a really quick and easy way to get A d menu script instead of having to actually write a bash script doing everything with d menu They've really streamlined the process now if you were doing something really complicated with d menu where you had to string a whole bunch of things In succession like you choose an option in a menu and then you get another d menu that you choose another option And you know if you're doing something really complicated You probably should do that as a separate bash script But for something really simple like this is an example of just a media player right Play pauls quit open shuffle repeat That makes sense and I could see people using this for even like a logout menu So you have you know logout reboot shutdown whatever So some really neat stuff there those features with the the d menu extensions the tree tab layout and again If you want to really Have your mind blown man. Just go read the the cutal documentation You'll find all kinds of things that these guys have already Set up right they've already got Extensions for you'd be amazed i've been back living in cutal for a few weeks now I've been daily driving cutal on my main production workstation here at the office as well as my home computer and I've got to say It's always been one of my favorite window managers and it still remains that way every time I revisit it I'm just so impressed with what the developers behind cutal have accomplished now before I go I need to think a few special people I need to think the producers of this episode Daniel Gabe James matt paul royal west armor dragon commander angry George lee met those nader yon paul peace arch and fedora realities for less red profit rolling Solastry tools deviler wards into an abunto and willy these guys They're my highest tier patrons over on patreon without these guys This quick little episode about really neat features available in cutal It wouldn't have been possible The show is also brought to you by each and every one of these fine ladies and gentlemen All these names you're seeing on the screen right now. These are all my supporters over on patreon I don't have any corporate sponsors. I'm sponsored by you guys the community If you like my work and want to see more videos about free and open source software like cutal subscribe to distro tube over on patreon these guys