During the 5 or so years Ive had nextcloud, Ive always been quite happy with the webclient, but the device clients… need some work. I recently figured out how to resolve one of my biggest pain points on the Linux desktop client, and am recording it here, mostly so I dont forget next time I setup a new computer, and to save others with the same problem from endless forum post and GitHub issue crawling.

The cause

Nextcloud expects the environment it is running in to have a ‘keychain manager’ installed and accessible by libsecret. However, currently, the Arch Linx nextcloud package does not list libsecret nor any keychain manager as a dependency. This does not cause a problem if you are using a desktop environment, as they will come with one in their own dependency cloud, but if you are just using a window manager, you may very well not have one installed.

(as a side note, this also seems to cause a significant delay in the client starting up, probably some sort of timeout waiting to access the keyring

The solution

The solution is… surprisingly simple. You just need to install the gnome-keyring and libsecret packages, and set them up to autostart. In order to autostart them properly, adding these 2 lines to your .xinitrc is enough.

#get gnome-keyring running
dbus-update-activation-environment --all
gnome-keyring-daemon --start --components=secrets

(yes, you do need dbus-update-activiation-environment, as gnome-keyring seemingly relies on certain environment variables to start properly.)