 Over the last few months I've gotten a question over and over again and I finally decided I was just going to make a video about it and answer the question. The question is what is a scratch pad and why is it good? And the reason why I get this question a lot is because I'm always talking about scratch pads, whether it's in a video or on Discord or on Twitter, wherever it may be. I'm talking about scratch pads about as often as I talk about file managers and if you watch the channel you know I talk about file managers way more than anybody else. So I figure it's about time I just go ahead and answer the question and maybe this video will help people understand why I like scratch pads so much. So let's just start off with the basics. What is a scratch pad or what are scratch pads? The answer is that they can be literally anything but for the most part when someone's talking about a scratch pad they're usually talking about a terminal of some kind. It can be any terminal but what makes a scratch pad a scratch pad is that it's a hidden terminal. So perhaps you've seen the drop down terminals that some people really like to use. So I can never pronounce their names Iwake, Gwake, I don't know. It's something from Doom I think. But the point is that there are a few terminals that can be activated with a key binding that drop down from the top of the screen. You can do your terminal work in there, press the key binding again and the terminal goes away. It doesn't close it just hides itself away. Well a scratch pad is basically the same thing only instead of dropping down from the top it's usually centered and the way they are maintained is a little bit different. So when you have a scratch pad whether it's a terminal or some other application and it's in hideaway mode it's hiding actually on an invisible workspace. And this invisible workspace is not something that you'll ever see because well it's invisible. And anything that goes there is actually actively running. So let's just say you open up terminal. Let me actually show you this in live action, shall we? Let's just say you have a terminal. So this right here is a scratch pad. And let's just say I've opened up H-top. So there's H-top something that we've all used. And I send this way it is now on the invisible workspace. You can't access the invisible workspace you can't go there at least in most window managers you can't go there. But for the most part it's invisible and inaccessible for everybody it's just something where everybody's every scratch pad you have is kind of hidden away. And then I bring up that same scratch pad again using the key binding and you can see H-top is still running. It was running the whole time. So if you actually were to hide this away and open up another terminal and type in H-top again you could actually find that H-top is running twice. You can see here there's two instances of H-top running at least there for a second. They were right together and there's two instances of them because I have it open twice. One of them is just on a scratch pad like so it's just like there. That is what a scratch pad is. And if you don't deal with the terminal that often it probably doesn't seem all that useful because for the most part when people are talking about scratch pads they usually are talking about terminals. So for example I have Ranger set up in a scratch pad. So it's a terminal application. I have NCMP CPP when I actually have NPD installed set up as a scratch pad so I have my music player there all the time. So as you can tell I usually use it for terminal based applications. I also have pulse mixer. So when I use pulse audio I have my volume controls right there at a key binding. That's what a scratch pad is. However, just because I have it all set up as just terminals doesn't mean that's all a scratch pad can be. Because of the way scratch pads work you can set it so that any application that has a class or even a title and some window managers you can set that up so that you can use that as a scratch pad. So for example you could set up if you use bit warden you could set up bit warden so it appeared as a scratch pad. You could set up your file manager like if you wanted to use Nemo as a scratch pad you could do so. There are no limitations in what you can set as a scratch pad for the most part as long as it has a class or a title you can usually set whatever you want as a scratch pad and then assign it to a key binding and bring it up just like you would this terminal. That's what a scratch pad is. Now the question then becomes why are scratch pads good? And you might have gotten a sense of this already. There are several instances where I find scratch pads really useful. First of all, just a blank terminal allows me to have, let's just say I'm in a browser let's say I have Firefox open doing my work for the day or I'm browsing the internet or whatever it happens to be. I have Firefox there and I don't wanna open up another window alongside of it because maybe I'm scrolled to a certain position or something and I don't wanna lose that spot but I need a terminal. Now I could just put a terminal on my other monitor that would work fine but if I just wanna do something quick I could just bring up a terminal over top of Firefox do whatever I need to do send it away even if the command I was running is still running and then go back to what I was doing in Firefox and then bring it back to see how the command was output or whatever it really doesn't matter if it's instantaneous or not you know it just kinda runs in the background. So that is one instance where it's useful. Another example is a music player so let's just say you use NCMP CPP just because you really like that really clever name and it actually is pretty good but the point is, is that let's just say you use this you wanna keep it open all the time because you're always going there to choose a new album or whatever. Well you can either put that on its own workspace and have it always taking up space or you can add it to a scratch pad have it so that it always lives on that invisible workspace and then it just is popping up whenever you need it from a key binding and then you can send it away again. That way it doesn't take up a workspace. Now for me personally it doesn't matter if it takes a workspace for me because I use a ton of workspaces but not everybody's like that. Most people either don't use workspaces at all or just use three or four and when you're only using three or four it's good to have a special tucked away place where you can keep all this stuff that's not going to take up room especially if you're on something like a laptop where you are really space constrained. So that is two examples. I also have set up a scratch pad for NeoMut so I use my email client in a scratch pad and that allows me to hide my email client away so that I'm not always looking at it and I get a ton of emails like every day from work from the YouTube channel all this stuff it just, I'm getting constantly bombarded by hundreds of emails a day and I don't wanna deal with that like at all but I want my email client there in case something does come in that I wanna check where I have a few minutes and I wanna check email or whatever. By having it on a scratch pad it's not constantly in my face it's sitting on the invisible workspace and I can go there at my own discretion and check my email and then send it away again. So that is another example of where a scratch pad is useful and you can come up with any number of these ideas where you have an application that you use a lot and that's really the idea behind a scratch pad is that you have to use an application a lot for this to make sense because it's always going to be running in the background. So this is not going to be a good thing for something that you never use because you're just gonna forget it's there and you'll never use it but for applications that you use all the time but that you don't necessarily wanna have in your face all the time or on a workspace all the time a scratch pad is a good way to have that application running for you all the time easily accessible but not taking up space. So let's just say you use H-top all the time you can have that on a scratch pad just waiting for you to pull up you don't have to ever type in the command anything it just pops up and then you look at whatever you need to do and then send it away again that's what scratch pads are good for. Now the next question has to become is how do you use scratch pad? And that's a question that's going to be much harder to answer because scratch pads are different on every single desktop environment and window manager out there. No matter what window manager or desktop environment you're using the process for using scratch pads is going to be different. Some of them don't even support them at all. So for example, out of the box DWM doesn't support scratch pads you have to patch it in. Out of the box BSPWM doesn't support scratch pads you have to script it which has always been a pain in the tuchus. So that's one of the reasons why I don't use BSPWM. With I3 it's built right in it's very easy to use with once you've patched it into DWM the scratch pads on DWM are fantastic. They're really good. Xmonad has scratch pads functionality that you can build in by adding a certain library and adding a whole bunch of Haskell and stuff like that. It's a pain in the butt but if you're using Xmonad you're used to everything being a pain in the ass. So you can then implement scratch pads if you want once you've get it actually in there their scratch pad functionality is really good as well. So how you implement scratch pads is really going to depend on what window manager you're on. So I highly recommend hopping on Google or DuckDuckGo or whatever and asking how do you do this in whatever window manager because there's no way I could in this video tell you how you could do that in whatever window manager you're in. If you're an I3 go to i3windowmanager.org go to the docs, search for scratch pads it's literally two lines and it's really easy. I also have all of my scratch pads in my .files so you can kind of go see how I do it. Jake at Linux also has a couple of videos where he's kind of schooling me on how to do scratch pads in I3. So you can check that out as well I'll link that in the video description. So that's scratch pads that should answer most of your questions. If you have other questions you can leave those in the comment section below. I'd really love to hear from you. If you want to follow me on Twitter you can do so at the Linuxcast if you want to follow me on Mastodon or Odyssey those links will be in the video description. You can support me on Patreon at patreon.com slash linux because I still haven't fixed this graphic I really do need to do that. Anyways, thanks everybody who supports me on Patreon and YouTube I really truly do appreciate it. I can never really find the words to say how grateful I am for everyone who supports me on Patreon and YouTube so just thank you so very much. So anyways, thanks a lot for watching. I'll see you next time.