On Wayland (Linux), Obsidian’s window reports its app_id as “electron” instead of “obsidian”. This breaks icon resolution in desktop shells and taskbars (e.g. noctalia-shell, waybar) because they can’t match the window to Obsidian’s .desktop entry.
Root Cause
Obsidian’s package.json is missing the desktopName field. Electron uses this field to set the Wayland app_id via xdg_toplevel_set_app_id. Without it, Electron falls back to the binary name, which on distributions like NixOS is “electron” (since apps share a system Electron binary).
Signal Desktop doesn’t have this problem because it sets “desktopName”: “signal.desktop” in its package.json, causing Electron to correctly report app_id: “signal”.
Suggested fix
Add to package.json: “desktopName”: “obsidian.desktop”.
Current workaround
I’m adding StartupWMClass=electron to Obsidian’s .desktop entry so the desktop shell can
match the “electron” app_id back to Obsidian. This is not ideal because:
- It’s fragile – if any other Electron app also reports as “electron”, they’ll conflict.
- It requires distribution-level patching (e.g. NixOS overrideAttrs) that every packager
has to do independently
- The app_id should be “obsidian”, not “electron” – the workaround just papers over the
mismatch
Did you follow the troubleshooting guide? [Y/N]
Yes. I have temporary fix for it.
Expected result
Icon should be visible for the window in the noctalia-shell.
Actual result
Generic icon is shown instead of the Obsidian icon.