 So, I've not always been a very big fan of the GNOME desktop environment. I've talked many times about the things that I find wrong with it, and it really just doesn't really fit my workflow. I'm a tiling window manager guy, and it's always been a hassle to enable tiling with inside of GNOME. Now, over the years, there have been many tries to make tiling work inside of GNOME, and they've all been kind of met. The pop shell thing is probably the closest to being good, but it has its limitations, right? And while I liked the material shell stuff, it was okay, but it was very early days when I tried it. And I don't really know if it's even gotten better since then. But to be honest with you, GNOME has never really been my cup of tea simply because it has not been as easy to make it fit my workflow as I would like it to be. Now, obviously, we're not here to talk about the deficiencies in GNOME or my opinions on it. Today, we're going to be actually to be taking a look at an extension that tries to make tiling better inside of the GNOME desktop environment, and it's called Forge. So Forge is, like I said, a GNOME extension. And one of the deficiencies of the other tiling extensions that I've looked at previously is that they all had customization issues. So a couple of them would not let you edit key bindings. So you were pretty much stuck with whatever the key bindings were out of the box. You couldn't change them. Others were very, very buggy. So Forge aims to make that situation better while allowing you to have access to more customization tools and just an overall better tiling experience. So that's what we're going to be taking a look at today. Before we jump in, if you'd leave a thumbs up on this video, I'd really appreciate it. It really does help the channel. So let's go ahead and hop into GNOME. And you guys can see what this looks like. So this is GNOME running on NixOS. And so far, I'll have to say that I really enjoy this extension. It's not perfect by any means, and we'll talk about some of the things where it fails. But once you have it installed, and you can install this in the traditional GNOME extensions way, I installed it using the extensions manager. So if you go into the extensions manager, which you can get via flat pack, and you go to browse and just search for Forge, the search in the extensions manager is absolutely horrible. It doesn't even come close to being by relevance. But once you actually find it, it'll be actually literally at the bottom. You can just install it, and then it will be enabled just like so. And just like with any other tiling extension or tiling window manager, it has a set layout. This is it is mimicking a dynamic tiling window manager and that it has that set layout. It's not manual. But it does some weird things where with window placement. So if you have this window in focus and then you open up a new window, it will open up below here instead of at the bottom of the stack. So where the next window spawns is going to be very determined by the window that is in focus. If I have this window in focus and hit enter, or open up another terminal, it looks like this. If I have this window in focus and then do this, it opens up there, right? If I close some of these, and then open up a whole bunch more, then it looks like a kind of like a BS PWM type layout. I believe they call this the Fibonacci layout. And what layout you choose is fine. Just know that if you're going to use this, the layout is is going to be determined by which window has the focus. And you can tell which focus is by the border that it has. Now you can change that border. We'll talk about that here in a few minutes. But the focus is determined by where the border is. So that's the overall layout and that's how it functions. And like with other tiling extensions inside of GNOME, you can use the mouse. So this is not meant to be 100% for those who abandon the mouse. You can drag and drop different windows inside of the stack. And then it will resize everything that's in the stack, which is nice. So if I wanted to take this one up, I could do that. Or if I wanted to go back down, what have you, right? So you could do that. You can also go to a client here, drag it, and you can either put it into a different place, or you can put it on top of one of the others, and it will actually, oops, that thing quite work. It will actually create a tab system. So you can have tabs similar to what you'd find in i3, which is nice. So if you wanted to have a couple full screen apps, or if you wanted to take these back and put it side by side, honestly, I'm not quite sure where those other windows went. I think, oh, there they are right there. And then where Firefox goes. So sometimes things are a little weird, and you're not sure where they are. So if I hit super here, and actually it looks like Firefox is completely closed, which is not what I wanted it to do. But I think that's actually meant as the way it's supposed to work. So when I hit that red X up there at the top, it actually closed Firefox instead of just closing the tab and taking you out of tab mode. So if I wanted to tab this just the side, I could do that. So I have tabs over here, and then I still have the stack over here. So you can use the mouse as much as you want. You can have the tabs, or you can have the stack, whichever you want, or you can have a combination thereof. That's really cool and really nice and works fairly well. Although like I said, that red button up there that red X apparently is not for taking you out of the the tab mode. It's actually going to close the application like I just found out. So that's the general way this works. So you can either use the key bindings, which I'll show you more of those here in a second, or you can use your mouse to kind of navigate and place windows wherever you want while staying inside of either the stack mode or the tab mode, which is it works fairly well. Let's go ahead and close some of these, and then I will show you the setting. So let me actually close this as well. So we will actually open that back up just that we have some tiling. And we'll go up here to this. Now when you install this extension, you get a new icon up there at the top in the quick settings panel, and you can hit tiling here, and you can turn it on or off, or you can hit this button here and actually have access to a couple quick settings. So gaps hidden when single. So if I turn this off, we'll actually see gaps come back while there's just one window, or I can turn that back on and the gaps go away. Another thing to show focus hit border basically what that does is it shows a border where the focus is. And honestly, you're going to want that because remember that the focus determines where the next window is going to spawn. And if you don't have the border on, and you don't know which window is in focus, you may not know where that window is going to spawn. So you probably don't want to leave that on, but you can turn it off if you want to. So let's go ahead and actually open up the settings here. Now, here's the thing. Forge does not have rules in the traditional sense. Now there is a configuration file, I'm not going to jump into it because most people who want to do this are going to want to only configure this with inside of the GUI. So we're not going to worry about the configuration file. That's a JSON file. I'm not sure if it's created automatically or not. If we go to the GitHub page here, and then we move this actually over to the side. You can see that there is a configuration file if you scroll down here far enough you can mess around with window overrides and some of the style sheet stuff inside of the configuration files that they have. But it's all meant to be configured inside of this panel here. Now, the reason why I mentioned rules is because there's no explicit place here in the settings to mess around with rules. Instead, the way they want you to do it is with your key bindings instead. So if you see one of these here that's listed here, it's the one called, let me see if I can find it. Actually, it doesn't look like they have it listed on their GitHub page. So if we take a look at the window shortcuts here, the only rule that they really have, and you'll know this because it says always on it is if you scroll all the way down here to window toggle always float. So Super Shift C, basically what that does is when you do that on a application. So like so if you do Super Shift C, it's going to make that a floating window. And if we close Firefox and then open it back up, it will remain floating until the next time we hit Super Shift C. So if we have Super Shift C, then it goes back into tiling mode. And then every time you open up Firefox, it will go back into whatever mode it was in last. That's the only rule that I found here. And it's not really a rule. It's again, it's a key binding that sets a rule, which is an interesting way of doing things, but it doesn't allow you to have full control. So say for example, you wanted to set it so that Firefox was floating on Workspace 2, but not on Workspace 1. That's something that you could do in a traditional window manager. Here you can't do it, which is disappointing, but again, not a deal breaker by any means. So the one thing that I do like about this extension though, compared to some of the others that I've tried, is that every key binding that you have here is 100% editable. That means you can change them to whatever you want. If you want to use a different modifier key, you can do that. If you want to change away from using the Vim keys to move the focus, you could do that. If you wanted to change the key bindings to change the gap size, you can do that. All of the key bindings that it has, you can edit, which is just absolutely the way that you want to do it. Now, I will say that their default key bindings are not great. So let me see if I can find the ones that I wanted to point out there. So for example, the window swap last active here, I have it set control super return. And the reason why I have it set to that is because by default, it's super return. And I want to be able to hit super return to actually open up a terminal. That's what I'm used to doing. And they'll actually also have one here. If I can, if I can find it, yeah, it's right here. The suit, the window swap to third right control alt T. So a lot of people use control alt T. Like in a boot to or in, I think even regular vanilla genome has a setup. I don't really remember, but a lot of people use control T to open a terminal. But they have control T set as a key binding. Now, here's where it gets a little weird. Sometimes the system will allow fords to dictate the key binding. Sometimes it won't. And whether which way it goes really does depend on what you're trying to do. Or what that key binding is set as in the genome setting. So if it's set as something really important, it seems like there's some kind of tier list for importance of key bindings. If it's system level, the system level key binding is what's actually going to be followed. If it's not system level, sometimes the forge one will fall. Sometimes if you have conflicting key bindings, none of them will work at all. So probably my biggest complaint for forge is that they have some of these key bindings that are going to absolutely be duplicated in some distros versions of genome. And that's not great because then like if you use control alt T to open up a terminal normally and you have this here and those things are conflicting, it either might work or might not work or might not do what you expect it to do. So I understand that they kind of have a lot of key bindings here and they kind of probably ran out of the ones that they wanted to use, but it's still something that you should keep in mind. The good news is, like I said, you can edit all of them. So if you're finding some conflicts between the key bindings that you have set in genome and the forge application, you can edit them here or in the genome settings obviously and make sure that those don't conflict, which is good. So you can set another rule here, but it's not, again, very helpful unless you want to just turn tiling off on specific workspaces. So you can use the update workspace settings to make sure that the workspaces do not have tiling. So you could skip tiling on certain workspaces of hit two or zero, whatever you can put that here. That's basically the only workspace specific rule that you can actually set. And it's really the only rule rule that you can set that's not a key binding. Now, the other two panels here are for appearance. So you can change the gap size and the gap size multiplier. I don't understand the multiplier part. And now I understand how I can show you what it does, but I don't understand why it's there. So you can set the gaps. So you just increase the gaps. And then if you were to increase the multiplier, it actually double the gaps, which is, you know, or, you know, it'll multiply the gaps to that size. So really, we're just looking at 64 pixel gaps here at this point, right? I'm not sure why the gaps multiplier thing is there to be honest with you. Why not just have a settings for gap size? If I wanted to set 64 pixel gaps, I could just, you know, scroll up to 64 pixels. Oh, like, I guess that's probably the reason why I guess 32 is the maximum. And this allows you to those are some big gaps there, bro. So the multiplier allows you to go higher than 32. So maybe there's a limit. They found some kind of technical limit to the gap size. So they allowed you to increase the gap size beyond that limit by having multiplier by having the multiplier. So that maybe that's the reason why they've done it. I'm not exactly sure. But it's there. Another thing you can do on this page is change the border colors. So you can change the border size here as well. And each of the you can change it for the floating and the split direction. So it's going to tell you where the splits going to happen, similar to what I3 does. So it's in this area here where you can do the customization of the colors. It doesn't have a lot of places where you, you know, need to do that. So it's really just the borders and the various border places. So if you're going to use borders, this is where you'd customize them. Basically that's what you'd find in a traditional window manager as well. Is the window manager itself is just going to control the colors of the border itself. Unless the tiny window manager has its own bar and then it usually gets more complex, right? The last one we'll actually look at is the settings panel here. And this is where we're going to talk about some of the limitations that it has beyond the things that I've talked about so far. You can have stacked and tabbed on at the same time, stacked windows on top of each other while still being tiled. Basically what this means is that you can have floating windows over ones that are tiled similar to what you're looking at here. But also it allows for situations where different applications don't really fit inside of the tiling mechanism to kind of overlap. So that's that. It also allows you to group tiles as tabs. You can actually turn that off. So if we turn that off, that means that when I drag things around, it's just going to stay in tiling mode. You no longer have the access to the tabs as you did before. So there are some specific tiling settings here that you can change and they use some weird language here. Just for example, the word toggle, right? Toggle doesn't make sense in this. So the preview hint toggle, I'm pretty sure they just left the word toggle in here. So what this should just be called is the preview hint. So when you drag a window over something, you can see it colors red here or blue if you're going full screen or into tabbed mode. So red is always, you can change these colors. Remember you can change those in the appearance settings. If you're going into stacked mode or into tiling mode with the window that you're dragging, it's going to be a certain color. And if it's going to be tabbed or it's going to be, you know, another color differently, right? And those previews are what this settings here for. So if we turn this off, we can see that when I do this, it doesn't give me any indication of what I'm doing. But the word toggle there doesn't make much sense. So that's one thing that I'm confused by. Another thing is that so the focus hint border, so that's going to be the border around thing you can turn that off if you want to. You can the default drag and drop center layout, you can change that from tab to stacked. You can change auto split so that you if it will, if we turn that off, we can actually see what that does. That basically just turns it more into a manual Tyler so that it just will continue to go vertically as much as it wants. And then if you change to a different with a key binding, you can change to having things split in the different the other direction. And that will, you know, it's more of a manual Tyler and that instead of a dynamic, which is nice that you can change this. We're going to close some of these and we'll turn that back on a float mode always on top. That just means that any windows will always be on top. And then you will see the show tiling quick settings. That means that you can take this away if you don't want that up there. If you're looking for a more minimal setup. So those are the settings. Now, the reason why I say that I'm going to talk about one of the things that is missing that I personally, I find essential. So the way I always do this, especially when I'm stupid and they'll reach for the mouse. I want the focus to follow the mouse. That's what I always wanted to do. I don't want to have to go to a window and then click that extra click annoys me. If I hover over it, I want it to work. Now, it's possible that in GNOME settings, you can change this. I know in KDE, you definitely can. Not sure if you can do it in GNOME. I'm not as familiar with GNOME as I'm with plasma. So that may be something that you can change elsewhere. But inside of the forward settings, you cannot as far as I can tell. That's honestly the biggest setting that I'm missing here. If that was here, this would actually be pretty good. To be honest with you, that's the one. That's like the biggest roadblock for me personally in using this. That of the sessions where I'm using GNOME, I would want that particular setting to be here, but it's not. So whether or not that's the same for you, it really depends on your workflow for me personally. It takes quite a while for me to remember that I have to click. You've got to remember, I'm so used to hovering over something in hand and having to follow the focus that hover. It's taken quite a while for me to remember that I have to click. So that's forged. To be honest with you, I really do like this. I think out of all the tiling extensions that they have here, or that I've tried over the course of the last few years, forge is the best one. And that's because it allows you a lot of customization when it comes to colors and more importantly, key bindings. And while I don't like the default key bindings that it has, the fact that you can change them kind of makes that point move because you can just change them so that you don't have any conflicting key bindings there. It does have quite a few settings that are that are nice to have. So you can change kind of between dynamic and manual tiling, which is nice. The one thing I do miss that focus follows mouse. So I wish I hope that they institute that later on. And I would also say that overall, it's not buggy. So a lot of these extensions, because GNOME is not meant for tiling at least not yet. A lot of them tend to crash a lot. They tend to have unexpected behaviors. I've been using forge for a couple of days now inside of this NixOS environment. And it works really, really well. It doesn't crash applications. Most of the stuff actually works. So if I actually show you here, one of the biggest things that you will have to see sometimes when you are using an extension like this, while that was a lot of words to say just a couple, but I'm very wordy today. I apologize for that. Anyways, one of the things that you'll notice inside of GNOME when you have one of these tiling extensions enabled is that when you open up certain applications, so for example, the settings application, it can't actually get smaller. Now, a lot of this has been helped by the introduction of GTK4 where they've done a lot of work at making these applications more responsive. Now, I will say is that because of a limitation of GTK, once it's in a certain place, the tiling no longer works. So this is not a forge problem, but you'll see this more often with older applications. So in the case of settings, it's not an older application. It actually does have a responsive mode and most of the newer GNOME apps do. But if you take a look, actually another example here is going to be Tilex itself. So Tilex is an application that is no longer updated, sadly. It's a fantastic terminal emulator, but it will only get so small in a certain area. So if we actually open up another terminal, we'll see that it begins to start to overlap. And that's just because it can't get any smaller than that. Now, honestly, no one's going to want an application that is that small anyways. But you can see the point. Older applications usually have a size limitation to what size they can dwindle down to. The settings application used to be a big one, like when Material Shell and Pop Shell first came out and before the settings application went to GTK for, the setting application wasn't responsive. So it would only get so small and when you were to try to tile into that space, it would actually just overlap everything and that would break the tiling experience. As more and more stuff is going to GTK for, less and less of that problem happens. So that has made this experience a lot better because you don't have that overlapping problem that you used to have as often. It still happens, as you can see with Tilex. That was just the application I had on hand to show you that happens. But it does happen from time to time. Just keep in mind that usually happens with a GTK3 application that can only get so small. The GTK4 ones seem to be able to get smaller or at least break things in terms of the tiling mechanism a little bit less. So that's good. Overall, like I said, really like the Forge extension. It does make GNOME a little more palatable for me because I like tiling. And if I'm going to use GNOME, I wanted to have a tiling mechanism and this works better. Now, I will say, just kind of as an offshoot, if you use other extensions, especially ones that mess around with the layout of GNOME, you're going to have some interesting times. Sometimes Forge and other extensions don't play well together. So for example, let me actually show you just one more time. You can see here that I have dash to dock enable. I have it on. And if I have Firefox in focus, the dash hides. But if I don't have it in focus, the panel shows up over Firefox. Now, not a big deal because it's not in focus, but it still looks weird, right? Because what I would like to have happen is have it automatically hide. Now, I think that in the dash to dock settings, I probably could set this up, but you can just see there's some little conflicts there where dash to panel doesn't really know what's going on because how could it? And you'll have certain extension, certain some things just don't work together the way that you'd expect them to do. It doesn't mean that they're broken. It just means that they kind of can't talk to each other, right? And the more extensions you use that kind of mess around with the interface of GNOME, the more problems like that you're probably going to come up with. And you'll, I actually, I probably wouldn't call them problems. It's just more hurdles you're going to have to kind of overcome to make everything look and function the way that you want it to. And you may end up having to sacrifice some of your extensions if they don't have the ability to customize past what you want them to do. So that is Forge. Again, it's very good. You should definitely check it out if you're a GNOME user. So that's it for this video. If you have any thoughts on the Forge extension or GNOME or whatever, you can leave those in the comment section below. I'd really appreciate that. If you haven't already, leave a thumbs up on this video. It really, really would help the channel. I apologize for being very wordy today. I don't know where all the words are coming from. I'm just, I'm a chatterbox. But anyways, thank you for leaving a thumbs up on the video. It really does help. You can follow me on Mastodon or Odyssey. Those links will be in the video description. You can support me on Patreon at patreon.com slash Linuxcast. Or you can head on over to the store where you'll find hats, t-shirts, and all sorts of merchandise that directly helps the channel when you buy it. So that's available at shop.linuxcast.org. Again, I buried the URL all the way to the end. But that's just the way apparently it's going to happen. Thanks to everybody who does support me on Patreon, and Kofi, and I really appreciate it. All of your guys' support, I really do appreciate it. Did I mention that I appreciate it? I do appreciate it. How many times in one sentence, without any periods or commas or whatever, can a man say appreciate? And then get the point across that I really appreciate it. You guys are all awesome. Thank you so very, very much. And as usual, I bungled banding, but what else is new? So thanks for watching. See you next time.