Ah, so it is basically like saying, “Okay, here’s a good place for you to save your files, but if your way of organizing doesn’t work like that, go on and save 'em somewhere else.”
Project manager > Preferences > Configure Paths, as those variables apply to all the editors.
I’m finding a different behavior in setting personal symbol library directories than from setting personal footprint libraries.
I set both KICAD_USER_SYMBOL_DIR and KICAD_USER_FOOTPRINT_DIR in the paths, as explained above. Then I picked Preferences->Manage Footprint Library and set it up. I added 2 personal libraries, Tango-Connectors, and Tango-ESP32. (Well, not Tango - used my real user name. With situations like this, I prepend my name or “My” to my own settings or personal libs so I can keep it straight in my head what’s my custom stuff and what’s default program stuff.) It was no trouble adding those folders to my footprint libraries.
Then I tried to do the same for the symbol directories and add a “Tango-Connectors”). I’m on a Mac, so I was adding the folder /User/Tango/Documents/KiCad/Libraries/Symbol/Tango-Connectors
, just as I added the folder /User/Tango/Documents/KiCad/Libraries/Footprint/Tango-Connectors
. I have a reading/perception issue, so simple spelling mistakes elude me, so I’ve triple-checked the paths and copied the paths from KiCad and pasted them into my terminal so I could use ls <dir>
to be sure I am referring to the proper directory. But I can’t set the empty folder as a symbol library the way I could set the empty directory as a footprint library.
I’ve even removed the variable and used the file selector in the Symbol Library Manager just to be sure I’m pointing to the right path. In the Footprint Library Manager, I can use the selector and click on the folder I want to add as a library and click “Open” on the file requestor and it takes that path and uses it in the Manager.
BUT - when I’m using the Symbol Library Manager, and I click on the folder I want to use for Connectors, then click “Open,” instead of taking that directory and putting it into the field in the manager, it opens that empty directory in the file requestor. So I cannot pick an empty folder for a library using the file requestor for Symbols, but I can for Footprints.
Also, when I have verified I have typed in the correct path to the new empty folder for a personal symbol library for connectors, then try to close the Symbol Library Manager, it reports it can’t open that folder as a library. (I’ve copied the text from the error message and pasted the path in terminal, like the other times, and have verified the directory is there.)
So, for some reason, I can set an empty directory as a new personal Footprint library, but I can’t do the same for a Symbol library.
That’s because Synbol Libraries are contained in files, not directories. If you look at the screenshot in the Schematic Editor documentation, you see that they all end in .kicad_sym.
Here’s a partial screenshot of my symbol library table. The Nixie library is in a file called nixie.kicad_sym in the directory $(KICAD_USER_SYMBOL_DIR}.
So you’ll have to create a symbol library before registering it and verifying that the path variable works.
Okay, so I’m doing it backwards. Make the library THEN register it.
So this is completely different from Footprint libraries, where you can create a directory, register it as a directory, then add .mod files to it as footprints? Or am I doing that wrong, too?
I think you can create footprint libraries from KiCad, no need to create them ahead of time in the OS. You may want to plan the library names though. It’s the top directory that you have to create and make writable (if necessary).
I got it working now. I just pulled up the two Library Managers and thought using the ‘+’ button on them was all I needed to do to add a library, especially since the first one I did was the footprint library. Seems kind of odd that the Symbol Library Manager cannot add a new library - that’s where it seems intuitive to go, rather than the Symbol Editor.
Actually the library managers are for managing entries in the library tables, not creating libraries. But yes, the UI could do with some refinement.
As has been seen many times, library management in KiCad is difficult. The Manage X Libraries dialogs manage only so called library tables (which are unknown thing in all maybe every other software outside KiCad and therefore a difficult concept) and not the libraries themselves.
The library Editors try to fulfill double duty as editors for library items and as actual library managers, i.e. you can create new libraries with them, copy and paste library items between libraries, etc.
IMO this is conceptually problematic, mixing different domains. The problem is seen in the File menu. Can you tell without trying what Save, Save As and Revert do? Do they work on library items (edited footprints/symbols) or on the library list? Or both at the same time? How about the difference between symbol libraries and footprint libraries where saving means different things?
Perhaps a revamp will occur along with effort to separate the system libraries from the user libraries in the library table managers to ease version updates.
I think the setup for library management is confusing. It seems, from reading the last 3 comments (from @retiredfeline and @eelik) that this has been a problem for a while and that library management requires an understanding, to a point, of what kind of files libraries use and how KiCad manages the libraries.
From my point of view, what’s confusing (and I think @eelik touches on this with is comment about mixing domains - or maybe I’m misreading that?), is that “Library Management” implies that tool is for handling full libraries, not individual entries. (Although it might allow creating or deleting components.) The scope of a Library Manager is a large scope, encompassing one or more libraries. But the symbol editor, one would think, would have a smaller scope: Managing symbols (or footprints) in a library. It’s counterintuitive to go to the tool with a single-item scope to perform functions that involve working with full libraries or multiple libraries their scope. Correct me if I’m wrong, but I think where I’m inclined to use the word “scope,” @eelik is using the word “domain.”
It’s like, if you have to clear cut part of a forest for a firebreak, having to go get a hacksaw, which you’d normally use for trimming smaller branches off trees, to do the clearcutting. It doesn’t make sense, intuitively, to go for the tool to use on single items to handle actions done on full libraries.
I think the two could be combined. Since the footprint editor involves the lists of libraries, having the ability to quickly move between the the two different scopes (or domains) would make the entire process easier. Add the ability to switch from management mode (handling libraries) to edit mode (handling a single symbol - or footprint) would make it much easier to move back and forth between both tasks.
For your next question on your learning journey chances are you should start a new topic instead of appending to this one as the discussion is starting to drift from the original query of why your user footprint disappeared and it will be harder for a future reader to find the relevant points.
I will.
And, on this, there were a number of points where I was debating whether to start a new topic or not, since things just kind of slid from one topic to the next.
As I wrote in my FAQ:
Personal Libraries need a home, so create folders with the OS somewhere with read/write access.
To create a Symbol Library; open the Symbol Editor, File > New Library, give it a name and place it in the OS folder created for Symbol Libraries. Job done.
Th create Footprint Library; open the Footprint Library, File > New Library, give it a name and place it in the OS folder created for Footprint Libraries. Job done.
This is all that is needed to create Personal Libraries.
As I wrote in my FAQ;
Library Managers are for manipulating the table of existing, Kicad formatted, Personal Libraries.
Yes, the tooltips say as much. But the word moving is ambigious. People might think it means moving the filesystem objects around. In fact the up and down buttons move the entries in the table up and down. All that the library manager does is manipulate the table. It doesn’t manipluate the libraries.
(made some edits in my above post to improve clarity. JMK)
Use this path:
/User/Tango/Documents/KiCad/Libraries/Symbol/ and then add libraries to this path.
“Symbol” is your folder. All your created Personal symbol libraries are placed in this one folder. All your created or imported symbols are placed into the appropriate library you have created.
Forget the word “directories”. You have a bunch of symbol libraries in your Symbol folder and eventually, you will have a bunch of symbols in each symbol library in your symbol folder.
Treat your footprints exactly the same way. A footprint folder containing a bunch of footprint libraries each with a bunch of footprints.
I suggest “reorder the list”.
Done, plus a few other corrections for the sake of grammar.
I don’t argue with knowledgeable “banana benders”.
The wording is ambiguous, or even contradictory. You stress “existing,” but then say “…to add too, remove from and reorder the list.” The “add too” in there seems to contradict the “existing.” And I get that this is documented, but it’s confusing and counter-intuitive that you can do things in this broad scope in one tool, but have to go to another to do things in the same scope. Also, for a users, few read the entire documentation. It’s good to have it in there, but having the system work on an intuitive level is a big help. (ref. my earlier comments about “scope.”)