I have a face mesh with a number of detail bones (e.g. eyebrows, lips). The latter have all been weighted accurately, but some vertex weights, whether they are contributed to by one or more bones, may not add up to 1.0. I would like to assign the remainder (missing, 1 - current sum) weights to their parent bone, "head". How can I do this? Currently, all accurately-weighted bones' VGs are locked (only the "head" VG, which is currently empty, is unlocked).
Through the use of locking vertex groups and the "normalize all" operation.
In weight paint mode, select all vertices for which you'd like to do this. In properties/object data/vertex groups, select your head group, make sure your weight is set to 1.0 (the default), and click "assign" to assign all selected verts to your head group.
Next, using the dropdown to the right of the list of vertex groups, use a "lock all" vertex groups operation, then unlock your head group, so that it is the only unlocked group. (You've already done this, but future readers need to understand that this is an important part of the process).
Now, in the 3D viewport, use a "normalize all" operation (from the searchbar or weights menu.) In its operator panel, uncheck "Lock Active".
The normalize all operation will calculate proper, normalized values for all vertex groups, for each vertex. Because all vertex groups except head are locked, only the head group will be normalized, and it will be normalized around the existing weights-- ie, the head group for each vertex will become equal to 1 - current (non-head) weight.