moggieuk / KlipperScreen-Happy-Hare-Edition

Customized KlipperScreen for ERCF - Happy Hare
GNU Affero General Public License v3.0
105 stars 18 forks source link

[BUG] Invalid config file Section headers have extra information after brackets possible newline issue #29

Open mawoka-myblock opened 3 weeks ago

mawoka-myblock commented 3 weeks ago

What happened?

I installed this repo (happy_hare/install_ks.sh -g 8 -c /home/mawoka/.config/KlipperScreen) and started KlipperScreen afterwards getting the following error:

20240901 14:31:46,966 [screen.py:show_error_modal] - Showing error modal: Invalid config file Section headers have extra information after brackets possible newline issue:

enable: {{ (printer.mmu.tool != 0 or (printer.mmu.tool == 0 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[0] != 0 and printer.mmu.action == "Idle" }}

What did you expect to happen instead?

Not applicable; expected KlipperScreen to start

How to reproduce this bug?

Difficult one; get the repos, install the Happy Hare edition, don't use the standard systemd management, don't use standard directories

Additional information:

No response

Log output

Logs ``` 20240901 14:31:46,810 [functions.py:log_start] - --------------------KlipperScreen Log Start-------------------- 20240901 14:31:46,810 [functions.py:log_start] - KlipperScreen Version: v0.4.3-55-7d75d39c-dirty 20240901 14:31:46,810 [functions.py:log_start] - Python version: 3.12 20240901 14:31:46,832 [config.py:get_config_file_location] - Passed config (-c): . 20240901 14:31:46,832 [config.py:__init__] - Config path location: /home/mawoka/.config/KlipperScreen/KlipperScreen.conf 20240901 14:31:46,833 [config.py:_include_config] - Parsing files: ['/var/home/mawoka/KlipperScreen/config/main_menu.conf'] 20240901 14:31:46,835 [config.py:_include_config] - Parsing files: ['/var/home/mawoka/KlipperScreen/config/splash_menu.conf'] 20240901 14:31:46,836 [config.py:_include_config] - Parsing files: ['/var/home/mawoka/KlipperScreen/config/print_menu.conf'] 20240901 14:31:46,837 [config.py:_include_config] - Parsing files: ['/var/home/mawoka/KlipperScreen/config/move_menu.conf'] 20240901 14:31:46,838 [config.py:_include_config] - Parsing files: ['/home/mawoka/.config/KlipperScreen/mmu_klipperscreen.conf'] 20240901 14:31:46,841 [config.py:log_config] - ===== Config File ===== [menu __main,__print mmu] name = {{ gettext('MMU') }} icon = mmu_carrot panel = mmu_main enable = {{ printer.mmu is defined and not klipperscreen.side_mmu_shortcut }} [menu __main,__print mmu ttg] name = {{ gettext('Manage TTG...') }} icon = mmu_ttg_map panel = mmu_toolmap [menu __main,__print mmu filaments] name = {{ gettext('Filaments...') }} icon = mmu_filaments panel = mmu_filaments [menu __main,__print mmu spoolman] name = {{ gettext('Spoolman...') }} icon = spoolman panel = mmu_spoolman enable = {{ moonraker.spoolman }} show_disabled = True [menu __main,__print mmu preload_gates] name = {{ gettext('Preload Gate...') }} icon = mmu_reset enable = {{ printer.idle_timeout.state != "Printing" }} show_disabled = True refresh_on = printer.idle_timeout.state [menu __main,__print mmu preload_gates PG0] name = {{ gettext('Preload Gate #0') }} icon = mmu_reset method = printer.gcode.script params = { "script":"MMU_PRELOAD GATE=0" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu preload_gates PG1] name = {{ gettext('Preload Gate #1') }} icon = mmu_reset method = printer.gcode.script params = { "script":"MMU_PRELOAD GATE=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu preload_gates PG2] name = {{ gettext('Preload Gate #2') }} icon = mmu_reset method = printer.gcode.script params = { "script":"MMU_PRELOAD GATE=2" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu preload_gates PG3] name = {{ gettext('Preload Gate #3') }} icon = mmu_reset method = printer.gcode.script params = { "script":"MMU_PRELOAD GATE=3" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu preload_gates PG4] name = {{ gettext('Preload Gate #4') }} icon = mmu_reset method = printer.gcode.script params = { "script":"MMU_PRELOAD GATE=4" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu preload_gates PG5] name = {{ gettext('Preload Gate #5') }} icon = mmu_reset method = printer.gcode.script params = { "script":"MMU_PRELOAD GATE=5" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu preload_gates PG6] name = {{ gettext('Preload Gate #6') }} icon = mmu_reset method = printer.gcode.script params = { "script":"MMU_PRELOAD GATE=6" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu preload_gates PG7] name = {{ gettext('Preload Gate #7') }} icon = mmu_reset method = printer.gcode.script params = { "script":"MMU_PRELOAD GATE=7" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu check_gates] name = {{ gettext('Check Gate...') }} icon = mmu_checkgates enable = {{ printer.idle_timeout.state != "Printing" }} show_disabled = True refresh_on = printer.idle_timeout.state [menu __main,__print mmu check_gates CG0] name = {{ gettext('Check Gate #0') }} icon = mmu_checkgate0 method = printer.gcode.script params = { "script":"MMU_CHECK_GATE GATE=0 QUIET=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu check_gates CG1] name = {{ gettext('Check Gate #1') }} icon = mmu_checkgate1 method = printer.gcode.script params = { "script":"MMU_CHECK_GATE GATE=1 QUIET=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu check_gates CG2] name = {{ gettext('Check Gate #2') }} icon = mmu_checkgate2 method = printer.gcode.script params = { "script":"MMU_CHECK_GATE GATE=2 QUIET=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu check_gates CG3] name = {{ gettext('Check Gate #3') }} icon = mmu_checkgate3 method = printer.gcode.script params = { "script":"MMU_CHECK_GATE GATE=3 QUIET=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu check_gates CG4] name = {{ gettext('Check Gate #4') }} icon = mmu_checkgate4 method = printer.gcode.script params = { "script":"MMU_CHECK_GATE GATE=4 QUIET=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu check_gates CG5] name = {{ gettext('Check Gate #5') }} icon = mmu_checkgate5 method = printer.gcode.script params = { "script":"MMU_CHECK_GATE GATE=5 QUIET=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu check_gates CG6] name = {{ gettext('Check Gate #6') }} icon = mmu_checkgate6 method = printer.gcode.script params = { "script":"MMU_CHECK_GATE GATE=6 QUIET=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu check_gates CG7] name = {{ gettext('Check Gate #7') }} icon = mmu_checkgate7 method = printer.gcode.script params = { "script":"MMU_CHECK_GATE GATE=7 QUIET=1" } enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu tools] name = {{ gettext('Load Tool...') }} icon = extruder enable = {{ printer.idle_timeout.state != "Printing" }} show_disabled = True refresh_on = printer.idle_timeout.state [menu __main,__print mmu tools T0] name = {{ gettext('T0') }} icon = mmu_t0 method = printer.gcode.script params = { "script":"MMU_CHANGE_TOOL TOOL=0 QUIET=1" } enable = {{ (printer.mmu.tool != 0 or (printer.mmu.tool == 0 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[0] != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.tool, printer.mmu.gate_status, printer.mmu.filament, printer.mmu.action [menu __main,__print mmu tools T1] name = {{ gettext('T1') }} icon = mmu_t1 method = printer.gcode.script params = { "script":"MMU_CHANGE_TOOL TOOL=1 QUIET=1" } enable = {{ (printer.mmu.tool != 1 or (printer.mmu.tool == 1 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[1] != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.tool, printer.mmu.gate_status, printer.mmu.filament, printer.mmu.action [menu __main,__print mmu tools T2] name = {{ gettext('T2') }} icon = mmu_t2 method = printer.gcode.script params = { "script":"MMU_CHANGE_TOOL TOOL=2 QUIET=1" } enable = {{ (printer.mmu.tool != 2 or (printer.mmu.tool == 2 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[2] != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.tool, printer.mmu.gate_status, printer.mmu.filament, printer.mmu.action [menu __main,__print mmu tools T3] name = {{ gettext('T3') }} icon = mmu_t3 method = printer.gcode.script params = { "script":"MMU_CHANGE_TOOL TOOL=3 QUIET=1" } enable = {{ (printer.mmu.tool != 3 or (printer.mmu.tool == 3 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[3] != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.tool, printer.mmu.gate_status, printer.mmu.filament, printer.mmu.action [menu __main,__print mmu tools T4] name = {{ gettext('T4') }} icon = mmu_t4 method = printer.gcode.script params = { "script":"MMU_CHANGE_TOOL TOOL=4 QUIET=1" } enable = {{ (printer.mmu.tool != 4 or (printer.mmu.tool == 4 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[4] != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.tool, printer.mmu.gate_status, printer.mmu.filament, printer.mmu.action [menu __main,__print mmu tools T5] name = {{ gettext('T5') }} icon = mmu_t5 method = printer.gcode.script params = { "script":"MMU_CHANGE_TOOL TOOL=5 QUIET=1" } enable = {{ (printer.mmu.tool != 5 or (printer.mmu.tool == 5 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[5] != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.tool, printer.mmu.gate_status, printer.mmu.filament, printer.mmu.action [menu __main,__print mmu tools T6] name = {{ gettext('T6') }} icon = mmu_t6 method = printer.gcode.script params = { "script":"MMU_CHANGE_TOOL TOOL=6 QUIET=1" } enable = {{ (printer.mmu.tool != 6 or (printer.mmu.tool == 6 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[6] != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.tool, printer.mmu.gate_status, printer.mmu.filament, printer.mmu.action [menu __main,__print mmu tools T7] name = {{ gettext('T7') }} icon = mmu_t7 method = printer.gcode.script params = { "script":"MMU_CHANGE_TOOL TOOL=7 QUIET=1" } enable = {{ (printer.mmu.tool != 7 or (printer.mmu.tool == 7 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[7] != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.tool, printer.mmu.gate_status, printer.mmu.filament, printer.mmu.action [menu __main,__print mmu select_gates] name = {{ gettext('Select Gate...') }} icon = mmu_select_gate enable = {{ printer.idle_timeout.state != "Printing" }} show_disabled = True refresh_on = printer.idle_timeout.state [menu __main,__print mmu select_gates bypass}] name = {{ gettext('Select Bypass') }} icon = mmu_select_bypass method = printer.gcode.script params = {"script":"MMU_SELECT_BYPASS"} enable = {{ printer.mmu.gate != -2 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu select_gates G0] name = {{ gettext('Select Gate #0') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=0" } enable = {{ printer.mmu.gate != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu select_gates G1] name = {{ gettext('Select Gate #1') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=1" } enable = {{ printer.mmu.gate != 1 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu select_gates G2] name = {{ gettext('Select Gate #2') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=2" } enable = {{ printer.mmu.gate != 2 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu select_gates G3] name = {{ gettext('Select Gate #3') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=3" } enable = {{ printer.mmu.gate != 3 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu select_gates G4] name = {{ gettext('Select Gate #4') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=4" } enable = {{ printer.mmu.gate != 4 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu select_gates G5] name = {{ gettext('Select Gate #5') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=5" } enable = {{ printer.mmu.gate != 5 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu select_gates G6] name = {{ gettext('Select Gate #6') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=6" } enable = {{ printer.mmu.gate != 6 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu select_gates G7] name = {{ gettext('Select Gate #7') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=7" } enable = {{ printer.mmu.gate != 7 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main,__print mmu status] name = {{ gettext('Display Status') }} icon = info method = printer.gcode.script params = {"script":"MMU_STATUS"} enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu print] name = {{ gettext('Print Stats') }} icon = mmu_status method = printer.gcode.script params = {"script":"MMU_STATS"} enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu reset] name = {{ gettext('Reset Stats') }} icon = mmu_stats_reset method = printer.gcode.script confirm = Are you sure you want to reset MMU statistics? params = {"script":"MMU_STATS RESET=1"} enable = {{ printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.action [menu __main,__print mmu enable_endless_spool] name = {{ gettext('Enable E.Spool') }} icon = mmu_enable_endless_spool method = printer.gcode.script params = {"script":"MMU_ENDLESS_SPOOL ENABLE=1"} enable = {{ printer.mmu.endless_spool == 0 }} show_disabled = True refresh_on = printer.mmu.endless_spool [menu __main,__print mmu disable_endless_spool] name = {{ gettext('Disable E.Spool') }} icon = mmu_disable_endless_spool method = printer.gcode.script params = {"script":"MMU_ENDLESS_SPOOL ENABLE=0"} enable = {{ printer.mmu.endless_spool == 1 }} show_disabled = True refresh_on = printer.mmu.endless_spool [menu __main,__print mmu led_disable] name = {{ gettext('Disable LED') }} icon = mmu_led_disable method = printer.gcode.script params = {"script":"MMU_LED ENABLE=0 QUIET=1"} enable = {{ printer.mmu.enabled == 1 and not printer.mmu.print_state == "standby" }} show_disabled = True refresh_on = printer.mmu.enabled, printer.mmu.print_state [menu __main,__print mmu led_gate_status] name = {{ gettext('LED Gate Status') }} icon = mmu_led_gate_status method = printer.gcode.script params = {"script":"MMU_LED ENABLE=1 EXIT_EFFECT=gate_status QUIET=1"} enable = {{ printer.mmu.enabled == 1 and not printer.mmu.print_state == "standby" }} show_disabled = True refresh_on = printer.mmu.enabled, printer.mmu.print_state [menu __main,__print mmu led_filament_color] name = {{ gettext('LED Fil. Color') }} icon = mmu_led_filament_color method = printer.gcode.script params = {"script":"MMU_LED ENABLE=1 EXIT_EFFECT=filament_color QUIET=1"} enable = {{ printer.mmu.enabled == 1 and not printer.mmu.print_state == "standby" }} show_disabled = True refresh_on = printer.mmu.enabled, printer.mmu.print_state [menu __main,__print mmu spare1] name = {{ gettext('user def') }} icon = mmu_carrot enable = False show_disabled = False [menu __main more mmu_calib] name = {{ gettext('MMU Setup') }} icon = mmu_gear enable = {{ printer.mmu is defined }} [menu __main more mmu_calib home] name = {{ gettext('Home') }} icon = home method = printer.gcode.script params = {"script":"MMU_HOME"} [menu __main more mmu_calib select_gates] name = {{ gettext('Select Gate...') }} icon = mmu_select_gate [menu __main more mmu_calib select_gates G0] name = {{ gettext('Select Gate #0') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=0" } enable = {{ printer.mmu.gate != 0 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main more mmu_calib select_gates G1] name = {{ gettext('Select Gate #1') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=1" } enable = {{ printer.mmu.gate != 1 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main more mmu_calib select_gates G2] name = {{ gettext('Select Gate #2') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=2" } enable = {{ printer.mmu.gate != 2 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main more mmu_calib select_gates G3] name = {{ gettext('Select Gate #3') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=3" } enable = {{ printer.mmu.gate != 3 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main more mmu_calib select_gates G4] name = {{ gettext('Select Gate #4') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=4" } enable = {{ printer.mmu.gate != 4 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main more mmu_calib select_gates G5] name = {{ gettext('Select Gate #5') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=5" } enable = {{ printer.mmu.gate != 5 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main more mmu_calib select_gates G6] name = {{ gettext('Select Gate #6') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=6" } enable = {{ printer.mmu.gate != 6 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main more mmu_calib select_gates G7] name = {{ gettext('Select Gate #7') }} icon = mmu_select_gate method = printer.gcode.script params = { "script":"MMU_SELECT GATE=7" } enable = {{ printer.mmu.gate != 7 and printer.mmu.action == "Idle" }} show_disabled = True refresh_on = printer.mmu.gate, printer.mmu.action [menu __main more mmu_calib grip] name = {{ gettext('Test Grip') }} icon = mmu_grip method = printer.gcode.script params = {"script":"MMU_TEST_GRIP"} [menu __main more mmu_calib formtip] name = {{ gettext('Form Tip') }} icon = mmu_formtip method = printer.gcode.script params = {"script":"MMU_FORM_TIP"} [menu __main more mmu_calib servoup] name = {{ gettext('Servo UP') }} icon = arrow-up method = printer.gcode.script params = {"script":"MMU_SERVO POS=up"} enable = {{ printer.mmu.servo != "Up" }} show_disabled = True refresh_on = printer.mmu.servo [menu __main more mmu_calib servomove] name = {{ gettext('Servo MOVE') }} icon = arrow-right method = printer.gcode.script params = {"script":"MMU_SERVO POS=move"} enable = {{ printer.mmu.servo != "Move" }} show_disabled = True refresh_on = printer.mmu.servo [menu __main more mmu_calib servodown] name = {{ gettext('Servo DOWN') }} icon = arrow-down method = printer.gcode.script params = {"script":"MMU_SERVO POS=down"} enable = {{ printer.mmu.servo != "Down" }} show_disabled = True refresh_on = printer.mmu.servo [menu __main more mmu_calib encoder] name = {{ gettext('Cal. Encoder') }} icon = mmu_encodercal method = printer.gcode.script params = {"script":"MMU_CALIBRATE_ENCODER"} [menu __main more mmu_calib all] name = {{ gettext('Calibrate ALL') }} icon = extruder method = printer.gcode.script confirm = This will calibrate all gates. Are you sure? params = {"script":"MMU_CALIBRATE_GATES ALL=1"} [menu __main more mmu_calib gate] name = {{ gettext('Cal. Gate...') }} icon = mmu_calibrate [menu __main more mmu_calib gate CG0] name = {{ gettext('Calibrate #0') }} icon = mmu_calibrate method = printer.gcode.script params = { "script":"MMU_CALIBRATE_GATES GATE=0" } [menu __main more mmu_calib gate CG1] name = {{ gettext('Calibrate #1') }} icon = mmu_calibrate method = printer.gcode.script params = { "script":"MMU_CALIBRATE_GATES GATE=1" } [menu __main more mmu_calib gate CG2] name = {{ gettext('Calibrate #2') }} icon = mmu_calibrate method = printer.gcode.script params = { "script":"MMU_CALIBRATE_GATES GATE=2" } [menu __main more mmu_calib gate CG3] name = {{ gettext('Calibrate #3') }} icon = mmu_calibrate method = printer.gcode.script params = { "script":"MMU_CALIBRATE_GATES GATE=3" } [menu __main more mmu_calib gate CG4] name = {{ gettext('Calibrate #4') }} icon = mmu_calibrate method = printer.gcode.script params = { "script":"MMU_CALIBRATE_GATES GATE=4" } [menu __main more mmu_calib gate CG5] name = {{ gettext('Calibrate #5') }} icon = mmu_calibrate method = printer.gcode.script params = { "script":"MMU_CALIBRATE_GATES GATE=5" } [menu __main more mmu_calib gate CG6] name = {{ gettext('Calibrate #6') }} icon = mmu_calibrate method = printer.gcode.script params = { "script":"MMU_CALIBRATE_GATES GATE=6" } [menu __main more mmu_calib gate CG7] name = {{ gettext('Calibrate #7') }} icon = mmu_calibrate method = printer.gcode.script params = { "script":"MMU_CALIBRATE_GATES GATE=7" } ======================= 20240901 14:31:46,841 [config.py:validate_config] - enable: {{ (printer.mmu.tool != 0 or (printer.mmu.tool == 0 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[0] != 0 and printer.mmu.action == "Idle" }} 20240901 14:31:46,841 [config.py:log_config] - ===== Config File ===== [include mmu_klipperscreen.conf] [printer Neptune4] moonraker_host = 192.168.111.192 moonraker_port = 7125 [printer Genius] moonraker_host = agenius.local moonraker_port = 7125 ======================= 20240901 14:31:46,842 [config.py:__init__] - ====== Saved Def ====== [main] print_estimate_method = slicer screen_blanking = off screen_blanking_printing = off confirm_estop = True use_dpms = False print_sort_dir = date_desc print_view = list [spoolman] hide_archived = False ======================= 20240901 14:31:46,842 [config.py:__init__] - Configured printers: [ { "Neptune4": { "moonraker_host": "192.168.111.192", "moonraker_port": "7125", "moonraker_api_key": "" } }, { "Genius": { "moonraker_host": "agenius.local", "moonraker_port": "7125", "moonraker_api_key": "" } } ] 20240901 14:31:46,871 [config.py:create_translations] - Selected lang: system_lang OS lang: en_US 20240901 14:31:46,871 [config.py:install_language] - Using lang en 20240901 14:31:46,883 [screen.py:__init__] - Monitors: 2 using number: 0 20240901 14:31:46,883 [screen.py:__init__] - Wayland: True Display name: wayland-0 20240901 14:31:46,883 [screen.py:__init__] - Running inside a desktop environment is not recommended 20240901 14:31:46,883 [screen.py:__init__] - Setting windowed mode 20240901 14:31:46,884 [screen.py:__init__] - Screen resolution: 480x320 20240901 14:31:46,927 [KlippyGtk.py:__init__] - Font size: 11.9 (medium) 20240901 14:31:46,966 [screen.py:show_error_modal] - Showing error modal: Invalid config file Section headers have extra information after brackets possible newline issue: enable: {{ (printer.mmu.tool != 0 or (printer.mmu.tool == 0 and printer.mmu.filament != "Loaded")) and printer.mmu.gate_status[0] != 0 and printer.mmu.action == "Idle" }} 20240901 14:31:46,992 [KlippyGtk.py:Dialog] - Showing dialog Error (width=480, height=320) 20240901 14:31:46,997 [screen.py:update_size] - Size changed: 1680x1050 ```
moggieuk commented 2 weeks ago

This isn't running the HH edition. I'm sure of that because that is a bug in the upstream KS that I fixed. Try this one more time:

cd ~/KlipperScreen
git pull
./happy_hare/install_ks.sh -g <num_gates>

Also make sure there are no errors and that you are pulling from my repo...

mawoka-myblock commented 2 weeks ago

I just did, still the same error