How to swap Root and Derived symbol?

My libraries come from V5. There all aliases had to have the same footprint so I had several symbols with the same graphic just because they had different footprints.
When my libraries were converted into (probably) V6 and changed into Derived concept I still have several Base symbols with graphic and its Derived from. I just wanted to change symbol graphic and thought I will do a bit of tidying up to not have to modify all Base symbols but to make them all come from one Root.
If the following task would be easy done then making order in library would be simple.
Task (V 8.0.4): You have symbol B and derived from it symbol A. Change their order to have B derived from A.
I supposed it would be done in 2 steps:

  1. When in symbol A (derived) I position cursor at “Derive from symbol:” box the help box pops up telling me I can select source symbol or <None>. So when selecting <None> the graphic will simply be copied from derived symbol here.
  2. In symbol B I will change Derived from <None> to symbol A and graphic from B will be deleted and it will be derived from A.

Simple as 2+2=4.
But it looks that neither of these 2 steps can be done.
I ended with:

  1. Renaming A into A_.
  2. Saving B as A.
  3. Time consuming copying field by field from A_ into A.
  4. Renaming B into B_.
  5. Deriving B from A.
  6. Time consuming copying field by field from B_ into B.
  7. Deleting A_ and B_.

Do it really is so complicated or I didn’t found the right way?

What abot the nomal simple swap?

  1. Save A as C.
  2. Save B as A.
  3. Save C as A.

I could be wrong, as I do not fully understand what you try to do.

Also, what is:

If you open: Symbol Editor / Edit / Pin Table, then you can select a whole block of rows and columns, copy that to the clipboard, and paste that to the symbol editor in Another KiCad instance**. Each open KiCad instance can have one open copy of each of the KiCad programs.

Rather:

  • Save copy of A as C,
  • Delete A (to allow for next step),
  • Rename B as A (to make in the same step C being derived from A),
  • Rename C as B.

But this is practically only replacing my A_, and B_ with C.

It opens (8.0.4) only for Root symbol and not for Derived. But after such swap of symbols I have to swap Footprint, Datasheet and Description fields and I don’t see them there.

What I really needed to do:
I had several Zener diodes sets (Root element and series of derived). Like it was in V5 - each set for separate footprint (SOD123F, SOD323, SOD523, SMA, SMB). I wanted to little shrink my Zener symbol. So thought that by the way I will make them all derived from one symbol and modify only this one symbol graphic. As my Zener diodes are in Diodes library I decided to clean up whole library.
For standard diodes I decided that the root will be 1N4148, but it was (added later then in KiCad V5) derived from S1J. So my first task was to swap them.

Modifying already derived symbols is no problem - you just select new symbol as ‘derived from’. But to change all symbols that were not derived into derived you practically have to define them once more.
So my procedure for each previously root symbol was to:

  • rename from Name to Name_,
  • make derived naming it Name,
  • copy one by one Footprint, Datasheet and Description fields from Name_ to Name,
  • delete Name_.

I don’t see the way to copy all fields at once. You can probably do it using text editor, but I generally don’t like to mess with the program in its files.

I think that, at the moment, the easiest way to combine derived symbols under a new root (and also change the original root symbol to a new derived one) is with a text editor.

It is easy enough, you just have to add the (extends "xxx") in the correct place in the original root, and keep only the field section of the symbol, no graphics and no pin definitions. Then update its children (extends "xxx") to target the new root.

Open and dummy save the lib from KiCad to move things inside the file in case it is needed, and also to verify that you haven’t lost anything.