Now, one little tool that you've probably always been looking for, but maybe you haven't found it, is Enter. It is a fantastic little utility for system management, system administration. It does something that you often want all the time, but it does it in one of the best ways it you possibly can. And that is, a lot of times when you're doing something on your computer, you want to have a command run every time you update a file. Maybe it's a log file, maybe it's some kind of output, maybe you're programming, maybe you're just writing a document and you want it to auto compile or something else like that. Maybe you want something and notify you when a file changes. Enter does all of this stuff. It has a very simple interface, but it is absolutely fantastic to use. I'm surprised this is not some core part of the Unix operating system, or there are equivalents, but Enter makes it very, very easy to get exactly what you want done. In fact, I'll just run you through the syntax because it's pretty simple. Let's, let me think of a hypothetical example. Let's say, you know, let's say I want to run a command, I want to get a little notification up here. I want to notify send command whenever I update my Bash RC. Okay, just random example. How you do that in Enter is very, very simple. What you do is you just echo Bash RC into Enter, and then you just give it whatever command you want it to run. So let's say notify send, and we'll give it the message Bash RC updated. Very simple. Now, if you run that, you're going to see, actually, by default, you're going to get a notification at the very beginning because it'll run the command at start. If you don't want that to happen, I should go ahead and say, if you don't want that to happen, you can just give it P option, but either OOPS, not notify send the P option, Enter the P option. Excuse me. You can just give Enter the P option. But either way, what this script is going to do is whenever I, let's say I'm in my Bash RC and I make some kind of modification and I save this file, bam, this command is going to run. And now I have a little notification Bash RC has been updated. Or you don't have to be editing it in an editor. You can do something like, let's echo a comment. So this is a comment. And let's echo that into Bash RC. So we're modifying it through our commands. And oh, look at that. It's still, even though we didn't physically open the file, it still ran the Enter command. So Enter is very, very useful for this kind of stuff. And you probably are already thinking a lot of, of a lot of implementations for it. Excuse me. You can actually look here. They give you some examples just for you to mull over. Now, oh, yeah, you, so you might be wondering, okay, this is weird syntax because what we have is, why do you echo Bash RC into Enter? Now, that might strike you as sort of a weird thing to do, but this is really nice because, I mean, you don't have to use echo. You can use any kind of command and Enter can read standard input. So they give some examples here just to go over them. For example, let's say you're doing some web development and you want, you have some kind of command that gives you a preview of what your website is looking like, but you want to run that every time a file is changed. Well, you can just LS all your CSS or CSS and HTML files and pipe those into Enter. And then your update command is going to run every time any one of those files is changed. So that's very convenient. So you can take LS as some input. You can, as I did a second ago, use echo. You can use, you know, DU with the A option to update all the files in an area or something. Here they give another example, right? So MUPDF, very nice PDF viewer. One thing it doesn't do by default is automatically update if a PDF file is changed. But you can very easily just LS all your PDF files and then put them in the Enter and update MUPDF with them. Very, very simple. Now, I want to give you two examples of what I use, of what I use this for. One is going to be compiling documents and one is going to be using, so if you guys use NewsBoot, NewsBoot has this really annoying way of downloading podcasts. But I found a little fix for it using Enter. I guess a little hack, not a fix. So I'll do the compiling documents then first because I think that's the one that has more, I don't know, more people would be able to use it. So here I have a little graph document, yet another example graph document. But I'm going to pull up, I actually just wrote this, you know, five minutes before I started the video. Because, you know, I'm not big into auto compilation, but I know some people are. But I made a little tiny auto compiler and it's super simple. It's a little script. I don't know how I actually get rid of my face for a second. It's a little script that I called, what did I call it? Oh, yeah, just auto comp silly me. Now what this is, make this thing a little bigger. So I have in my VIM here, of course, is a VIM buffer. In my VIM RC, I have mapped this little command that will run auto comp every time I'm, I type leader A. And what auto comp does is first off it checks to see if there's an instance already existing. And if it is kills it because I want it to toggle, but ignoring that, the enter command that it runs is pretty simple. It just takes the file that you gave it and it just echoes it into enter and it runs this compiler script. Now the compiler script, you guys might know from my GitHub, but well, let me pull it up. So I just have this little compiler script that is really just, you know, has a bunch of case statements where, oh, if it's a graph document run these commands, if it's a markdown document run these, you know, use Panda or whatever. If it's a lock tech file, it's just the general handler for different kinds of file types. So long story short, whenever I am in my VIM buffer, any VIM buffer now, I can just type leader and then A, and that's going to activate a kind of auto compilation mode. So I'm going to bring up my PDF preview here. So just to illustrate that this is working, again, enter is running whenever I save my file here. So if I throw in some extra text, I save it. It auto compiles. Perfect. If I want to add in another paragraph, so let's put in another paragraph. It's always hard to spell paragraphs. I'm just going to wing it. Okay, so that again automatically appears and we can do pretty much do whatever we want to lead some text and every time we save it, that is going to update. Now, of course, you can go even further than this. Now, again, I'm not an auto compilation person, but let's say you're the kind of person who likes VIM updating every time you leave normal mode or something or go into or normal mode or change the buffer. Instead of looking at the main file like I have, you could look at VIMs, the store, the like the buffer file or the swap files that VIM creates or something like that. Again, pretty easy to do with enter. So let me give you my other use case. Again, this is for auto compilation and all the files should be on my GitHub or they might be all up to them. So that's auto compilation. Another use I have is there's this program I really like called NewsBoot. It is an RSS feed reader. It's fantastic for most things, but there's one thing about it I really don't like. And that is by default to download a podcast. It's a big pain. If you go to one of these entries, let's go to one of my podcast entries here. If you go to one of these entries, the annoying thing about it is that to download a podcast, you're supposed to press E to incu it. And then you're supposed to open up this other program called pod boat and then download it manually there. I think that's just a huge waste. So one nice thing, by the way, I know someone's going to note, but yeah, that's right. I'm subscribed to Coast Coast AM because I have to get my Boomer conspiracy theory radio. You just got to have, I mean, look at this stuff. Leanne Thomas talks about angels, demons and ghosts. I got to have it. I don't even listen to it that much, but I just like just having all the episodes because why not? It's an American cultural icon. Say what you want. But anyway, the nice thing about even though I don't like this functionality in NewsBoot, the nice thing is whenever I incu one of these files, it actually puts it in a file that I can access with enter. And that's what I've done. I have a little script here, pod enter. And this, this runs every time I start my graphical environment. And it takes that queue file that I just mentioned mentioned, and it echoes it into enter. And it runs the queue and notify command every time that file is updated or whatever. So what is the queue and notify command? Well, we can go see that. It is a little script. Actually, I'll show show you how it works. Just go in here and queue it. And you'll see I get this little message saying in queuing this podcast, I'm going to incu this one, incu that one, incu that one. Now they're all in cute. And what this is actually doing, if you check the little script here, it is really just, it uses task spooler. I don't know if you know about tasks spooler, but it's just a little thing that you send it commands. And it's just a little bit more fun. Send it commands and it will automatically run them as opposed to manually run them in pod boat. So it queues a download command and it also queues these little notifications. So I can be aware of whenever something finishes downloading. So that is much more convenient than opening pod boat and manually downloading things such a pain. This is much easier. And I can also change the file names, because I think by default some some podcasts will have like windows files, they file names. So you can change that kind of stuff. But So it's much more convenient and just using enter. I have this little script to process, you know, get a get a whole lot not have to worry about it. So anyway, that's about it. I hope this has given you some ideas for the kind of stuff you can do and enter. But chances are, I mean, this is such a great program, such a general use program that you've probably thought of your own use cases. So anyway, hope you learned something and I will see you guys next time.