Obsidian freezes entirely when an attachment is open with an external program

Steps to reproduce

  • Enable view for all files
  • add a docx or odt file in the vault
  • link to the file from a note
  • click on link

Did you follow the troubleshooting guide? [Y/N]

Y

Expected result

The file is opened with external application associated to the file (in this case Libreoffice), while the interface of Obsidian is still responding.

Actual result

The file is opened with external application associated to the file (in this case Libreoffice), but the Obsidian interface is frozen and remains unusable until Libreoffice is closed.

Environment

Debian Sid, evilwm, Obsidian official deb package.

SYSTEM INFO:
	Obsidian version: v1.5.8
	Installer version: v1.5.8
	Operating system: #1 SMP PREEMPT_DYNAMIC Debian 6.7.9-1 (2024-03-08) 6.7.9-amd64
	Login status: not logged in
	Insider build toggle: off
	Live preview: on
	Base theme: adapt to system
	Community theme: none
	Snippets enabled: 0
	Restricted mode: on

RECOMMENDATIONS:
	none

Additional information

First of all let me say that I am aware that this has been discussed already a few times in this forum (I searched) and that the last bug report about it (Opening attachments in external program freezes interface) mentions that you will not fix it, and I also read in the bug report that you only provide support for Gnome and KDE.

However, please hear me out. I’m currently evaluating Obsidian after realizing that Logseq is not a great fit for my way of working. So far I’ve been really impressed but this issue is really problematic. Many people on Linux are not using a Desktop Manager (DE), they are just using Windows Managers (WM). I have never encountered this issue with any other desktop applications (FLOSS or closed-source). Running things in a WM is not niche, DE like Gnome and KDE also provide their own WM. I do not know how Obsidian open external files on Linux, so it is hard to suggest anything more than trying to convince you to look into it. In the past years this has been frequently discussed in bug reports regarding electron and how xdg-open is handled for instance, to prevent blocking.

let’s move this convo to the help section.

I am not entirely sure why you are moving this to the help section. It’s an issue with Obsidian.

Right now the packages provided for Linux do not have Gnome or KDE as dependencies, so

Another thing I noticed is that the menu entry “Open in Default App” available when viewing a PDF freezes entirely Obsidian and no default app is ever opened. However there is a default app configured, as I can open PDF fines with xdg-open blabla.pdf. I suspect this is the same issue manifesting itself differently.

Maybe another useful hint: “Show in system explorer” works as expected. It launches my default file explorer, SpaceFM, at the right location, and Obsidian is not freezing!

I have the same problem, since I switched to i3 Windows Manager a week ago.

My workaround to be able to use an external editor is the plugin “Open in another Editor”:
obsidian://show-plugin?id=obsidian-open-in-other-editor or GitHub - yekingyan/obsidian-open-in-other-editor: Open current active file in gVim or VScode.

Also, as you mentioned, a shortcut to show the file in it’s folder und open it from there.

It’s a pitty, Obsidian really is the only program giving this problem so far.

Does anybody know another solution? Maybe a plugin? “Open in another Editor” shows, that it is possible :slight_smile:

I am using Mac, I found “mind map” is the issue. I kept the preview of “mind map” tab opened, when I open the pdf, it will try to generate a mind map for it, that might coursed the issue from my side.

Thanks for sharing your thoughts Jarod!
However I also think this may have been a different issue. The problem here seems to be exclusively specific to Linux users who are not on Gnome or KDE.

I don’t think this should be done with a plugin. My hope is that the developers will be able able to spare a bit of time to look at how other electron based editors handle file opening, and more specifically how to make sure this is done in a non-blocking way for the parent process. There are several ways to do this and I believe this is well documented.

1 Like