My custom symbols over-written/lost


@adamwolf does the MAC installer overwrite user config files like the lbrary tables? (That could explain missing custom libs) It does not for linux and windows.

is it to be expected that the place where the libs are placed can be written by the user? (Under linux and windows one needs root or admin access to write to them.)

Asking because i will most likely never have access to a MAC so if i want to be able to help mac users i need to get this info from someone who does. (And more importantly from someone who knows how MAC works)


Hello again all…
Thank you again for all your help - it’s certainly assisted me and educated me of what to be aware.
I seem to be back up and running.
The bullet points are:
Booted from my previous install disk on a different machine (my new i9 Macbook wouldn’t boot from it)
Discovered that my root Library folder was hidden by OS. Could not access it without booting from that volume.
Once accessed, found my previous Application Support/Kicad folder and copied it
Over-wrote the 5.0.2 /Kicad folder with it.

The difficulty was not being able to access the Library folder of a boot drive without actually booting from it. Any attempt to get to it otherwise resulted in ‘doesn’t exist’ messages.

As for editing symbol libraries, I can quite happily do so to any symbol or footprint, and my symbols/footprints do indeed exist within the supplied libraries so that’s where I saved them. My assumption was that with a well structured library, if I created a new symbol/footprint for a component then why not keep it in an appropriate folder that already exists? Well, now I know - because it will be deleted with updates.

I really do feel that some method of library append is needed. Virtually no existing symbol/footprint would ever need to change so why over-write them? Wouldn’t it be better to append any new additions to the existing libraries when updating software versions?


Do you really think there are no errors found in the libs? Or do you think we do not fix them?


You are correct.

The Mac installer overwrites the applications, and the default help files, library files, modules files, 3d models, internationalization files, and templates. By default, after installation, these files are not editable by a normal user without becoming admin.

The installer does not overwrite the config files or preferences.

Thanks Rene and everyone else who helped out here!


I think the question is whether the directories are writable by a user so that copying or creating new components within KiCad UI can write files to the directory which belongs to the application or to the system, not to the user. What happens with default setup (OS/user/KiCad) when the user copies or creates components and tries to save them?


I have been using some kind of ECAD software or another for about 25+ years, all the way back to early DOS OrCAD. the problem that was there then, is still here now in KiCAD. Libraries are the KEY to productivity, but are always treated as an afterthought by developers, For many of us, a high level of critical IP is contained in special library items, but a good way to control, edit organize and safely store them, is usually invisible to the user.

It is always critical to know where every library IS LOCATED, and how it is NAMED, and blanket re-writes of the libraries should NEVER occur unless specifically wanted by the user. Despite the generally good features of KiCAD (and wonderful price), I am amazed at the cavalier way the libraries are handled, and how little critical information is made clear to users, both new and old. Recurring themes in all the forums are the difficulties that arise from library compatibility and disappearing items. Clearly some “quick-start” guidelines, install maps and library housekeeping docs are way over due for KiCAD.

I would happily write them, but to be honest, I can’t even identify where the various updates and libraries have been placed on my Ubuntu install, so I am not really able to help anyone untangle that mess either.

all the best,


I have the same worry, so at the start of using it, I develop a “personal” library isolate from KiCad supplied one. And using such a tool like KiCad Librarian to compare, bring, update my person lib. I don’t know if there is more better tool for automatic detect the change from KiCad supplier difference than mine, so I can review the change to either take or not…


You should not really worry where the system libs are placed as you are not allowed to write to them anyways (unless you are dump enough to run kicad as root or tamper with access rights to these folders.)
I would however really like to see a way to write protect libs without relying on the operating system.

Finding out where your own libs are is easy. Look into the library manager. It tells you everything you need to know.

The new library editors also make it a lot easier with the tree view and all the interfaces that brings.



I would be happy to look there (library manager) if only I knew where it was.
I have 5.02, and while I see both the footprint editor and symbol editor (icons), there’s no
“library manager”, and no such entry in TOOLS either. BTW, the on line documentation is dated 2015, and hasn’t proven too helpful for version 5.0 and later.

It would be hugely helpful to me if the program set up a user library space automatically, and allowed edited libraries to be stored there as part of the save process. it looks like from feedback forum comments, this would have saved a lot of people endless grief as well.

running in my Ubuntu workstation, I am the root user.

many thanks,


look in the preferences menus of the footprint or symbol editor


It does something similar in v5 for the symbol libs. If you create a new lib then you can store it anywhere on your disc and it will be added automatically to the lib table you choose. KiCad can not do much more handholding here as everyone has their preferences as to where to store their data.

Have a look here: Creating a new symbol library


If you like the suggestion from Rene_Poeschel then I suggest you get familiar with your CLI tools for handling the installed packages. You know dpkg with the option -L?

$  dpkg -L kicad-symbols

$ dpkg -L kicad-footprints

Btw, the documentation might be dated in 2015 but the Library Manager for the schematics and the footprints are still the same in principle.


Not really. The symbol side never had a lib manager. And the footprint library wizard is no more. It will be much worse when v5.1 is released as the user interface changes so much that basically every screenshot needs to be updated.


For clarity for everybody reading along, there is no thing actually called “library manger” per se, (in case you try and look for it) the actual sequence is:

  1. select footprint (or symbol) editor icon
  2. click and drop down preferences.
  3. select “manage footprint libraries” (or symbols).

info then appears as tables and tabs, but in Ubuntu at least, the directory tree is for all files on the computer, so I have to infer the table contains the libraries, but their real location on the system is still a bit of a mystery, as I am still working out the relationship between the fp-lib-table, sym-lib-table, the environment variables, and the physical library path. a chart or drawing would be incredibly valuable at this stage.

it seems like footprints might be in usr/share/kicad/modules
as directed by environment variable KISYSMOD, and symbols in /usr/share/kicad/library as directed by environment variable KICAD_SYMBOL_DIR. is this correct?



These are the places where the system installed libs are. Do not place your personal libs in these places.

See my FAQ linked above for more detailed information about managing personal libs.


I have written an in-depth document about these, especially the environment variables, but it’s not light reading and has no pictures.


By the way you do not need to use environment variables for your personal lib. The reason we use them for the official lib is because this allows us to share the same file for every platform.

Simply add your personal libs using the browse button of the lib manager (if you want to add multiple libs at once) Or use the add library button in the symbol editor (not the new library button but the add library button)
The later does not yet exist for the footprint editor but it will come with version 5.1



Am guessing one way to figure out where you are writing your custom symbol is to find (like so, $ find ./ -name “*.lib” | xargs ls -Fdltr ) both immediately before and immediately after you save your symbol/footprint, from your home directory as user. This is a time-ordered (oldest first, newest last) list, so you should be able to quickly zero in on what file(s) changed in the last minute or two.

Do the same for “*.pretty” files, where kicad saves footprints.

Afterwards, then reading eelik’s document might make more sense. Thanks @eelik for writing this document. Just an idea. Haven’t tried it yet, but I will when it comes time to edit footprints/symbols.


The only thing I feel it will scare away the new KiCad user with overloaded of environments that potentiality mess their work flow up, or overly look complicated if developer not carefully considering how to consolidating all of this environments dependencies smoothly. My experience with environments is that it is very hard to managing them smoothly.
In other word, If we tide coupling with environment variables, it would turn into exactly architecture issue with tide coupling with database!


This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.