diff --git a/.clang-format b/.clang-format
index d43e884..28e3328 100644
--- a/.clang-format
+++ b/.clang-format
@@ -87,7 +87,7 @@
 IndentWrappedFunctionNames: true
 InsertNewlineAtEOF: true
 KeepEmptyLinesAtTheStartOfBlocks: false
-LambdaBodyIndentation: OuterScope
+LambdaBodyIndentation: Signature
 LineEnding: LF
 MacroBlockBegin: ''
 MacroBlockEnd:   ''
@@ -98,13 +98,14 @@
 ObjCSpaceBeforeProtocolList: true
 PackConstructorInitializers: BinPack
 PenaltyBreakAssignment: 25
-PenaltyBreakBeforeFirstCallParameter: 19
+PenaltyBreakBeforeFirstCallParameter: 50
 PenaltyBreakComment: 300
 PenaltyBreakFirstLessLess: 120
 PenaltyBreakString: 1000
+PenaltyBreakTemplateDeclaration: 10
 PenaltyExcessCharacter: 1000000
 PenaltyReturnTypeOnItsOwnLine: 60
-PenaltyIndentedWhitespace: 0
+PenaltyIndentedWhitespace: 1
 PointerAlignment: Left
 QualifierAlignment: Left
 ReferenceAlignment: Left
diff --git a/nvme_manager.cpp b/nvme_manager.cpp
index 26d7b30..7270e9f 100644
--- a/nvme_manager.cpp
+++ b/nvme_manager.cpp
@@ -265,9 +265,9 @@
         return nvmeData.present;
     }
 
-    auto res_int = smbus.SendSmbusRWCmdRAW(busID, NVME_SSD_SLAVE_ADDRESS,
-                                           &tx_data, sizeof(tx_data),
-                                           rsp_data_command_0, CODE_0_LENGTH);
+    auto res_int = smbus.SendSmbusRWCmdRAW(
+        busID, NVME_SSD_SLAVE_ADDRESS, &tx_data, sizeof(tx_data),
+        rsp_data_command_0, CODE_0_LENGTH);
 
     if (res_int < 0)
     {
@@ -318,8 +318,8 @@
         return nvmeData.present;
     }
 
-    nvmeData.vendor = intToHex(rsp_data_command_8[1]) + " " +
-                      intToHex(rsp_data_command_8[2]);
+    nvmeData.vendor =
+        intToHex(rsp_data_command_8[1]) + " " + intToHex(rsp_data_command_8[2]);
 
     for (auto iter = map_vendor.begin(); iter != map_vendor.end(); iter++)
     {
@@ -433,10 +433,10 @@
         static const std::vector<Json> empty{};
         std::vector<Json> readings = data.value("config", empty);
         std::vector<Json> thresholds = data.value("threshold", empty);
-        monitorIntervalSec = data.value("monitorIntervalSec",
-                                        MONITOR_INTERVAL_SECONDS);
-        maxSmbusErrorRetry = data.value("maxSmbusErrorRetry",
-                                        MAX_SMBUS_ERROR_RETRY);
+        monitorIntervalSec =
+            data.value("monitorIntervalSec", MONITOR_INTERVAL_SECONDS);
+        maxSmbusErrorRetry =
+            data.value("maxSmbusErrorRetry", MAX_SMBUS_ERROR_RETRY);
 
         if (!thresholds.empty())
         {
@@ -660,10 +660,10 @@
         NVMeData nvmeData;
 
         inventoryPath = NVME_INVENTORY_PATH + config.index;
-        devPresentPath = GPIO_BASE_PATH + std::to_string(config.presentPin) +
-                         "/value";
-        devPwrGoodPath = GPIO_BASE_PATH + std::to_string(config.pwrGoodPin) +
-                         "/value";
+        devPresentPath =
+            GPIO_BASE_PATH + std::to_string(config.presentPin) + "/value";
+        devPwrGoodPath =
+            GPIO_BASE_PATH + std::to_string(config.pwrGoodPin) + "/value";
 
         auto presentPinValStr = (config.presentPin)
                                     ? getGPIOValueOfNvme(devPresentPath)
diff --git a/smbus.hpp b/smbus.hpp
index c452ee7..a8ac62c 100644
--- a/smbus.hpp
+++ b/smbus.hpp
@@ -17,7 +17,7 @@
 class Smbus
 {
   public:
-    Smbus(){};
+    Smbus() {};
 
     int openI2cDev(int i2cbus, char* filename, size_t size, int quiet);
 
