Launching Brave creates a separate dock icon instead of using the pinned favorite.
Brave ships two desktop files that both declare StartupWMClass=brave-browser:
brave-browser.desktop— visible (the one you pin)com.brave.Browser.desktop— hidden (NoDisplay=true)
On X11, GNOME binds the window to the hidden one, so it can't attach to the pinned icon → duplicate. (On Wayland it binds to the visible one, so no duplicate.)
Give the hidden twin its own WM class via a user override:
cp /usr/share/applications/com.brave.Browser.desktop ~/.local/share/applications/
sed -i 's/^StartupWMClass=brave-browser/StartupWMClass=com.brave.Browser/' ~/.local/share/applications/com.brave.Browser.desktop
gsettings set org.gnome.shell favorite-apps "['org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'brave-browser.desktop']"
update-desktop-database ~/.local/share/applicationsVerify (should print StartupWMClass=com.brave.Browser):
grep StartupWMClass ~/.local/share/applications/com.brave.Browser.desktopThen reboot, quit Brave fully, and launch from the pinned icon → single icon.
- User override in
~/.local/share/applications/survives Brave updates. - Alternative fix: switch the session to Ubuntu on Wayland at the login screen (no file edits).
- Check session type with:
echo $XDG_SESSION_TYPE