====== While Conditions Are Met Action ====== This _Action_ repeats a group of [[:Actions|Actions]] while the [[:Conditions|Conditions]] in the _While_ criteria are met. As soon as the _While_ Criteria is _not_ met, the _Action_ will exit the loop. It is one of several Actions that _loop_ through a set of other Actions until some criteria is met. **The _While_ Criteria can be any of these:** *Any of the following are true — at least one condition must be true. *All of the following are true — every condition must be true. *None of the following are true — no condition is true. *Not all of the following are true — at least one condition must be false. **The _Condition_ can be any from the [[:Conditions|Conditions]] collection.** See [[#Conditions|below for details]]. **When you insert this _Action_ it appears like this:**\\ {{:action:while-conditions-action-km-7.3.png?nolink|}} ===== How To Setup ===== - Select one _While Criteria_ from the _While_ popup list.\\ (default is _all of the following is true_). - Add one or more new conditions by clicking the green + button next to the //New Condition// to see a popup menu of [[:Conditions|Conditions]]. - Select one of these _Conditions_ and enter additional details as needed. - Insert one or more [[:Actions|Actions]] into the //No Action// area. ===== Exiting the While Loop ===== * The _Actions_ in the _While_ loop (set of actions) will start *if* all criteria and conditions are met when the _Action_ is executed in the Macro processing. * As soon as the _While_ Criteria is _not_ met, the _Action_ will exit the loop, and the next _Action_ (if any) in the Macro will be processed. * You can explicitly exit the loop by using the [[action:Break_From_Loop|Break From Loop]] _Action_. * For example, in the example _Action_ shown below, the _While_ loop will exit\\ **IF EITHER**\\ 1. Finder is NOT frontmost\\ **OR**\\ 2. The Keys ⌘⇧ are pressed\\ **THEN the loop will exit.** You can break out of the loop, retry this iteration, or skip to the next iteration with the [[actions:Redirect_Control_Flow|actions:Redirect Control Flow]] actions. ===== Example ===== {{:action:while.png?500|}} ===== Conditions ===== See the [[:Conditions|Conditions]] section for further details. ~~NOCACHE~~ After selecting a condition category you can make further choices. For example, if you choose the //Application Condition// you can choose a specific application to be running, or at the front, and so on. Add further conditions by clicking the green + button again. You can break out of the loop, retry this iteration, or skip to the next iteration with the [[actions:Redirect_Control_Flow|actions:Redirect Control Flow]] actions. ===== See Also ===== === Actions === * [[action:If Then Else|If Then Else]] action * [[action:Pause_Until|Pause Until]] action * [[action:For_Each|For Each]] action * [[action:Repeat|Repeat]] action * [[action:Until|Until]] action * [[action:Assert|Assert]] action * [[actions:Redirect_Control_Flow|Redirect Control Flow]] actions * [[:Actions|See all Actions]] === Conditions === * [[:Conditions|See all Conditions]] ==== Forum ==== - [[https://forum.keyboardmaestro.com/t/issue-pause-until-action-fails-with-no-windows/3022/7|ISSUE: PAUSE UNTIL Action Fails with No Windows]] - [[https://forum.keyboardmaestro.com/search?q=Until|Keyboard Maestro Forum topics about Until action]]