user56381: I run bitcoin-qt all the time, so I set the browser to handle bitcoin: URI with bitcoin-qt.
Unfortunately that causes a new instance to be started, which fails coz it fails to get a lock on the database.
What's the best way to do this?
I have 'server=1' to enable json-rpc access to bitcoin-qt.
Do I need to set the browser to handle these links with (say) bitcoin-cli?
Or do I need to reconfigure the whole thing and run bitcoind as well?

user56381: The simple answer is that when the parameter '%U' is missing from the 'Exec' line in a gnome/Ubuntu desktop file, the OS creates a new instance whenever the application is called (in this case by the browser on clicking a bitcoin: link on a web page). That fails when the application can only have one instance running (bitcoin-qt by itself handles the bitcoin database; no other app/instance can be simultaneously doing this).
The 'magic' is that when the '%U' parameter is present, the OS sends the request to the running app and, in this case, that appears as a bitcoin transaction in bitcoin-qt as expected.
Over the years of playing with bitcoin.desktop, i had managed to lose that parameter somehow. Very confusing.

56381: <p>I run bitcoin-qt all the time, so I set the browser to handle bitcoin: URI with bitcoin-qt.
Unfortunately that causes a new instance to be started, which fails coz it fails to get a lock on the database.</p>
<p>What's the best way to do this?</p>
<p>I have 'server=1' to enable json-rpc access to bitcoin-qt.</p>
<p>Do I need to set the browser to handle these links with (say) bitcoin-cli?
Or do I need to reconfigure the whole thing and run bitcoind as well?</p>
 56381: <p>The simple answer is that when the parameter '%U' is missing from the 'Exec' line in a gnome/Ubuntu desktop file, the OS creates a new instance whenever the application is called (in this case by the browser on clicking a bitcoin: link on a web page). That fails when the application can only have one instance running (bitcoin-qt by itself handles the bitcoin database; no other app/instance can be simultaneously doing this).</p>
<p>The 'magic' is that when the '%U' parameter is present, the OS sends the request to the running app and, in this case, that appears as a bitcoin transaction in bitcoin-qt as expected.</p>
<p>Over the years of playing with bitcoin.desktop, i had managed to lose that parameter somehow. Very confusing.</p>
