Another example, in Fluidd one can add variable_ignore_min_extrude_temp: True to the LOAD_FILAMENT, UNLOAD_FILAMENT, M701, and M702 macros to ignore the extruder temperature.
This is obviously a hack, so I would like to propose an alternative that could even be used across every section and not just the gcode_macro sections!
Option 1: single āmetaā attribute:
Allow for a single meta attribute, so users can pass whatever they want inside and it will be considered as pure text.
I certainly donāt see an issue with extending the config file to add useful features for the frontends.
For what it is worth though, Iād much prefer to understand a concrete āuse caseā for the support. The description above doesnāt give me a good feeling for the intended functionality this change would provide (at least initially).
Iām generally leery about adding new config items, for fear that it makes the config more complex. Iām also leery about adding āit can do anythingā config items as I fear that is a disservice to users that ultimately need to configure them to accomplish specific results.
Yes, a concrete description of a use case that variables are not usable for would be nice.
You describe the use of variables as āa hackā, but the first examples you provided donāt really fit that description. These are user-settable variables that influence the behaviour of Klipper macros, which is more or less the core functionality of variables. Calling them āmetaā variables and slightly modifying how theyāre accessed would not fundamentally change anything about them, just introduce confusion as to why there are now two different variable systems.
ignore_min_extrude_temp is maybe a little hackier because itās never used by a macro and is purely an annotation used by an external tool, but it still seems like a very reasonable thing to do.