 I made a video the other day talking about using app images and having a problem using dmenu and having app images on my system because dmenu, by default, can't search for those app images. It actually can't search for anything that has a desktop file, which is typically how most menu systems figure out, you know, how to populate their menus with, you know, all your applications, but dmenu just simply looks in slash user slash men for binaries and that's all it displays. And people were like, well, why don't you use a better run launcher? Why don't you use Rofi? Because by default, Rofi searches the desktop files and it will actually display all these app images I have on the system. Now I have used Rofi in the past over the years. I've gone between both Rofi and dmenu many times and the early part of my channel's history. If you go back and look at all of my old videos about open box, especially in Qtile, you would see me using Rofi in those videos. If you go to my get lab and take a look at my dot files for open box, and I think in I3 as well, the default run launcher in my dot files for those particular window managers, I think is still Rofi. I don't think I ever changed it. So I've looked at Rofi in the past, but here in the last few days, because I've been getting into more app images, I thought, you know what, I'm going to switch back to Rofi for a little while. I want to play with something new anyway. And I really spent the last two or three days doing a lot of stuff with Rofi, neat stuff, theming Rofi, trying to get Rofi to work for me. And I've been enjoying it. And I wanted to show you guys a little bit of what I've been doing. So let me switch over to my desktop here. And I'm logged into Qtile today. So this is the Qtile window manager. Let me open up a terminal and I'm going to run this command dmenu underscore run, which is the standard dmenu command to actually search for programs. And by default, it's just going to search for binaries and user slash bin. Now I have hacked on it enough to where I can get it to display the app images that are installed in my home directory at slash applications. But if I try to launch one, will it actually launch? It actually does launch. Now that sometimes fills and I don't know why it fills. So it's kind of iffy. Dmenu is kind of flaky on these app images. That one actually worked. But sometimes I will actually hit enter on these and they don't work. You know, I'm just done with Dmenu. So what I have decided to do is instead of using Dmenu, I am now using Rofi. So when I hit my standard key combination to bring up a run prompt in my dot files, I typically use super shift enter. Now when I do super shift enter, this may look like Dmenu, but this is actually Rofi. I just themed it to kind of look like Dmenu. And you see the very first application there, Firefox. That is Firefox as an app image, because that's the only Firefox I have installed right now is the app image for Firefox. If I hit enter, it does always launch from Rofi. I've never tried to launch anything from Rofi that didn't actually launch. Now let me do super shift enter again to bring up that Rofi menu. Now this is not what Rofi typically looks like. Rofi typically is in a box in the center of the screen, but I kind of like the default horizontal bar of Dmenu. That's kind of why I've gravitated toward Dmenu these days is because it's just a simpler cleaner run launcher, right? I don't need anything flashy. So I kind of themed this to do what I want to do. Let me get into the configs for Rofi. So I'm going to CD into dot config slash Rofi. And if I do an LS, I created a couple of folders here, scripts for some scripts that I'm going to be playing around with with Rofi. I created a themes directory. That's where you need to stuff all of your themes that you create for Rofi. And I played around creating two themes here in the last couple of days. And then you need a config file. Typically, it needs to be config dot rassy. And if I open this with VM here, so you can see all it is is the word configuration. And then the squirrely braces. And then theme colon and then in quotes, the path to whatever Rofi theme that I want to use. And I'm using config dot config slash Rofi slash themes. And I created this thing called DT dash center. And let me quit out of that. If I just run a Rofi dash show run. And this will just be Rofi displaying the minaries on the system kind of like what D menu typically does. And it uses my theme that I call DT dash center. And you can see I get a run prompt that's got this blue background. It's got this border radius as this curved border around it. And then I've got some lines you can see the one that's selected has a red background. And then the others are dark, but they are alternating odd and even colors. You know, the odd colors are a little darker than the even colors. And I could start searching for something. Maybe I want to search for a lacquerities. And, you know, once I get the correct search, I just hint and are very similar to D menu. Now the difference with Rofi compared to D menu, obviously, you've got some more options as far as configuration and colors and everything. You can really make this thing look like whatever it is you want to make it. So let me CD into my themes directory here and do an LS. And let's actually take a look at that DT dash center dash recipe fall. So let's open that with VM. Let me zoom in a little further. And these config files, all they are really are just CSS cascading style sheets. If you've ever done anything with CSS and doing any kind of web development, it's it really accepts all the standard commands like background color, border color, text color, setting the font. You know, I created these variables here prompt font, prompt background, prompt foreground. And what I do is I just call upon these later. So I have a section down here where I define all the CSS or the prompt. And you can see the padding is at prompt padding. So I'm just referencing what I put up here toward the top of the document. So prompt padding is four pixels, etc. Pretty easy config file to work with if you're used to using cascading style sheets. Now let me quit out of that. And let me show you the D menu like config, which is this config here, where I get a very D menu like horizontal bar appearance. And this is not a very lengthy config like this was really simple to set up. All I do is you know, I define the background color, I define the prompt as far as the background and the foreground color of the prompt, the width and everything of the input box, you know, where you're typing, and then whatever I select, you know, I want to set a different background for, you know, what I'm selecting in the menu. And that's basically it. Rofi is really easy to configure to your heart's content. It's a lot easier to get Rofi to look the way you want it, then D menu. The other thing with Rofi is Rofi doesn't need patching. By default, D menu really doesn't do much out of the box. You don't have a whole lot of configuration options. You don't actually have to patch Rofi to do anything. All the features, all the stuff that Rofi can do is already built into it. Now some people may say, well, that's just bloat because there's going to be all kinds of functionality built into Rofi that maybe you'll never even use. You don't even know is there. I get that. But for most people, not having to patch a piece of software to do basic things is probably an advantage. So let me show you a little bit how to work with Rofi. I showed you the command earlier, Rofi space dash show and space run. You could also have done D run and this will actually do your dot desktop files. So instead of doing just the binaries, D run actually will give you the dot desktop files. It will give you the name. It will give you the generic name. It will give you a description out to the side that is in a little bit smaller font and it's a tele-sized and it will actually search all of this stuff. Like if I just search for browser, like it actually searches the descriptions as well. So it's great, especially if you're not sure of what the command, the binary command is for something like a library office writer. I know is L O writer all one word. But if you didn't know what that was, then having something like Rofi dash show D run is much better because now I can just search for, could I search for word processor? Yes. And you see it actually finds that because that's the description of library office writer. Some other possible things that you could use with Rofi Rofi dash show space SSH is another mode you can do. This is just some of the stuff I've SSHed into before. And I'm looking at the output here in the terminal. It's also telling me there is Rofi dash show space window. And this is showing me all of the programs that are currently opened. So if you needed a quick way to switch between programs, which in your traditional desktop environments, typically something like alt tab or super tab will bring up some kind of program switcher. And you don't have to use that. Or if you're using a standalone window manager that doesn't have that kind of functionality, you could actually bind that to do Rofi dash show window to switch between your open programs. Let me clear the screen here. And obviously the big thing with Rofi as compared to D menu is people are like, well, you know, typically with D menu, you're piping stuff into D menu, right? You're using D menu with your scripts. You can actually do that with Rofi to it works exactly the same way. A matter of fact, it's very easy to convert a D menu script over to a Rofi script, because whatever it was you were piping into D menu, all you have to do is just pipe it into Rofi instead. So it's like a quick 10 second change probably for for a script just converting it over from D menu to Rofi. For example, if I ran an LS command, and I'm going to type the full path to LS because my LS is actually aliased, but I'm going to type slash bin slash LS. And just to run it LS here in the current directory I'm in, and then I'm going to pipe that into Rofi. And then I'm going to do a space dash D menu, telling Rofi I want Rofi to act like D menu in this particular instance, which means I want to be able to pipe something into Rofi. So just letting Rofi know I'm piping something into you, then dash P for prompt. And then I'm going to call the prompt run colon. And if I hit enter, it ran a LS in this directory, you can see the prompt run colon. So pretty cool. Let me CD in the home directory, because this will be more dramatic when I'm in a directory that actually has a lot of stuff that I could, you know, actually pipe LS into. So it's very easy to use Rofi exactly the same as D menu as far as just piping stuff into it. For now, though, I think, you know, I'm pretty satisfied just having my two configuration files because I only really ever want D menu or Rofi in two layouts. I either want it just one single horizontal bar at the top or the bottom of the screen, depending on what I happen to be preferring at that time. Or I want, you know, a menu centered in the middle of the screen. So I have two config files for each of those. And I'm pretty happy with this. I really like that that centered look there. I'm really happy with the theme there. And I'm also happy with this very minimal Rofi theme as far as just the horizontal bar at the top. And I think I'm going to just convert some of my config files over to just using Rofi for a little while, especially now that I'm focusing a little more on app images just because Rofi handles all of that stuff straight out of the box. And I don't have to fool with, you know, exporting, you know, new paths for the shell or sim linking anything or trying to patch D menu in any kind of weird way. Now, for those of you on Linux, Rofi should be available on every single Linux distribution. You should probably find Rofi in every standard repository for every GNU slash Linux distribution. And if you find D menu kind of a hassle, especially if you have to patch it for functionality, maybe give Rofi a try. Now, before I go, I need to thank a few special people. I need to thank the producers of the show, Devon Fran, Gabe Corbinian, Mitchell, Akami, R5530, Chris, Chuck, David, the other David, Donnie, Dylan, Gregory, Lewis, Paul, Pick, BM, Scott and Willie, they are the producers of the show. They are my highest tiered patrons over on Patreon. Without these guys, this episode about the Rofi run launcher would not have been possible. The show is also brought to you by each and every one of these ladies and gentlemen. These are all my supporters over on Patreon because the DistroTube channel is supported by you guys, the community. If you'd like to support my work, I hope you consider it. Look for DistroTube over on Patreon. Alright guys, peace. Yeah, enough of the patching already. That got old.