Unable to change user avatar using GNOME Settings when using homectl

Even after “unlocking” the user settings, the buttons to edit the avatar image for a user is greyed out.

However, the following command works for changing the image manually:
busctl call org.freedesktop.Accounts /org/freedesktop/Accounts/User${UID} org.freedesktop.Accounts.User SetIconFile s <path_to_image>

Is this expected when using systemd-homed/homectl?

Copy the image to user home folder and change file name to .face

For example – cp /path/to/avatar.png ~/.face

That still doesn’t resolve the issue, the buttons in GNOME settings are still greyed out.

Also, as I pointed out in the post, I was able to find an alternative method of changing the avatar image, my point was that GNOME Settings does not allow the image to be changed.

As I recall - with systemd-homed - your home is a luks encrypted container paired with a json data file - allowing the home to be portable by means of a removable device.

The homectl utility is expected to be writing to the json configuraiton file matching your account as the integrity and security of the file must be strictly maintained - never edit the json data manually.

Valuable info is linked at the begining of this document

Converting Existing Users to systemd-homed

Likewise the Arch wiki has good information

systemd-homed - ArchWiki

Right now, it appears that GNOME is following the settings declared in the file /var/lib/AccountsService/users/$USER, in which there is a config line for Icon=, that defines a path for an avatar image.

I considered the main issue was in the title: “Unable to change user avatar”

Critically

Unable to change user avatar using GNOME Settings when using homectl

Keyword, “using GNOME settings”