How to prevent the huge CPU usage of gnome-keyring-daemon when starting Google Chrome

Let’s try to mitigate an annoying behavior of Google Chrome on Linux


If you using the (useful!) data synchronization feature of Google Chrome, you may encounter an unusual CPU usage from gnome-keyring-daemon process when the browser starts: the gnome-keyring-daemon eats all CPU time for 4/5 minutes.

This happens because by default Google Chrome uses the system keychain to store passwords: if the data to be synchronized are many, this problem can occur.


How to fix it?

Unfortunately it does not seem to be a configuration flag (in chrome://flags/) to disable the use of gnome-keyring, but it is available a command line argument that lets you save passwords on files, without using the system keychain:

--password-store=<basic|gnome|kwallet>
Set the password store to use. The default is to automatically detect based on the desktop environment. basic selects the
built in, unencrypted password store. gnome selects Gnome keyring. kwallet selects (KDE) KWallet. (Note that KWallet may not
work reliably outside KDE.)

If Chrome is started with the “— password-store=basic” parameter, it stores all password into an unencrypted file on user profile:

google-chrome --password-store:basic

Obviously, the price to pay is to store all the passwords on an unencrypted file (but the problem can be mitigated by applying encryption to the whole disk or to the user’s home directory).


How to create a custom button on the Unity Launcher…

…to start Google Chrome always with the “ — password-store=basic” argument?

It’s pretty simple: just copy the file /usr/share/applications/google-chrome-beta.desktop into ~/.local/share/applications/.

Then edit the copied file and change the entry Name


and the entry Exec like this:


After saving the file, a new Google Chrome icon should appear into the Unity Launcher:


Now, simply drag the new icon on the launcher:


That’s it!

Comments