[Request] Secret Service API / libsecret
Your system information
- Steam client version: 1669935636
- SteamOS version: 3.3.2 20221005.1
- Opted into Steam client beta?: n
- Opted into SteamOS beta?: n
- Have you checked for updates in Settings > System?: y
Please describe your issue in as much detail as possible:
The official java Minecraft launcher works fine on steam deck, aside from not saving passwords because gnome-keyring is missing.
Steps for reproducing this issue:
- Download and extract Minecraft launcher:
curl https://launcher.mojang.com/download/Minecraft.tar.gz | tar xvz - Open it and log in. This error is displayed:
That link leads to https://help.minecraft.net/hc/en-us/articles/4408668374925-Secure-Token-Storage-Failure-on-Linux
SteamOS 3 uses the KDE keyring since its using a KDE desktop (IDK about gamemode)
The problem is that SteamOS doesn't come with an implementation for Secret Service API (org.freedesktop.secrets).
There are probably a few options here:
- Add gnome-keyring (which supports the Secret Service API) to SteamOS.
- Have KDE add support for Secret Service API to KDE through KSecretService or kwallet: https://bugs.kde.org/show_bug.cgi?id=313216#c30
- KeePassXC can work with the Secret Service API, though it takes a bit of setup and but the flatpak doesn't seem to have this functionality. Work with them to figure out how to publish the API through the flatpak or add to SteamOS as a default package?
Some relevant discussion on getting the API to work with Flatpak over here: https://github.com/flathub/com.mojang.Minecraft/pull/132
This was "fixed" for me between last week, when I detected this same problem (but in my case it was VSCode that needed the secrets DBus service), and today, when I decided to investigate and report it.
https://invent.kde.org/frameworks/kwallet/-/merge_requests/11 implemented the Sercret Service API in kwallet. It was released with KDE frameworks 5.97. Last week the version of KDE frameworks installed in my deck (no beta release) was older. Today, after this week update, the installed version is 5.99.0 and VSCode is able to store auth credentials without problems.
I have no idea if this fixes the problem for Minecraft, but you should give it a try.
Edit to add my current SteamOS version: 3.4.4 20221228.1
It seems to only work in desktop mode. It doesn't complain in game mode, but it doesn't save the password either.
I find it odd that such functionality is dependent on the desktop environment.
I find it odd that such functionality is dependent on the desktop environment.
Each desktop has its own secrets storage: the Secrets API is a shared API for accessing that storage.
In the game session there is no secrets storage, so there's nothing that provides that API.
So, this is why browsers like Chrome, Edge or Brave, when launched in Game Mode, have broken sync / password manager functionalities?
This is now even more broken with the release of Plasma 6. Installing and running KWalletManager from Discover yields the following:
An error occurred when connecting to the KWallet service: The name org.kde.kwalletd6 was not provided by any .service files
This is now even more broken with the release of Plasma 6.
https://bugs.kde.org/show_bug.cgi?id=492541