Easy, Powerful Mac Automation Using Keyboard Maestro, Pt 2: Pause It | CK Barlow | Skillshare
Search

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Easy, Powerful Mac Automation Using Keyboard Maestro, Pt 2: Pause It

teacher avatar CK Barlow, Composer for Film/TV, Tech Instructor

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Welcome to the Class

      2:05

    • 2.

      Easy Breezy Class Project

      1:12

    • 3.

      The Simplest Pause of All: Pause

      10:22

    • 4.

      Nerdy for a Sec... But Don't Worry!

      8:09

    • 5.

      Smart Pauses: Pause Until

      8:14

    • 6.

      Smart Pauses: Press Button When Enabled

      3:41

    • 7.

      Smart-ish Pauses: Pause Until Change ¯\_(ツ)_/¯

      3:17

    • 8.

      Smart Pauses: Wait for Browser

      11:18

    • 9.

      You Did It!

      0:55

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

35

Students

2

Projects

About This Class

This class is the second in my series on Keyboard Maestro, the amazingly powerful and easy-to-use automation software for Mac. If you have not taken the first class (linked here), please complete it and then come on back!

Keyboard Maestro is fast – so fast that it often outpaces the apps you're trying to automate! The result? Your macro tries to press a button that's not there yet or resize a window that hasn't opened yet. This class gives you the tools to fix that problem: Pauses.

By the end of this class, you'll know how to:

  • identify when you need a pause in your macro and where to place it
  • identify exactly what to wait for, to make your automation as reliable as possible
  • use every type of pause Keyboard Maestro offers, ranging from simple timed pauses to sophisticated pauses that can watch for a variety of conditions
  • pick the best pause type for each situation by understanding why and when each one is useful.

Why You Should Take This Class: As you'll see with our demo macro, even fairly simple macros can require pauses. Pauses put you in control: With the right pauses in place, there's no wondering, no hoping, and no guessing. Your macro will run smoothly from action to action every time.

Why Learn From Me: I've created about 400 Keyboard Maestro macros to streamline my work as a composer and music industry professional. As an instructor, I have 25 years of corporate experience in high-tech training as well as 14 years of college teaching experience. Keyboard Maestro has been a game-changer for me, and I'm passionate about helping others – especially creative pros and non-programmers – benefit from this incredible tool. 

Automation is one of those things that people tend to shy away from because it seems too complicated and hard to learn. But with Keyboard Maestro, that's just not true. And I'm here to walk you through learning it, step by easy step.

Who This Class is For: anyone who has completed my quick-start class on Keyboard Maestro: Easy, Powerful Mac Automation for Creative Pros Using Keyboard Maestro. To get the most value from this class, please complete that one first.

Materials and Resources: For this class, you'll just need your Mac and Keyboard Maestro. There is a free trial of Keyboard Maestro, and you can purchase it for $36. It is the best $36 investment you can make for your productivity.

Let's get to pausing!

Meet Your Teacher

Teacher Profile Image

CK Barlow

Composer for Film/TV, Tech Instructor

Teacher

My classes here on Skillshare cover music technology and Mac automation for creatives.

As an instructor, I have 25 years of instructional writing and presenting experience in various high-tech sectors, and 15 years of experience teaching music technology at various Universities - currently at Peabody Institute in Baltimore.

As a composer, I've had music used in more than 2,300 TV episodes across more than 400 different series, and in films, commercials, video games, and theater productions. I currently split my time between creating music for TV, performing with electronics, and helping run a music label.

Ask me anything! I'm happy to help.

See full profile

Level: Intermediate

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

Transcripts

1. Welcome to the Class: If you're just getting started in Automation Using Keyboard Maestro, there's one thing that's almost sure to trip you up. Your macros run faster than the apps you're trying to automate with them. This means your macro is going to try to press buttons that aren't there yet or choose menu commands that hasn't loaded yet. In this class, we'll learn the single most effective solution. Pauses, ranging from simple timed pauses all the way to sophisticated condition-based pauses. These little guys can take your macros from. I hope it works too. I got this, Hey, I'm CK. And in the last few years I've created close to 400 automations that have saved me hundreds of hours of work and increased my earnings. As a composer and music industry professional. I'm passionate about showing other Creative Pros, how they can benefit to. This is the second class in my series on Keyboard Maestro. And it's intended for people who've already built a few of their own macros. If you haven't yet, please complete the first-class. You'll find links to it all over the place in this class. This class we'll build on the first by giving you an in-depth look at all of Keyboard Maestro is different Pause actions. By the end of this class, you'll know how to identify when and where your macro needs to Pause, Choose, and use the best type of pause for every situation. Identify exactly what to wait for, and use variables and calculations to make even your simple macros smarter. We'll start our lessons with the simplest possible pause type will build a demo macro that incorporates that pause. Then we'll move on to progressively more sophisticated pauses and will swap those in so you can see exactly how they work and how they make are macro, smarter and more reliable? For your class project, you'll just make a macro that uses any of the types of pause that we covered. Alright, that's enough for me for now. Let's hurry up and Pause 2. Easy Breezy Class Project: Let's talk about your project for the class. I'm giving you a ton of freedom and the requirements are super simple. All I want you to do is build a macro that is actually helpful to you in your real life or work and include at least one kind of pause. That's it. Here's some ideas to get you started. You could make a macro that launches an application and then uses menu commands to perform specific actions. Using pauses to guarantee that the commands are available before your macro tries to access them. You could make a macro that opens a specific webpage and waits for it to load before moving on to the next step. Or if you're really curious about the Found Image condition, I would be happy to help you play around with that. Just get in touch and we'll figure out a cool project for you to do using the Found Image condition. It's a FUN one. And as always, if you have any trouble at all, whether that's completing the idea that you came up with or even coming up with an idea to start. Just get in touch. I'm happy to help you. And it's my job to help you succeed 3. The Simplest Pause of All: Pause: As we've talked about in the class intro, sometimes your automations will run faster than the software you're trying to automate. And that causes problems. But we can fix this by adding pauses at strategic places in our automations or macros as they're called In Keyboard Maestro. The simplest one is just called Pause. And it does exactly what you would think. It pauses for a specific length of time. Let's take a look. I'll use Command Control a and just type Pause. And there it is, plus. You see it comes in with a default value of 1.5 s, but we can change that to anything from hundreds of a second all the way up to hours. Let's see an example of how this would help us. Let's create a macro that pastes some text into a window for us. It'll give us several opportunities to use some Pauses. Here's Logic Pro. This is the software that I spend the most time in, in my work as a composer. But for any of you who are designers, say, if you work for multiple clients, I bet you have the same dilemma that I do. Every one of your clients might have different delivery specifications. That's certainly the case for me. Would I do is Keyboard Maestro to deal with this is pretty great. There's a notepad in Logic Pro that lets you take notes about the project, as well as about each track in the project. Every one of these can have its own notes. So what I do is have Keyboard Maestro Paste in the specifications for the publisher that I specify. In that way, I have them here. I don't have to go look for them. I don't have to guess and I know for sure that they're accurate. So let's make a comment that spells out what we need to do. Comment. Alright, here's what we need to do. Because we're doing this from Keyboard Maestro and I want to demonstrate it for you as opposed to running it from logic. The first thing I have to do is actually switch over to logic. So activate logic. We need to open the notepad. We need to click It's Edit button. We need to type our text. And then we need to click the Done button. So that'll look like this. We need to open the notepad and it has a keyboard shortcut as well as a Menu command. And I'll think I use the menu command for stability sake, we need to click this Edit button to enable editing. We need to enter our text and then we need to click the Done button. Okay, That's it. So let's make this work. So first off, we're going to activate logic. So I'll choose that here and it's running, so it's in this menu, that's great. Then we need to open the notepad and we're gonna do that from the menu. So I'll just type menu. Great. And I mentioned this tip and the quick-start class, but it's a good one. So I'll mention it again. Instead of having to choose logic and type in this information, I can get it exactly right by using this feature right over here, the menu, menu. And I simply go to Logic Pro. And Keyboard Maestro has laid out its entire menu structure for me. So I'll go to View and note pads. Now, I happen to know that logic has a little bit of a bug. You might call it as much of a Apple fan girls I am, I might have to call this a bug. It doesn't always show all of its menu commands to Keyboard Maestro. And depending if it's been, if the menu has been shown yet, it might come up with a different variation. So let's see what I mean. If I go to view. It actually says Show note pads, not just notepad. So I'm gonna go back to Keyboard Maestro. And sure enough, if I look here, view, now it says Show note pads, so it updates. So just be on the lookout for a little idiosyncrasies in a software that you use the most. And the second thing about this is this command is more likely to work if I first display the menu and then choose the menu commands. So here's my little workaround for that. I create the one that I need, the Select action that I need. I duplicate it. And in the first copy, I delete the specific Menu command. This has the effect of simply opening the menu quickly. And then that shows Keyboard Maestro the commands that are available. I know that's a little bit in-depth and fuzzy But you'll find this kind of behavior in apps. It's good to know how to deal with it. Alright, great. So now we've got the Notepad open. We need to click the Edit button. I'm going to shrink this and this and this to give us a little more screen real estate. And alright, so button. There we are. Press a button and it's called Edit. So I'll put that in there. Then we need to type our text. So insert text by typing. Here's publisher a wants WAV files at 16 bit by 48 K, just for example. And then the last thing I need to do is click the Done button. And here is where I'll show you another idiosyncrasy in logic. Check this out. If I go to the notepad, I click the Edit button and then it turns into the done button. If I hover over this, look what we see. Edit. So its name, the way it's programmed is still edit. So that's the name we need to use. And Keyboard Maestro, again, just word to the wise to be on the lookout for little mitts like this in the software that you use to. So we can just leave this as Press Button, edit. Okay? So if I choose all of these guys and right-click and select, try six actions, and let's see what happens. Boom. Oh, oh, oh, ouch. Oh, wow, whoa. Okay. It did pretty much all the wrong things. So the texts that it entered started issuing a bunch of Keyboard commands. Spectacular fail there, which is pretty funny. So we know now that we have some work to do, we know that it successfully activates Logic Pro. We know that it actually successfully chose this menu command. But it's clicking the Edit button where we get into trouble. So one of the more important things that you need to do as part of this process is identify where the problem started happening and that's how you knew where to put the Pause and we got this far. So let's say Command, Control a and Pause. It defaults to 1.5. I'm going to bump this up to three just to be safe. We press the edit button. And I'm going to put a pause here. And put a pause here. And that way it'll just slow down that last portion of the macro and let us see how everything is working. Maybe I'll reduce this one down to, to, reduce this one down to, okay. So again, click one and Shift-click the first one. And we will try nine actions. Here we go. Click the Edit button, type some text, and click the Done button. Perfect, just by adding these simple pauses. Now, in practice, you really want to make your pauses as short as will successfully run. And here's why. It even says this in the Keyboard Maestro documentation. If you make your Mac sit around and wait, you don't know what else is changing in other applications that might be running and so forth. And so the overall state of your Mac might be pretty different by the time you get to the end of that long pause. So the best practice is always gonna be to make these pauses shortage you can get away with as short as you know, is gonna be reliable. 3 s. Honestly, that's a decent sized project that I'm using for this example. But I think this one we could take down to easily a half a second. And the same way right here. And let's see if that'll work. I bet that it will. Yeah. Okay. Awesome. There we go. 4. Nerdy for a Sec... But Don't Worry!: Right now, we're going to take a tiny detour to show you that the simple Pause action we use in the last lesson is actually capable of being pretty smart. I'll show you what I mean. Here we are. So right here where we put a specific number, we could actually put a calculation or a variable. So instead of putting in three, I could actually put 1.5 plus 1.5 and Keyboard Maestro would be okay with that. And that's kinda silly example. But just trust me, when I say that it opens up all kinds of possibilities. Now that leads us to variables. Now you remember variables maybe from algebra in school, or maybe you've done your best to forget all about variables. And that's fine. I get it. But at their Simplest, variables are just nicknames for some important concepts or value that we need to keep track of. The great everyday example is the word home. I can tell you, I'm going home. And you know exactly what I mean without knowing my actual physical address, right? And every time I move houses home, the literal meaning of it changes because my address changes right? When still I can say I'm going home and you know what I mean? So it varies, its variable and it's dynamic. It can change. But I can still just use this nickname for it. And everybody is still knows what I mean. Great, right? So imagine you're a digital artist and you're creating a landscape. And you choose a particular green to be the color of the grass. And it's some crazy hex code like hashtag three, F, B17, E or something. Okay. And that's hard to remember. But if you just label it as grass green and that contains that hex code for you. From then on, you can just say grass green and it fills the non-information for you. And even later down the road, maybe you change your mind and you choose a slightly darker green. Just update grass green with the new hex code. And you're good to go. It ripples through every word that you used the term grass green, right? So that's what we mean when we say it's dynamic, it will update for you. So this combination of being meaningful and easy to remember and also being dynamically updating. Those two things can work together really powerfully for us. Let's go back to our macro example and see how we can incorporate this new information to make our macro a little bit smarter. So everywhere that we have a pause with a specific value in it, we could use a variable instead. To do that. First thing we need to do is define our variables so that Keyboard Maestro knows what we mean when we use that nickname. So we wanna do that right up at the top. I'll do a Command Control a to bring up our search by name. And we want a variable. And we're going to use set variable the calculation, rather than set variable that text so that Keyboard Maestro knows we're working with a number. I choose that and I'm gonna name it Pause length. So Easy enough, that's going to refer to the length of our pause. And I'll put a three here, okay? Now, once I've done that everywhere that we've got a pause, I can use this phrase, Pause length. Instead. Pause length, and Pause length and Pause length. Okay? Here's what's cool. Because this field also supports calculations. That means that we can get to know how the macro is working and we can shorten or lengthen this as needed. Maybe I determined that this one needs to be a lot longer. I can put times two, and now it's four instead of two in here. Maybe I want it to be shorter. I could put divided by two, and now it's one instead of two. Alright? So you can see how that works, how Pause length becomes this representation of the length that we started with. And then we can tinker with it as we go. Alright, to wrap up, I'm going to drop some best practice knowledge on you about using variables In Keyboard Maestro. It turns out there are several different kinds of variables available to us. For example, there's a password variable and that's particularly secure. But the two types that I use the most are local and global. Local only exists within the macro where you define it and use it. And then once you're done, it just vanishes in a magic proof of smoke never to be seen again. And that's great because it's not taking up computing resources, hanging onto some piece of information that we don't need anymore. Now, that also means we can't share it between macros. But the thing is we can use that to our advantage. A great example is the Pause length variable that we just set up. Different macros that we create are probably going to need different Pause lengths. But Pause link is such a perfect and meaningful and easy to remember name. Well, by making it local, that means we can reuse it in as many different macros as we like. But it won't conflict. It won't be four here and argue with another one where it's to. The other kind is global. And that means that it persists or keeps on existing between macros. This makes it perfect for static things like a URL that you go to often, or a path on your computer or a particular folder where you save or open files frequently. And it will persist even between restarts of your computer. Alright, so with that information, you know what we need to do, right? We've gotta go back to our example macro. Turn Pause length into a local variable. It says easy as putting the word local in the name. And I'll follow it by two underscores. Now, everywhere we use that variable, I need to update the name. It's here, and it's here, and it's here. And that's it. So now we'll use it in this macro, and then it'll vanish. And we can reuse the name again and again in as many macros as we want, with no conflicts. Cool? 5. Smart Pauses: Pause Until: Now we're going to start looking at what I call smart Pauses. These are pauses that are able to wait for a condition that you specify. And then they know it's time to move on to the next action. When I say condition, I mean things like, is this menu commands available or has this external drive been mountain yet? And Keyboard Maestro provides us a really long list of options. Let's take a look. I'll say new action. And I want to find Pause Until I'll double-click this and add it. Then when I click this green button, I get a list of all the options. So you can see, is an application running or not as a button available, is there something particular on the Clipboard? Is a Menu command available? Am I on a particular Wi-Fi network? All these different options. And they're incredibly powerful because they make your macro smarter and more reliable than a simple timed Pause. Now let's take a look at a couple to give you an idea of what's possible. First, let's look at application condition. It lets you specify which application, of course. So if I want to wait until the Finder is at the front of my screen, or say is not at the front of my screen. Is it running? Is it not running? Is it hidden? Is it not hidden? And so on. Okay. And that's not all that fascinating, I wouldn't say. But it is incredibly useful and powerful. I mean, this is kind of a bread and butter thing to be able to do is wait until a particular application is at the front or has finished launching completely. So this is a good one to know about. Now let's look at one that's a little bit more FUN. But also super useful. This one is Pause for a Found Image condition. So what this means is to wait until the screen contains this image and you load this image well by just pasting into it. So you can do a screen grab and paste into it, or drag an image into it just like you would any other image, well, in any other application. And in fact, if you hit the spacebar with a selected, it gives you a preview of the image using Apple's quick view. Quick look. Alright. And of course, it has, does not contain, contains uniquely, does not contain uniquely. So there's only one of them or there is more than one of them. Alright? So you're always gonna get the opposites available in all of these condition menus. So let's see what happens here. It says Pause Until I open the file called 65 staying, which is my 1965 Mustang, which is right there. I love it. And then once it sees that I've opened that image, it's going to display huge text saying it the image now. So let's give this a run. Shall we? I hit run. And you can see the Keyboard Maestro logo in the menu bar is now flashing to indicate it's waiting, it's waiting. So if I look for 65, staying and I find it and I open it, pop, I see the image now. Okay, So that's kind of a Faun example, but I'm sure you understand how any graphical element, anything like a user interface element on a webpage C, or in another piece of software. You can get to it this way. I would caution you though, that it can be finicky. I have several macros that work on Google Sheets. Google recently changed some things about its interface and that broke my macros Until I just made new screen grabs and brought them into my macros. And then everything was fine again, just something to know about a kind of save this one as a last resort of all these different conditions, there are three that I tend to use the most. And those are Pause Until a particular menu item is available. Pause Until a particular button is available, and Pause Until there's a specific window in front. I think the reason I end up using these three so much is that there are so fundamental a Menu being available, a button being available, a front window being in front, right? So that leads me to probably the most important thing to take away from this series of lessons Which is that your job to set this up correctly, involves figuring out what that definitive thing or things that have to be true in order for you to successfully move on to the next step in your macro. And I said thing or things because you'll notice you still have the green button. Meaning you can still add more and more. And you can say all of these need to be true. Any of them need to be true. None of them needs to be true. Falling in that same theme of giving you, I'm the opposites, both ends of the spectrum of these various different conditions. Let's use everything we've learned to modify or demonstration macro and make it a lot smarter than it is right now. So we have this pause for 0.3 s and this Pause per 4.3 s. I'm gonna go ahead and disable those guys. And instead, I'm going to put in Pause Until. So what do we need to wait for here? We remember that our macro made it as far as showing the notepad, but then we had to wait for that edit button to become available. That's the key right there. We have to wait for the Edit button. So it sounds like Pause Until button is available. So I go here, I say Pause Until it's already up. There we go. And I Choose button condition. And I just fill in the name of the button and it's as easy as that. Okay, so now it's gonna be smart enough to just hang out and chill until that button is clickable. Awesome. Alright, so we can just copy that and paste it right here. Okay, so now in both cases we're just waiting for that edit button. You'll remember that it's labeled done, but under the hood it's called Edit. So this should work. Now. Let's check it out. Perfect. Alright, so see, that's now immediately so much more reliable because it's not waiting for some arbitrary amount of time. It's waiting for the button it needs to be available and then clicking it. So ultimately it's probably gonna be faster and it's definitely going to be more reliable. It's not going to break. If I load some humongous project that moves more slowly. Alright, so that's it for Pause Until 6. Smart Pauses: Press Button When Enabled: This lesson is super short, but it covers a really useful bit of information. You'll remember that in our demo macro so far, we've been using the action called Press Button to press the edit and then the done buttons in Logic Pro to put our text into that notepad window. In before we try to press the button, we've been using a pause to wait for the button to become Enabled. As it turns out, the Press Button action actually has a smart pause feature built right into it. Wait for Enabled. We can just choose that in the gear menu of the action itself. Check it out. Alright, so here in our macro, we activate logic. We choose the note pads from the menu. In our very first version, we paused for a set amount of time. Then we replaced that with Pause Until condition and set it up to wait for the button labeled edit to become Enabled. We can disable this guy. And for our Press Button, we can go over to the gear icon and choose wait for Enabled button. Right now it has the X by it, which means it's not turned on. I'll click here. And now you'll see that it is turned on. And also that the yellow gear icon has gained a clock face. So that tells us that it's going to wait for Enabled. In addition, the title of the action has changed to add the phrase When Enabled. So it tells you really everything that you need to know. We don't need this. We don't need this. And just to be safe, I'm actually going to do the same setting on this guy down here to make sure there's no typing still going on or anything like that. So just one more note. Normally in a macro that requires me to switch to an application and then immediately try to choose something out of a Menu. I would put a Pause Until here. And I would set it up to watch the menu. And I would make it wait for this menu item to become Enabled. Now, because Logic Pro has this little issue where it doesn't reliably show its menu commands names to Keyboard Maestro. This probably will cause trouble rather than help us. So our better bet is to just leave it. If it's working, we're just gonna leave it. Alright, cool. So with all of that said, let's go ahead and run it and see what happens. Awesome. Okay, it's perfect. And it's as efficient probably as we're possibly going to make it. Because it waits just for this button to become Enabled clicks it does what it needs to do in the text field. And then again, waits for the button to become Enabled and then clicks it. It's about as efficient and reliable as we can possibly make it. That's great. Alright, let's check out the takeaways. 7. Smart-ish Pauses: Pause Until Change ¯\_(ツ)_/¯: We've got another short lesson in which we're gonna look at another Pause Until variant that I've never actually used in my close to 400 macros that I've created. I've never found a good use for it. I think that you'll see why. It's called Pause Until Change. Let's take a look. It gives us five different options. Pause Until the system Clipboard changes, Until the front application changes. The pressed keys, the modifiers meaning Shift, Command, etc. and Pause Until the mouse moves. So what do you notice about all five of these? And especially if you took my quick-start class, you probably can guess my problem with it. They're all super general. We don't know what the Clipboard should change from R2. We don't know which applications should or shouldn't be in front. We don't know which keys, which modifiers, or where the mouse should move or not move. So to me, I have a little trouble seeing myself using this. I tend to like my actions, including my pauses to be as specific as possible. My experience is that this makes them as reliable as possible because I'm being really deliberate about what I'm waiting for, which application, which menu commands, and so on. I'm looking for. And this is pretty much the opposite of that. That's super general. So where could you use it? Maybe in really simple macros that involve one or two apps, such that at any given moment you're pretty confident about which one is in front. Or macros that should pause if you're away from your computer. And what I'm thinking of with that example is this Pause Until the mouse moves. So you've got a macro running, and then it comes to an idle state. And you don't want it to move forward while you're away. But then even if somebody else comes up and moves your mouse than it will go ahead. So again, I kinda don't get it. I don't see where you would really use this one. What I come back to is that the developers of this product are really smart and this action wouldn't exist unless it adds some usefulness. I just personally haven't found it. So I like specifics. That's me. And I think that's the best path toward having reliable macros. But your mileage may vary. So check it out, see if you can find a use for it. I would love to see some comments in the discussion area. If you have ideas about how to use this guy. Alright, That's it. 8. Smart Pauses: Wait for Browser: Unless you have amazing Internet speed where you work. And a lot of us don't. Interacting with webpages involves a lot of clicking and then waiting, and then clicking and then waiting, right? Obviously, if you're going to automate this interaction, your automation is going to need to wait too. But fortunately for us, keyboard Maestro has an action made exactly for this purpose. It's called Wait for it. Wait for Browser to Finish Loading. Let's take a look. If I use my handy command control a and save for Browser. Wait for Browser to Finish Loading. There it is. Okay. And what you'll notice is we can choose safari or we can choose Google Chrome or just front Browser. So depending on what you like to use, you can set it up that way. As you know, a lot of webpages never really stopped Loading. There are always new ads coming and so forth. Keyboard Maestro deals with this by letting us set the amount of time that it should wait after the first time that the page finishes loading. So it's easy to gloss over this. If you look at the way that this is worded, it says for at least 3 s, and it would be easy to interpret that to mean it's just going to wait 3 s. But what really happens is that Keyboard Maestro watches for the first time that the webpage stabilizes and seems to really be done loading, and then it starts this countdown. So always remember that when you're setting it up. Okay, cool. So let's see the Wait for front browser or to load action inaction. We're going to open a Google budget spreadsheet. And then we're going to select a particular range of cells in that spreadsheet. That'll definitely give us some opportunities to need to cool our jets and wait for the page to Finish Loading. Okay, Let's check it out. So what we want to do is let's put in a comment and document it. What we need to do. We are going to open the spreadsheet. We actually are going to need to activate Safari just to make it the front window. Um, I think I'd like for it to be fullscreen. And so the spreadsheets open, It's full screen. Next I want to issue the command Control G, which is a shortcut in Google Sheets to go to a particular range of cells. So we need to do a Control G, that will be a keystroke action. Once we have that little window open, we need to enter the range of cells where we need to go. So that's gonna be insert text and it's gonna be A1 to H 24, let's say. Okay. And then we need to hit Return to confirm that choice, and then it should be gone. Alright, so let's get started. We want to go to that URL. Now, here's the phone part. This field wants a URL. But you remember earlier in this class we talked about variables a little bit. And remember what I said about global variables. They're great for any thing that doesn't change very often. But maybe you need to call on a lot. And you don't want to remember the exact path or the URL. This is a fantastic example of where that would be useful. So I have set up a global variable called my budget spreadsheet that holds the URL for this Google Sheet. Knee, right? But if I type my budget spreadsheet and then try to run this, it's going to complain. Why? Because my budget spreadsheet is not a URL. So it's looking at that literally and choking. Alright, so here's the deal. The little T over here tells us that this is a TextField, but also a token field. And think of tokens as well, you know, like little token, it's a stand-in for a coin, a real coin of currency, right? By the same token. Tokens can stand in for variables in text fields. So it's like a reference to a reference, a variable for a variable, It sounds confusing, but it just A way to tell Keyboard Maestro hate, don't interpret this as straight text interpreted as a variable. Okay? So it has some special syntax that we need to use, but it's easy. Percentage sign variable. Hey, this is gonna be a variable. If I now start typing my budget spreadsheet, it'll recognize that and fill it in. At which point all I have to do is hit tab. And we're good to go. Cool. Okay, next, we're going to activate Safari. I just choose that here. It's in my recents. And I want to make it full screen. So I want to resize that window. And I'll choose, Let's see the front window in Safari to make sure, because I like to be specific. And I know that there's a full screen option right here, super handy. Alright, so just so you can see that, I'll scroll down a little bit. So it just makes it the same size as the screen we're currently viewing. Really straightforward. And I go into this in more detail in the quick-start class. Check that out if you haven't already. Great, alright, So after we go full screen, we need to issue this keystroke of control G, which is the shortcut in Google Sheets for Goto range. It's knowing those Shortcuts is a big help when you're trying to automate, because you can just do that right. Now, the last thing that we need is to insert that text to specify the cell range that we want to select. So here we go, Type, insert text by typing. That's what we want. And I'm gonna put in a one to each 24. And then I can include as part of what gets typed, this return. You can see this character here, and you can see that right there. So the return is part of what's going to get typed. And so that's going to go. Now, I can pretty much guarantee you that this is going to fail because it's just not going to have enough time to wait for the Browser to Finish Loading that page before it attempts to do this guy and this guy. But let's give it a shot. So I click on one, I Shift-click on the last one, right-click anywhere in the selection. And then I can choose try five actions. Let's see. It's going to fail, fail, fail. It makes it there. And we can tell because the icons no longer flashing that macro has been done for awhile. So it didn't even get a chance to type that text in anywhere. It was probably typing away while this page was still loading. So that's not going to work. Alright? So the most important thing for us to do when we're figuring this out is say, which kind of pause doing need, and where does it need to go? We already know what kind of pause we need. We need to wait for the Browser to Finish Loading. But where do we put it to help us the most, this worked and this works, and this part also worked. So really, it's right here that we need to wait. So I'll select this action so that it gets inserted in-between. And I'll say wait for Safari to Finish Loading. It comes in with a default value of 3 s. I'll bump it up to four. That should help us out. And then I think I'm actually going to add a second one. I'm going to option drag to here. And if for no other reason than to let us see what that looks like when it issues the Control G and brings up the inter range dialog box before it types and confirms it. Alright, so once again, I'll select the last one. Shift-click the first one. Now they're all selected so I can right-click and choose tries seven actions. Here we go. Notice I'm being careful not to touch the mouse because I don't want to interfere. It's interacting directly with the screen. So I don't want to touch the mouse and mess it up. It's weird. There's our range and the upper right corner. There we go. It worked. Okay, So here we are. How we've selected A1 through H.264. And that's it. It worked. So that gives you a great example of how to use Wait for Browser to Finish Loading. I use this every Sunday when I fill out a time sheet for one of my freelance clients, it opens the time sheet on the left. It opens my time tracking software on the right. And in the time sheet, it actually logs me in and fills in nice things like Thank you in the comments field. And then places the cursor in the first time entry field for me. And I'm just sitting there watching. So this kind of thing is so great to set up for yourself and just save yourself some hassle and some time. Check it out 9. You Did It!: Thank you so much for spending your time with me. I hope the class has been helpful. Remember just about any macro you create Using Keyboard Maestro is going to need some kind of pause in your macro will instantly be smarter and more reliable. Secondly, I really want to encourage you to please create an upload a project. I will look at it and I will help you. If you run into any stumbling blocks. It's really easy. If you need a refresher. Just look at the project video. Finally, I'd really love it if you left a review for this class. I read and carefully consider every review. Again, I really appreciate your time and I hope you've enjoyed the class. I'll see you in the next time.