KiCon 2024 in Europe is coming in September!
Get your tickets now to join the largest KiCad conference ever.

Development Highlight: New Settings System

As a preview of a feature available in the nighty builds, a large change was made to how KiCad stores and loads settings that not only fixes a few headaches with the old system but lays the groundwork for more customization in KiCad such as color themes. This was thanks to the work of Jon Evans in MR#68

New Settings Save Location and Wizard

Settings are now stored on a versioned basis on all platforms.

For example, settings on Windows used to be stored only in %APPDATA%\kicad and all versions of KiCad thus far wanted to write to the exact same versions. This resulted in headaches when upgrading KiCad versions as older config files sometimes had bad settings for the newer version.

With this change, settings are now stored in %APPDATA%\kicad\<version>\

Additonally, there is now a upgrade wizard that will open if you are opening a version of KiCad for the first time.

Screenshot of configure settings wizard

Settings File Format Change

Almost all settings are now stored as JSON formatted files instead of the wxWidgets based ini file format. This aids greatly in making complex setting objects more developer friendly to implement than before and opens the path for third party tools to read the settings more easily if so desired.

Old format example


New format example

  "appearance": {
    "color_theme": "user",
    "left_frame_width": 200
  "find_replace": {
    "find_history": [],
    "find_string": "",
    "flags": 1,
    "replace_history": [],
    "replace_string": ""
  "graphics": {
    "canvas_type": 2
  "lib_tree": {
    "column_width": 360
  "meta": {
    "filename": "kicad",
    "version": 0
  "printing": {
    "layers": [],
    "monochrome": true,
    "scale": 1.0,
    "title_block": false
  "system": {
    "file_history": [],
    "first_run_shown": false,
    "max_undo_items": 0,
    "units": 1
  "window": {
    "cursor": {
      "always_show_cursor": true,
      "fullscreen_cursor": false
    "grid": {
      "axes_enabled": false,
      "last_size": 0,
      "line_width": 1.0,
      "min_spacing": 10.0,
      "show": true,
      "style": 0
    "maximized": true,
    "mru_path": "",
    "perspective": "layout2|name=MainToolbar;caption=;state=139644;dir=1;layer=6;row=0;pos=0;prop=100000;bestw=291;besth=39;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=ProjectTree;caption=;state=508;dir=4;layer=3;row=0;pos=0;prop=100000;bestw=200;besth=-1;minw=200;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=Launcher;caption=;state=139644;dir=1;layer=1;row=0;pos=0;prop=100000;bestw=496;besth=61;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=MsgPanel;caption=;state=131452;dir=5;layer=0;row=0;pos=0;prop=100000;bestw=101;besth=30;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|dock_size(1,6,0)=39|dock_size(4,3,0)=200|dock_size(1,1,0)=61|dock_size(5,0,0)=101|",
    "pos_x": -8,
    "pos_y": -8,
    "size_x": 1936,
    "size_y": 1066
Note Both this feature and nightly builds are in development, please only use them for testing and experimentation

See Also

Development Highlight: New schematic and symbol library file formats are now the default

Since KiCad 4.0, work has been progressing to overhaul all the various project file formats that among many benefits, make them far more human friendly, easier to parse and allow easier addition of new features.

Development Highlight: Altium Pcb Importer

As a preview of a feature coming in the next major release, the ability to import Altium PcbDoc files is now available in the latest nightly builds. This was thanks to the work of Thomas Pointhuber in MR#60 The board import option can be found under the File > Import > Non-Kicad Board File option and changing the file type filter After which in the import file dialog you must change the file filter