 Hey guys, so I've been getting a lot of questions about how to do drop-down terminals and scratch pads in i3 I actually had a video on these like well not really on these But I mentioned how to do them a long time ago, but I figure it's worth since I get so many questions about it It's worth actually going into tail how it works So I have two drop-down terminals or scratch pad terminals on my machine. So in i3 You can set it up so that there are certain windows that are hidden from view They're still there and you can pull them up whenever you want. So it's really convenient. So I have one here So this is I have a Tmux window that I hide automatically Sometimes I'll run updates. Sometimes I'll you know update get my mail or something like that So that's one of my terminals and basically how it works and how it works You know on the user side is whenever I press mod you this terminal comes up when I press mod you again It hides so you don't close it like a normal terminal You use you know, whatever key binding you assign to hide it or show it So I can bring that up on any screen I want and I have another Drop-down terminal so to speak another scratch pad terminal and that's basically for arithmetic So if I press mod a this is actually just the terminal that's running r So I can type in something or you can run Python or something else Just if I need to do arithmetic if I'm doing something else And I don't want to have to bring up another window and tile it in place or something It's just way easier to do it this way So how do you do this in i3? So i3 let me open up my config Let me go to where you actually do this So the idea behind it the idea behind the scratch pad in i3 is basically It's just a hidden window that has a bunch of stuff that you can hide on it And then you can choose what to reveal on it You know choose to move whatever you want on the screen that you actually have So right now all these two windows if I hide them They're just in a place that I can't see And when I press the buttons to reveal them they're just moving to whatever window I'm on or you know workspace I'm on So let me show you how to do this. So how the command actually works is well when I start up my system What I do is I have it automatically create a terminal window with the name of drop down Right so in different terminal emulators if you look at you know your manual or whatever for whatever terminal emulator You have there's usually some way of giving your terminal a name Now you don't see this name usually but the system sees it and so what I do here is I have it Generate a terminal with the name drop down and all the other commands that are required to run a scratch pad or a drop down Terminal you know work up to the fact that it's actually named that so what do I tell it to do? So if you just start a window generally in i3 it's just gonna pop up in tile So I give it specific commands for what to do with this actual drop down terminal First I want it to float so it floats Then I want to resize it to that particular size. That's just I pretty much chose it randomly I could probably increase it or decrease it third I want it to actually be a scratch pad item So you just say move scratch pad and that's also gonna make it disappear And then I also like giving it like a wider border just because I want it to be a little more visible, right? So that's all I do all right for actually setting up the scratch pad So whenever I start by 3 it's gonna generate a terminal and it's gonna hide it It's gonna give it all those properties. It's gonna be floating etc. Etc. Now what you do is You what I do is just assign a shortcut to show that specific terminal so Usually you use the command just scratch pad show and that shows everything on the scratch pad, but I specifically use This thing here so instance drop down to say I only want that thing on the scratch pad that's named drop down right, so this command is gonna show it and This oh actually this part of it. It's not necessary, but I it's important to have I guess Since I want mine totally centered This command just make sure make sure that it's actually in the middle, right? So if you it will hypothetically if I didn't include this And I refreshed I 3 by 3 The terminal whenever you refresh I 3 all the floating terminals move away. It's actually a little annoying So that little line there actually just gets rid of that. Let me go back So that's pretty much all you have to do in terms of the lines you have to have You can set this to whatever binding you want again I have it set to mod you just because I wasn't using you for anything like And then you just have whatever settings you want the only one that are ones that are really necessary Well, the only one that's really necessary is the scratch pad one although usually you're gonna want to have a floating terminal just in case Now you can also have it run other specific commands if you want it to move Let's say you want it in the right corner or something like that You can use the move command or anything like that And everything works you can basically just choose any I3 command to run on this So there are a couple other things That I do So as I mentioned, I have the arithmetic terminal at mod a which pretty much I set up the same way Although I do like giving them specific Trace so I like having my math terminal I like to have the font a little bit bigger because when I have that thing pulled up I'm gonna be focused on that. I don't necessarily want it to be super small So you can set though you can usually set that those kind of settings in the actual command to start the terminal Right. So here I name it math and the font I wanted to have is mono of the size 24, right? And of course, this is just a normal I3 command I tell it to run R and Q is just for quiet So it doesn't print about a bunch of stuff like welcome to R So that's pretty much it again. All you need is these couple lines They're on on my configs on github and you can play around with this in the way you want again You can put these windows wherever you want You can have any number of them as long as you remember to name them a different thing and Map that name to a different command So you can play around with this a whole lot. There's a lot you can do but anyway, hope you learned something I'll see you guys next time