Override LCD Menu Defaults

Whenever I add menu.cfg into printer config, it doesn’t override the klipper default LCD menu, it adds to it.
e.g. I don’t want to see the ‘Octoprint’ option in LCD menu, so I remove that section in menu.cfg in printer config, but it still shows up on the LCD. I have to remove it from klipper>klippy>extras>display>menu.cfg for it to disappear. Or I want to reorder the items in LCD menu, but I have to do it to klipper>…>display>menu.cfg instead of menu.cfg in printer config.

I tried just deleting klipper’s default menu.cfg but it leads to error, I also tried replacing it with a blank file, still errors. I have to replace the default menu.cfg in klipper>…>display>menu.cfg with my own for it to function the way I want. However, it keeps getting replaced every time I do a klipper update.

Is there a way for menu.cfg in printer config to override default klipper lcd menu.cfg rather than just adding to it?

You need to disable menus you don’t want to see in your printer.cfg (or in an included cfg file like custom_lcd.cfg for example). So to disable Octoprint you would add these lines:

[menu __main __octoprint]
type: disabled

Other parameters are listed here. If you want to change the order of items you would use the index option. So an example with Octoprint that would move it down the list would be:

[menu __main __octoprint]
index: 2

Disable is working for me but index does nothing.

### menu octoprint ###
[menu __main __octoprint]
type: list
name: OctoPrint
index: 3

and octoprint is still the first item. Even with menu __main __control as index: 1 octoprint is still the first item.

Same issue here, Klipper seems to ignore the index value of main menu items.