diff --git a/ks_includes/printer.py b/ks_includes/printer.py
index 280872e8..143a11fc 100644
--- a/ks_includes/printer.py
+++ b/ks_includes/printer.py
@@ -153,7 +153,14 @@ class Printer:
return []
def get_config_section(self, section):
- return self.config[section] if section in self.config else False
+ return next(
+ (
+ self.config[key]
+ for key in self.config.keys()
+ if key.find(section) > -1
+ ),
+ False,
+ )
def get_fans(self):
fans = []
diff --git a/panels/gcode_macros.py b/panels/gcode_macros.py
index d497ddb7..f8f39bf9 100644
--- a/panels/gcode_macros.py
+++ b/panels/gcode_macros.py
@@ -83,7 +83,12 @@ class MacroPanel(ScreenPanel):
"params": {},
}
pattern = r'params\.(?P..*)\|default\((?P..*)\).*'
- gcode = self._printer.get_config_section(f"gcode_macro {macro}")["gcode"].split("\n")
+ gcode = self._printer.get_config_section(macro)
+ if gcode and "gcode" in gcode:
+ gcode = gcode["gcode"].split("\n")
+ else:
+ logging.debug(f"Couldn't load {macro}\n{gcode}")
+ return
i = 0
for line in gcode:
if line.startswith("{") and "params." in line: