 Today, I wanted to take a look at a window manager that was the very first window manager I ever tried on Linux, and that window manager is OpenBox. When I switched to Linux full-time on the desktop about 15 years ago, the very first distribution I installed on my personal computers was Ubuntu, and Ubuntu at the time used the old GNOME 2 desktop environment. I wasn't a big fan, so I was looking for an alternative to GNOME, and I found OpenBox, and that really started me down this deep rabbit hole where every few months I was hopping to a new window manager, but I always kept coming back to OpenBox because it was so customizable. It was just so comfortable to live in, and I realized the other day I actually hadn't logged in to OpenBox in years, probably three or four years was the last time. I seriously logged in to OpenBox and did anything in it, lived in it for any period of time. What I was going to do is I logged in to my OpenBox config, which I haven't done anything within a long time, and I'm going to see if it requires me to do some tweaking because a lot of you guys are using some of my older window manager configs, and sometimes you guys tell me there are things that are broken or that don't seem right, so it'll be interesting having spent so many years away from OpenBox now trying my old configs and seeing if my old configs would actually work for the new DT. I'm not sure they will. So I've logged in to OpenBox here using my old configs, and already I can tell you it's really comfortable. I mean, it looks really nice. I've got a wallpaper set. I believe I was using Nitrogen to set the wallpaper here in my OpenBox session. We'll take a look at all of that here in a second. The panel at the bottom is the tint to panel. I've got some quick launchers here, and then this would be the task bar where if I had a window open, let me open a window. Windows do not open on the monitor I'm on. It actually opened on my far right monitor for some reason. So that's something that we need to correct. I want the windows to actually open on the monitor that has focus, not on just one specific monitor. I have three monitors, and I don't want the windows always to open on one of the three monitors I wanted to open and whatever window has focus. So we need to take care of that. But here's the task bar. So you can minimize and unminimize windows. Then further along, you have the time and date here. You also have a sys tray that sits here. You guys can't see it. It's because, again, three monitors. The sys tray actually sits on only one of the panels that's sitting on the far left monitor right now. But that's where the sys tray would be if you guys could see it. For those of you not familiar with OpenBox, it's just a standard floating window manager like any other floating window manager. Like your big desktop environments like GNOME, KDE, Plasma, XFCE, they all have floating window managers where you drag the windows around. The windows kind of float on the screen and they can overlap on each other. And the tiling window managers, to me, are quite a bit more efficient as far as use of space. But floating window managers, I certainly can use them, especially once I configure them to have certain keyboard shortcuts. As far as a menu system for OpenBox, OpenBox has the right click menu. Right. And this is a right click menu that you kind of have to customize yourself. It's actually something you kind of write. You add the programs you want to the menu. You don't add programs that you don't want in the menu. So it's a little bit different than, say, like your GNOME menu system or KDE Plasma menu system where they automatically take care of the menu for you. Right here, I actually had to write this myself. And some of these are actually configurable scripts like this system info. This menu here is actually a shell script, right? That displays some information here as part of a submenu. That's kind of nice. Time and date. This is another dynamic menu. It's a shell script that gets executed that tells me the exact time and date, what day of the year it is, what week of the year it is. So it's dynamic, meaning it's not always the same thing. It's a script that the output of the script gets displayed here. Virtual box. This is all the virtual box virtual machines I have on the system. Color scripts. These are all the shell color scripts. That does not look like that's working. That's probably because I've changed the location of where those color scripts are. I've done a lot of work on those over the years. Again, this open box config is probably about five years old now. So that's the last time I did any major tweaking to it. So we're going to have to change some things. So I mentioned that the first thing I need to change is these windows that automatically launch on my far right monitor. I need to change that. So let me go ahead and open my config file. I'm going to go ahead and launch Emacs here. And it launched Emacs, not as an Emacs client. So I guess I wasn't using the Emacs client with open box back then. But I'm going to make Emacs full screen. And I'm going to search for .config slash, well, that's recent files. I need to do space period for fine file .config slash open box slash rc.xml. So this is an XML file. Let me zoom in. And the very first thing I want to look for is actually near the top focus. Focus new. So do we want to focus new windows? Yes, we do. Do we want to follow the mouse? I've got that set to no. Actually, I don't mind it following the mouse. That would be fine. Do we want it under the mouse? No, that's probably not what I want. Raise on focus is set to no. Here's what I want. So the placement, smart placement. I can set that to smart or to under the mouse. But really what I want to change is monitor from primary to any, any monitor. Or I could also set it to active. That's what I want. I want that on the active monitor. So let's write that and let me restart open box. Now in the right click menu, let me make this smaller. In the right click menu, I don't think I had a key binding or a menu entry to restart open box. So what I'm going to have to do is I'm going to actually have to open a terminal. I've got a quick launcher for the alacrity terminal, which launches on the wrong monitor. But hopefully we'll correct that right now when I do it open box space dash, dash restart. And now that I've done that, let me close alacrity. Now let me open alacrity again. And now it launches on the monitor with focus, which is the middle of my three monitors, the one I'm currently working on. So that was a really annoying problem that we've already taken care of. One other thing that's kind of bugging me is my right click menu here in open box. It's got some transparency, which for this wallpaper, because it's all kind of a similar color, it's all very dark. It's not that annoying. If I had a really busy wallpaper, that right click menu would be really annoying. You see when I have it over Emax, it's kind of hard to read because it's got some serious transparency going on. So I want to change that. And to change that, that needs to be changed in my PyCom config. So let me do a vertical split here. And I'm going to go ahead and do space period for find file. And I need to do .config slash pycom slash pycom.com. And if I do a search for menu, see menu opacity is what I want. Pop-up menus are opacity 0.8, drop-down menus are opacity 0.8. So what I want to do here is I want to change that to not be so transparent. So if I wanted to, I could change it to like 0.9 to make it a little more opaque to where it's not as transparent. If I wanted it fully opaque, 1.0 would be what I'd want to do. And honestly, I really don't want those things to have any transparency. So I'll do 1.0. And now that I've done that, now when I click this launcher here, launch is Rofi. So I was hoping that would launch the right click menu, but it doesn't. But now the right click menu still has the opacity. I guess we need to do a restart of open box. So let me do an open box restart. Now the right click menu is still. Why did that not take effect? Maybe I need to kill pycom. And now let me launch pycom again. It's a background process. And still, so I'm not sure what is causing that transparency. I would assume that those settings should have been it. But I guess there's something else that I'm missing here. Window types. I've also got that opacity 0.8 down here. So I had it in two different places, which is probably unnecessary duplication. But now that I've changed that, now, yeah, now that's much better. See, the opacity is now 1.0. Yeah, that's what I want there. So now that we've taken care of that, let's see what other problems in my config need to be addressed today. Now I do know in my configs, I did have a key binding, SuperShift C, which has always been my standard key binding to kill windows, to close windows, and all of my window managers, floating window managers, and tiling window managers. Even in full desktop environments like GNOME and KDE Plasma, I always set SuperShift C to close the window with focus. So SuperShift C gets rid of all of that. Now one thing I noticed is for a run launcher, SuperR is key-binded to ROFI. And also this launcher here, quick launcher in the Tent2Penel with the Manjaro logo. I was using Manjaro when I made this config. This also launches ROFI. But really, for a proper start menu, what this really should launch, it should launch this right-click menu. Now the good thing is if you're using Xorg, which OpenBox is written for Xorg, it can't be used with Waylon. So there is a tool called XdoTool, which can simulate mouse clicks. So what we need this to do is instead of having this run the ROFI command, it needs to run the XdoTool command to simulate a mouse click. And we need it to, of course, simulate a right mouse click. That's actually not very difficult to do. So let me go ahead and open PCManFM, the file manager here. Because I want to navigate around a little bit. I'm not sure where some of this stuff is going to be, but I'm going to go into my home directory .config. I bet this is in the Tent2 config. So .config slash Tent2, Tent2RC. That's the config file for the panel. But I have launchers here. So these are the launchers that will appear here. And you can see one of them is titled ROFI and it's got the Manjaro icon. So that's what's going on here. Let's edit this. This is a .desktop file, by the way. Let me just go ahead and open this. I'll open it in NeoVim. Let's go ahead and make this full screen. And once again, zoom in for you guys. So right now it's executing this command here, ROFI dash show run. And instead I want it to do a XdoTool click. And that's for a mouse click three. The three is the right click button. And then I just need to go ahead and give it a name. Instead of giving this command a name of ROFI, I'll call it open menu. And then generic name. I'll just do the same. Open menu comment. Open the open box menu. And then the icon. We can still leave it as the Manjaro icon, although it's a little weird doing that because, you know, I'm not on Manjaro. So probably what I should do is, you know what, let me open up another instance of Alacrity and zoom in. Let's find an ArcoLinux icon because I'm on ArcoLinux. So the easiest way to find any file or directory on your system is to use the standard GNU find command. So I'm going to sudo find enroute. I'm going to search my entire file system for iName. So an insensitive case name search. I'm going to search for anything that contains the string ArcoLinux. I'm going to do an asterisk before and after ArcoLinux because I don't care what the characters before it or after the string are. I just need ArcoLinux as part of the name and give it my sudo password. Of course, we're going to find a ton of stuff. Way too much stuff, actually. So let me cancel that. So what I'm going to do is I'm going to up arrow find enroute. Let me specify slash user slash share slash icons because that's where all your icons are. And now it gives us a much more manageable list of icons that contain the string ArcoLinux. As a matter of fact, the one I just highlighted. Distributor Logo ArcoLinux. That's the one. Let me close that out. And now the icon name. It always searches for icons in user share icons. You don't have to give it a full path. Just give it a name. What was the name of that icon again? Distributor dash logo. If I can type right dash ArcoLinux. Now let me write and let me restart open box. So let me write and quit. And it killed that terminal. Let me get a new terminal back up and let's do an open box space dash dash restart. And now we still have the Manjaro icon. Actually, it just changed it when I clicked on it. Now you see the Arco icon. It's very small. You guys probably have a hard time reading that. But that is a ArcoLinux logo. And you can see now instead of executing Rofi, it simulates a right mouse click by using xdo tool click three. So that is really cool. So I'm glad I've gotten that straight. We've actually accomplished a lot here in just a few minutes playing with Mike and Fig. I'm going to, of course, make all of these sensible changes. I'm going to push this to my GitLab when I'm done. Let me close the file manager. I'm going to right click on the right click menu. And under preferences, I believe I was using the open box menu tool, OB menu. Maybe it's under administration. Yeah, there it is. Open box menu or OB menu is the command to launch the program. It's a graphical way to change this menu. Although it doesn't look like OB menu is launching. So there's something wrong with that program. Again, being five years old, this config the last time I really played with it. It's possible. OB menu has been removed from the Arch Linux repository or it's just horribly broken. Let's try to run it from the terminal. That way we get an error message in case there is an error. And there is the error has something to do with some Python libraries, Python two libraries. So let's close out that. So this thing has not been updated in a long, long time. Let me open the Brave browser here. So what I'm going to do is I'm going to go to, I've got a link for the Arch AUR and if I do a search for OB menu, OB menu. So there is the old OB menu which we know is broken. There is OB menu two dash yet. It's written in Python three with using GTK three. So that's a newer version of OB menu. We could try that. And there's OB menu three, which is open box menu editor, a replacement for OB menu. Let's try the OB menu three package. So let's close that out and open a terminal. Super enter, by the way, we'll open a terminal, although the terminal opened on the wrong screen. I don't know why that is. That may be a specific key binding I have set to always launch on that monitor. I'll have to address that at some point too. So let's do a paru dash OB menu three. And actually that is in the standard Arco Linux repo. Actually the Arco Linux repo third party. So apparently Arco Linux has already figured out they need OB menu three. And let me do a sudo pacman dash rns of the original OB menu package since it's broken. Let's go ahead and remove it from the system. And now OB menu three, if I launch that, yeah. And this is a graphical way of adding stuff to, you know, your right click menu. For example, that was graphics under graphics. I've got gimp, image magic, image viewer, inkscape. I get the right click menu up under graphics. I have gimp, image magic, image viewer, inkscape, yada, yada, yada. So this is just an easier way to edit this menu instead of having to go into the config file. The config file, if you wanted to do it manually, would be in .config slash open box. I am struggling typing today. My tab complete. You will see menu.xml. So rc.xml is the config for the window manager itself, but there is a separate config menu.xml for the menu system. And you can see very lengthy document here. I've got a lot of key bindings. I got a lot of stuff in my open box right click menu. So it's nice having a GUI tool to handle some of this. One other thing I've noticed is something a little weird. If I do the right click menu, I have an entry for exit. Exit simply kills open box. It basically runs a kill all open box where it does a P-kill for the process that open box is running on, whatever process ID. I forget exactly how that is accomplished there, but it doesn't matter. This works. If I hit exit, it will kill open box. It will kill the recording as well. But it will log out. But I also have a key binding because so many times when I want to exit, I don't want to navigate the menu system. I just want to quit. And all of my window managers, floating window managers, tiling window managers, I always do super shift Q to quit. But it looks like what I had that set to was the program called oblogout, which no such file or directory. So either that is not installed on the system or for whatever reason it's broken. But if I do a super enter to open a Lack Ready, let me make this full screen. Do super up and then super down, super left, super right. I can make the window bigger. I've got a lot of key bindings to resize windows and move windows around. I can do a lot of window management kind of stuff. Pseudo tiling a little bit with open box. But let me try to run oblogout. oblogout is not installed. I do a sudo pacman dash s oblogout I did not type that correctly too many O's and target not found. So it's not in the standard arch repositories. It's probably in the AUR. And you can see one is oblogout two is oblogout Pi three. So oblogout kind of like obmenu was written. It's a very old program. It was written in Python 2. Python 2 is deprecated. Really, we should use a newer version and thankfully somebody has rewritten oblogout in Python 3. So really that's the one we should install. Let's go ahead and review the package build if we want. I don't care about reviewing the package build. I'm assuming it's safe. You guys should review the package build though. I'm sure this is fine though. Now that I've done that, if I do a oblogout now we actually get our session buttons where I could cancel meaning just escape out of this logout restart shut down suspend or lock. I'm going to cancel. So now super shift Q actually works as expected. So that solves that problem as well. One final thing I want to do I was talking about auto start programs before because I mentioned the wallpaper. The wallpaper I believe is being set by nitrogen. But to verify that I'm going to go home directory slash .config slash openbox and then slash auto start is the name of the program. I'll open that in NeoVem. So here is what is auto starting every time I log into openbox. It starts the tint to panel. So tint to space ampersand. Of course that runs the tint to panel as a background process. Then it also runs pycom dash dash experimental back ends. I'm not using experimental back ends. That was probably for a fork of pycom I was using at the time so I can change that as well. Nitrogen space dash dash restores restores the wallpaper. Whatever the last wallpaper I set with nitrogen it will restore it when I log in. And of course I'm also launching the Emacs daemon although oddly enough the quick launcher here does not launch Emacs a client windows not using the daemon. The reason I know it's not is because it takes a couple of seconds for Emacs to launch. If it was using the Emacs daemon it would launch instantly because the Emacs daemon is always running so there's nothing to wait on it should just instantly launch a window. So that is a problem once again with the tint to launchers so let me go back into .config, tint to let me find the tint to folder launchers and Emacs so let's open that with NeoVim and zoom in and really we're going to rename this Emacs client and for the executable instead of Emacs %elf here really what I want this to run is Emacs space dash C space dash A and then I'm going to give it an opening and closing single quotes I could give it an alternative editor that's what the dash A is for so I could say the alternative editor is Emacs itself that way if the daemon crashes this would still launch Emacs not as a client window but just Emacs the standard way so that's typically how you want to do that let me write and quit that now let me make that smaller let me quit out of this window here and launch a new window and let's do an open box restart and see if now my Emacs windows open as the Emacs client now it's still well I don't know started as a scratch buffer the Emacs client window should start on my custom home page so you know what did I save this over here let me do a colon W now let's do an open box restart I'm still taking too long to launch it's definitely not launching it Emacs client of course it's not launching it as the Emacs client I'm an idiot seriously guys execute Emacs should be execute Emacs client space dash C space dash A and then inside single quotes the name of an alternative editor to use now I know that's right so I'll write and quit so let's restart and now I bet when I click on Emacs it launches it much quicker and it launches it on my start page right my custom start page so now it's launching Emacs as the client windows so very cool so that is me revisiting open box a little bit and cleaning up some broken stuff in the configs one thing I should spend some time on is going through the menu system there's a lot of stuff in here programs I used to use that I no longer use that are hard coded in my menu dot XML I may or may not play with that because you know it's basically I have my configs on my dot files as examples for you guys to try out but that's not broken in any way these will work as long as you install the programs but that'll be up to you to do I'm going to go ahead and push these to my dot files repository on my get lab for those of you that want to try this out now before I go I need to think a few special people I need to think the producers of this episode and of course I'm talking about James Maxim Matt Mitchell Paul West armor dragon bash potato Chuck commander angry George Lee met those nadir John Paul these arch and fedora polytech realities for less rep profit Roland tools Dibbler and Willie these guys they're my host here patrons over on Patreon without these guys this episode about me revisiting open box after so many years it wouldn't have been possible the shows 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 corporate sponsors I'm sponsored by you guys the community if you like my work want to see more videos about Linux and free and open source software subscribe to distro tube over on patreon peace this was fun I should revisit jwm next