diff --git a/config/defaults.conf b/config/defaults.conf new file mode 100644 index 00000000..2206122f --- /dev/null +++ b/config/defaults.conf @@ -0,0 +1,27 @@ +# +# DO NOT EDIT THIS FILE USE KlipperScreen.conf +# + +[main] + +[preheat PLA] +bed = 40 +extruder = 195 + +[preheat ABS] +bed = 90 +extruder = 220 + +[preheat PETG] +bed = 80 +extruder = 240 + +[preheat FLEX] +bed = 0 +extruder = 210 + +[include config/main_menu.conf] +[include config/splash_menu.conf] +[include config/print_menu.conf] + +[include config/move_menu.conf] diff --git a/config/main_menu.conf b/config/main_menu.conf new file mode 100644 index 00000000..5beedf61 --- /dev/null +++ b/config/main_menu.conf @@ -0,0 +1,150 @@ +# +# DO NOT EDIT THIS FILE USE KlipperScreen.conf +# + +[menu __main] +name: {{ gettext('Main Menu') }} + +[menu __main move] +name: {{ gettext('Move') }} +icon: move +panel: move + +[menu __main temperature] +name: {{ gettext('Temperature') }} +icon: heat-up +panel: temperature +enable: {{ (printer.temperature_devices.count > 0) or (printer.extruders.count > 0)}} + +[menu __main extrude] +name: {{ gettext('Extrude') }} +icon: extrude +panel: extrude +enable: {{ printer.extruders.count > 0 }} + +[menu __main more] +name: {{ gettext('More') }} +icon: settings + +[menu __main print] +name: {{ gettext('Print') }} +icon: printer +panel: print + +[menu __main more bedlevel] +name: {{ gettext('Bed Level') }} +icon: bed-level +panel: bed_level +enable: {{ 'bed_screws' in printer.config_sections or 'screws_tilt_adjust' in printer.config_sections }} + +[menu __main more bedmesh] +name: {{ gettext('Bed Mesh') }} +icon: bed-mesh +panel: bed_mesh +enable: {{ 'bed_mesh' in printer.config_sections }} + +[menu __main more zoffset] +name: {{ gettext('Z Calibrate') }} +icon: z-farther +panel: zcalibrate + +[menu __main more limits] +name: {{ gettext('Limits') }} +icon: fine-tune +panel: limits + +[menu __main more retraction] +name: {{ gettext('Retraction') }} +icon: retract +panel: retraction +enable: {{ 'firmware_retraction' in printer.config_sections }} + +[menu __main more fan] +name: {{ gettext('Fan') }} +icon: fan +panel: fan +enable: {{ printer.fans.count > 0 }} + +[menu __main more led] +name: {{ gettext('Leds') }} +icon: light +panel: led +enable: {{ printer.leds.count > 0 }} + +[menu __main more macros] +name: {{ gettext('Macros') }} +icon: custom-script +panel: gcode_macros +enable: {{ printer.gcode_macros.count > 0 }} + +[menu __main more pins] +name: {{ gettext('Pins') }} +icon: hashtag +panel: pins +enable: {{ printer.output_pins.count > 0 }} + +[menu __main more power] +name: {{ gettext('Power') }} +icon: shutdown +panel: power +enable: {{ moonraker.power_devices.count > 0 }} + +[menu __main more camera] +name: {{ gettext('Camera') }} +icon: camera +panel: camera +enable: {{ moonraker.cameras.count > 0 }} + +[menu __main more console] +name: {{ gettext('Console') }} +icon: console +panel: console + +[menu __main more updater] +name: {{ gettext('Update') }} +icon: refresh +panel: updater + +[menu __main more input_shaper] +name: {{ gettext('Input Shaper') }} +icon: move +panel: input_shaper +enable: {{ 'input_shaper' in printer.config_sections }} + +[menu __main more save] +name: {{ gettext('Save Config') }} +icon: complete +method: printer.gcode.script +params: {"script":"SAVE_CONFIG"} +confirm: + {{ gettext('Save configuration?') }} + + {{ gettext('Klipper will reboot') }} + +[menu __main more settings] +name: KlipperScreen +icon: settings +panel: settings + +[menu __main more network] +name: {{ gettext('Network') }} +icon: network +panel: network + +[menu __main more notifications] +name: {{ gettext('Notifications') }} +icon: notifications +panel: notifications + +[menu __print notifications] +name: {{ gettext('Notifications') }} +icon: notifications +panel: notifications + +[menu __main more spoolman] +name: Spoolman +icon: spoolman +panel: spoolman +enable: {{ moonraker.spoolman }} + + diff --git a/config/move_menu.conf b/config/move_menu.conf new file mode 100644 index 00000000..e5342fbc --- /dev/null +++ b/config/move_menu.conf @@ -0,0 +1,47 @@ +# +# DO NOT EDIT THIS FILE USE KlipperScreen.conf +# + +[menu move homing homex] +name: {{ gettext('Home X') }} +icon: home-x +method: printer.gcode.script +params: {"script":"G28 X"} + +[menu move homing homey] +name: {{ gettext('Home Y') }} +icon: home-y +method: printer.gcode.script +params: {"script":"G28 Y"} + +[menu move homing homez] +name: {{ gettext('Home Z') }} +icon: home-z +method: printer.gcode.script +params: {"script":"G28 Z"} + +[menu move homing homeall] +name: {{ gettext('Home All') }} +icon: home +method: printer.gcode.script +params: {"script":"G28"} + +[menu move homing homexy] +name: {{ gettext('Home XY') }} +icon: home +method: printer.gcode.script +params: {"script":"G28 X Y"} + +[menu move homing quad_gantry_level] +name: {{ gettext('Quad Gantry Level') }} +icon: home-z +method: printer.gcode.script +params: {"script":"QUAD_GANTRY_LEVEL"} +enable: {{ 'quad_gantry_level' in printer.config_sections }} + +[menu move homing Z-Tilt] +name: {{ gettext('Z Tilt') }} +icon: z-tilt +method: printer.gcode.script +params: {"script":"Z_TILT_ADJUST"} +enable: {{ 'z_tilt' in printer.config_sections }} diff --git a/config/print_menu.conf b/config/print_menu.conf new file mode 100644 index 00000000..6ee446e2 --- /dev/null +++ b/config/print_menu.conf @@ -0,0 +1,87 @@ +# +# DO NOT EDIT THIS FILE USE KlipperScreen.conf +# + +[menu __print] +name: {{ gettext('Print Control') }} + +[menu __print temperature] +name: {{ gettext('Temperature') }} +icon: heat-up +panel: temperature +enable: {{ (printer.temperature_devices.count > 0) or (printer.extruders.count > 0)}} + +[menu __print fan] +name: {{ gettext('Fan') }} +icon: fan +panel: fan +enable: {{ printer.fans.count > 0 }} + +[menu __print move] +name: {{ gettext('Move') }} +icon: move +panel: move +enable: {{ printer.pause_resume.is_paused }} + +[menu __print extrude] +name: {{ gettext('Extrude') }} +icon: extrude +panel: extrude +enable: {{ printer.extruders.count > 0 }} + +[menu __print power] +name: {{ gettext('Power') }} +icon: shutdown +panel: power +enable: {{ moonraker.power_devices.count > 0 }} + +[menu __print led] +name: {{ gettext('Leds') }} +icon: light +panel: led +enable: {{ printer.leds.count > 0 }} + +[menu __print macros] +name: {{ gettext('Macros') }} +icon: custom-script +panel: gcode_macros +enable: {{ printer.gcode_macros.count > 0 }} + + +[menu __print camera] +name: {{ gettext('Camera') }} +icon: camera +panel: camera +enable: {{ moonraker.cameras.count > 0 }} + +[menu __print console] +name: {{ gettext('Console') }} +icon: console +panel: console + +[menu __print limits] +name: {{ gettext('Limits') }} +icon: fine-tune +panel: limits + +[menu __print network] +name: {{ gettext('Network') }} +icon: network +panel: network + +[menu __print retraction] +name: {{ gettext('Retraction') }} +icon: retract +panel: retraction +enable: {{ 'firmware_retraction' in printer.config_sections }} + +[menu __print settings] +name: KlipperScreen +icon: settings +panel: settings + +[menu __print spoolman] +name: Spoolman +icon: spoolman +panel: spoolman +enable: {{ moonraker.spoolman }} diff --git a/config/splash_menu.conf b/config/splash_menu.conf new file mode 100644 index 00000000..3756beff --- /dev/null +++ b/config/splash_menu.conf @@ -0,0 +1,28 @@ +# +# DO NOT EDIT THIS FILE USE KlipperScreen.conf +# + +[menu __splashscreen] +name: {{ gettext('Menu') }} + +[menu __splashscreen power] +name: {{ gettext('Power') }} +icon: shutdown +panel: power +enable: {{ moonraker.power_devices.count > 0 }} + +[menu __splashscreen network] +name: {{ gettext('Network') }} +icon: network +panel: network + +[menu __splashscreen updater] +name: {{ gettext('Update') }} +icon: refresh +panel: updater +enable: {{ moonraker_connected }} + +[menu __splashscreen settings] +name: KlipperScreen +icon: settings +panel: settings diff --git a/docs/Configuration.md b/docs/Configuration.md index e60a0175..5eab0fd5 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -241,7 +241,7 @@ Default Preheat options will be discarded if a custom preheat is found. If include files are defined then, they will be merged first. The default config is included here: (do not edit use as reference) -_${KlipperScreen_Directory}/ks_includes/default.conf_ +_${KlipperScreen_Directory}/config/defaults.conf_ *Do not* copy the entire default.conf file, just configure the settings needed. diff --git a/ks_includes/config.py b/ks_includes/config.py index 8e142f82..8d6e451f 100644 --- a/ks_includes/config.py +++ b/ks_includes/config.py @@ -40,7 +40,7 @@ class KlipperScreenConfig: def __init__(self, configfile, screen=None): self.lang_list = None self.errors = [] - self.default_config_path = os.path.join(klipperscreendir, "ks_includes", "defaults.conf") + self.default_config_path = os.path.join(klipperscreendir, "config", "defaults.conf") self.config = configparser.ConfigParser() self.config_path = self.get_config_file_location(configfile) logging.debug(f"Config path location: {self.config_path}") @@ -50,6 +50,9 @@ class KlipperScreenConfig: try: self.config.read(self.default_config_path) + includes = [i[8:] for i in self.config.sections() if i.startswith("include ")] + for include in includes: + self._include_config("/".join(self.config_path.split("/")[:-1]), include) # In case a user altered defaults.conf self.validate_config(self.config) if self.config_path != self.default_config_path: @@ -367,7 +370,7 @@ class KlipperScreenConfig: def exclude_from_config(self, config): exclude_list = ['preheat'] - if not self.defined_config.getboolean('main', "use_default_menu", fallback=True): + if self.defined_config and not self.defined_config.getboolean('main', "use_default_menu", fallback=True): logging.info("Using custom menu, removing default menu entries.") exclude_list.extend(('menu __main', 'menu __print', 'menu __splashscreen')) for i in exclude_list: diff --git a/ks_includes/defaults.conf b/ks_includes/defaults.conf deleted file mode 100644 index de9968bc..00000000 --- a/ks_includes/defaults.conf +++ /dev/null @@ -1,315 +0,0 @@ -[main] - -[preheat PLA] -bed = 40 -extruder = 195 - -[preheat ABS] -bed = 90 -extruder = 220 - -[preheat PETG] -bed = 80 -extruder = 240 - -[preheat FLEX] -bed = 0 -extruder = 210 - -[menu __main] -name: {{ gettext('Main Menu') }} - -[menu __main move] -name: {{ gettext('Move') }} -icon: move -panel: move - -[menu move homing homeall] -name: {{ gettext('Home All') }} -icon: home -method: printer.gcode.script -params: {"script":"G28"} - -[menu move homing homex] -name: {{ gettext('Home X') }} -icon: home-x -method: printer.gcode.script -params: {"script":"G28 X"} - -[menu move homing homey] -name: {{ gettext('Home Y') }} -icon: home-y -method: printer.gcode.script -params: {"script":"G28 Y"} - -[menu move homing homez] -name: {{ gettext('Home Z') }} -icon: home-z -method: printer.gcode.script -params: {"script":"G28 Z"} - -[menu move homing homexy] -name: {{ gettext('Home XY') }} -icon: home -method: printer.gcode.script -params: {"script":"G28 X Y"} - -[menu move homing quad_gantry_level] -name: {{ gettext('Quad Gantry Level') }} -icon: home-z -method: printer.gcode.script -params: {"script":"QUAD_GANTRY_LEVEL"} -enable: {{ 'quad_gantry_level' in printer.config_sections }} - -[menu move homing Z-Tilt] -name: {{ gettext('Z Tilt') }} -icon: z-tilt -method: printer.gcode.script -params: {"script":"Z_TILT_ADJUST"} -enable: {{ 'z_tilt' in printer.config_sections }} - -[menu __main temperature] -name: {{ gettext('Temperature') }} -icon: heat-up -panel: temperature -enable: {{ (printer.temperature_devices.count > 0) or (printer.extruders.count > 0)}} - -[menu __main extrude] -name: {{ gettext('Extrude') }} -icon: extrude -panel: extrude -enable: {{ printer.extruders.count > 0 }} - -[menu __main more] -name: {{ gettext('More') }} -icon: settings - -[menu __main print] -name: {{ gettext('Print') }} -icon: printer -panel: print - -[menu __main more bedlevel] -name: {{ gettext('Bed Level') }} -icon: bed-level -panel: bed_level -enable: {{ 'bed_screws' in printer.config_sections or 'screws_tilt_adjust' in printer.config_sections }} - -[menu __main more bedmesh] -name: {{ gettext('Bed Mesh') }} -icon: bed-mesh -panel: bed_mesh -enable: {{ 'bed_mesh' in printer.config_sections }} - -[menu __main more zoffset] -name: {{ gettext('Z Calibrate') }} -icon: z-farther -panel: zcalibrate - -[menu __main more limits] -name: {{ gettext('Limits') }} -icon: fine-tune -panel: limits - -[menu __main more retraction] -name: {{ gettext('Retraction') }} -icon: retract -panel: retraction -enable: {{ 'firmware_retraction' in printer.config_sections }} - -[menu __main more fan] -name: {{ gettext('Fan') }} -icon: fan -panel: fan -enable: {{ printer.fans.count > 0 }} - -[menu __main more led] -name: {{ gettext('Leds') }} -icon: light -panel: led -enable: {{ printer.leds.count > 0 }} - -[menu __main more macros] -name: {{ gettext('Macros') }} -icon: custom-script -panel: gcode_macros -enable: {{ printer.gcode_macros.count > 0 }} - -[menu __main more pins] -name: {{ gettext('Pins') }} -icon: hashtag -panel: pins -enable: {{ printer.output_pins.count > 0 }} - -[menu __main more power] -name: {{ gettext('Power') }} -icon: shutdown -panel: power -enable: {{ moonraker.power_devices.count > 0 }} - -[menu __main more camera] -name: {{ gettext('Camera') }} -icon: camera -panel: camera -enable: {{ moonraker.cameras.count > 0 }} - -[menu __main more console] -name: {{ gettext('Console') }} -icon: console -panel: console - -[menu __main more updater] -name: {{ gettext('Update') }} -icon: refresh -panel: updater - -[menu __main more input_shaper] -name: {{ gettext('Input Shaper') }} -icon: move -panel: input_shaper -enable: {{ 'input_shaper' in printer.config_sections }} - -[menu __main more save] -name: {{ gettext('Save Config') }} -icon: complete -method: printer.gcode.script -params: {"script":"SAVE_CONFIG"} -confirm: - {{ gettext('Save configuration?') }} - - {{ gettext('Klipper will reboot') }} - -[menu __main more settings] -name: KlipperScreen -icon: settings -panel: settings - -[menu __main more network] -name: {{ gettext('Network') }} -icon: network -panel: network - -[menu __main more notifications] -name: {{ gettext('Notifications') }} -icon: notifications -panel: notifications - -[menu __print notifications] -name: {{ gettext('Notifications') }} -icon: notifications -panel: notifications - -[menu __print] -name: {{ gettext('Print Control') }} - -[menu __print temperature] -name: {{ gettext('Temperature') }} -icon: heat-up -panel: temperature -enable: {{ (printer.temperature_devices.count > 0) or (printer.extruders.count > 0)}} - -[menu __print fan] -name: {{ gettext('Fan') }} -icon: fan -panel: fan -enable: {{ printer.fans.count > 0 }} - -[menu __print move] -name: {{ gettext('Move') }} -icon: move -panel: move -enable: {{ printer.pause_resume.is_paused }} - -[menu __print extrude] -name: {{ gettext('Extrude') }} -icon: extrude -panel: extrude -enable: {{ printer.extruders.count > 0 }} - -[menu __print power] -name: {{ gettext('Power') }} -icon: shutdown -panel: power -enable: {{ moonraker.power_devices.count > 0 }} - -[menu __print led] -name: {{ gettext('Leds') }} -icon: light -panel: led -enable: {{ printer.leds.count > 0 }} - -[menu __print macros] -name: {{ gettext('Macros') }} -icon: custom-script -panel: gcode_macros -enable: {{ printer.gcode_macros.count > 0 }} - - -[menu __print camera] -name: {{ gettext('Camera') }} -icon: camera -panel: camera -enable: {{ moonraker.cameras.count > 0 }} - -[menu __print console] -name: {{ gettext('Console') }} -icon: console -panel: console - -[menu __print limits] -name: {{ gettext('Limits') }} -icon: fine-tune -panel: limits - -[menu __print network] -name: {{ gettext('Network') }} -icon: network -panel: network - -[menu __print retraction] -name: {{ gettext('Retraction') }} -icon: retract -panel: retraction -enable: {{ 'firmware_retraction' in printer.config_sections }} - -[menu __print settings] -name: KlipperScreen -icon: settings -panel: settings - -[menu __splashscreen] -name: {{ gettext('Menu') }} - -[menu __splashscreen power] -name: {{ gettext('Power') }} -icon: shutdown -panel: power -enable: {{ moonraker.power_devices.count > 0 }} - -[menu __splashscreen network] -name: {{ gettext('Network') }} -icon: network -panel: network - -[menu __splashscreen updater] -name: {{ gettext('Update') }} -icon: refresh -panel: updater -enable: {{ moonraker_connected }} - -[menu __splashscreen settings] -name: KlipperScreen -icon: settings -panel: settings - -[menu __main more spoolman] -name: Spoolman -icon: spoolman -panel: spoolman -enable: {{ moonraker.spoolman }} - -[menu __print spoolman] -name: Spoolman -icon: spoolman -panel: spoolman -enable: {{ moonraker.spoolman }}