diff --git a/control/triggers.cpp b/control/triggers.cpp
index 362f4b6..eb2580f 100644
--- a/control/triggers.cpp
+++ b/control/triggers.cpp
@@ -13,11 +13,12 @@
 
 Trigger timer(TimerConf&& tConf)
 {
-    return [tConf = std::move(tConf)](
-               control::Zone& zone, const std::string& name, const Group& group,
-               const std::vector<Action>& actions) {
+    return
+        [tConf = std::move(tConf)](control::Zone& zone, const std::string& name,
+                                   const Group& group,
+                                   const std::vector<Action>& actions) {
         zone.addTimer(name, group, actions, tConf);
-    };
+        };
 }
 
 Trigger signal(const std::string& match, SignalHandler&& handler)
@@ -74,9 +75,10 @@
         }
 
         // Run action functions for initial event state
-        std::for_each(
-            actions.begin(), actions.end(),
-            [&zone, &group](auto const& action) { action(zone, group); });
+        std::for_each(actions.begin(), actions.end(),
+                      [&zone, &group](auto const& action) {
+            action(zone, group);
+        });
     };
 }
 
