# Configuration In the KlipperScreen folder, a file _KlipperScreen.config_ allows for configuration of the screen. The configuration file is a json formatted file. There are three main options to configure. ``` { "preheat_options", "mainmenu", "printmenu" } ``` ## Preheat Options Under preheat options, you may specify pre-defined temperatures for easy warmup. Each material should be formatted as follows: ``` "Material": { "tool": 195, "bed": 40 } ``` Tool is the extruder temperature, bed is the heated bed temperature. An example configuration for PLA and abs would be like this: ``` "preheat_options": { "PLA": { "tool": 195, "bed": 40 }, "ABS":{ "tool": 220, "bed": 90 } } ``` ## Main menu This allows a custom configuration for the menu displayed while the printer is idle. You can use sub-menus to group different items and there are several panel options available. It is possible to have a gcode script run on a menu button press. Available panels: * bed_level: Manual bed level * extrude: Controls for extrusion * fan: Controls fan speed * finetune: Controls for fine-tuning print settings such as z-babystepping or extrustion rate * menu: Allows for a sub-menu * move: Controls the print head * network: Network information panel * preheat: Preheat bed/tools * system: System information panel * temperature: Controls temperature settings * zcalibrate: Calibrating a probe A menu item is configured as follows: ``` { "name": "Name displayed", "icon": "file name from icons folder", "panel": "panel from above options", # Optional parameters "items": [] # Items for a submenu "method": "printer.gcode.script" # Moonraker method for a request "params": {} # Parameters for the moonraker method } ``` A sample configuration of a main menu would be as follows: ``` "mainmenu": [ { "name": "Homing", "icon": "home", "panel": "menu", "items": [ { "name": "Home All", "icon": "home", "method": "printer.gcode.script", "params": {"script": "G28"} }, { "name": "Home X", "icon": "home-x", "method": "printer.gcode.script", "params": {"script": "G28 X"} }, { "name": "Home Y", "icon": "home-y", "method": "printer.gcode.script", "params": {"script": "G28 Y"} }, { "name": "Home Z", "icon": "home-z", "method": "printer.gcode.script", "params": {"script": "G28 Z"} } ] }, { "name": "Preheat", "icon": "heat-up", "panel": "preheat" }, { "name": "Actions" , "icon": "actions", "panel": "menu", "items": [ { "name": "Move", "icon": "move", "panel": "move" }, { "name": "Extrude", "icon": "filament", "panel": "extrude" }, { "name": "Fan", "icon": "fan", "panel": "fan" }, { "name": "Temperature", "icon": "heat-up", "panel": "temperature" }, { "name": "Disable Motors", "icon": "motor-off", "method": "printer.gcode.script", "params": {"script": "M18"}, } ] }, { "name": "Configuration", "icon": "control", "panel": "menu", "items": [ { "name": "Bed Level", "icon": "bed-level", "panel": "bed_level" }, { "name": "ZOffsets", "icon": "z-offset-increase", "panel": "zcalibrate" }, { "name": "Network", "icon": "network", "panel": "network" }, { "name": "System", "icon": "info", "panel": "system" } ] }, { "name": "Print", "icon": "print", "panel": "print" } ] ``` ## Print menu The print menu controls items that are available during a print job. Certain panels, such as movement or homing, are panels that shouldn't be displayed during a print as they could cause print errors. A default configuration is below: ``` "printmenu": [ { "name": "Temperature", "icon": "heat-up", "panel": "temperature" }, { "name": "Tuning", "icon": "fan", "panel": "finetune" }, { "name": "Network", "icon": "network", "panel": "network" }, { "name": "System", "icon": "info", "panel": "system" }, { "name": "Extrude", "icon": "filament", "panel": "extrude" } ] ```