Can't launch app installed from snap

Hi everyone,

I am trying to have Obsidian in an offline debian AppVM. I installed it in the template as a snap. I did the following:

sudo apt update
sudo apt install snapd
sudo apt install qubes-snapd-helper
snap set system proxy.http=“http://127.0.0.1:8082/
snap set system proxy.https=“http://127.0.0.1:8082/
sudo snap install obsidian --classic

The install appeared to work correctly, and after restarting the template, I can see Obsidian in the applications list in the settings of my offline AppVM. I add Obsidian to the AppVM, the application appears in the launcher, but when I try to launch it, nothing happens. The qube starts, but Obsidian does not.

I have two Qubes machines and have done the same steps on both and gotten the same result, in case that is useful.

(The frustrating part is I just did a reinstallation to update my Qubes version, and I had Obsidian working on here before, but I just can’t remember what I did to install it at that time.)

I’m also open to suggestions about other ways of installing Obsidian that are better than using Snap.

Thanks so much!

Hi!

Are you able to launch obsidian from bash (Terminal app)?
If so, check for the .desktop file (I think this should be available in a path like /usr/share/applications/obsidian.desktop or something similar).
Check for the Exec field. Maybe the command is missconfigured there and it fails when launching the app.

Also, if you are able to launch obsidian from bash (Terminal app), run this command: which obsidian. This should show you the full path of where it’s executable resides in.

Make sure the Exec field of the obsidian.desktop file (or whatever name it has) points to that path.

If everything keeps failing, could you provide more info of the errors?

Thanks so much for the response, tnt.

I am not able to launch Obsidian from bash. As well, no related packages appear when I do:

dpkg-query -l

Thanks for any ideas you have!

Okay I see the issue.

You are installing Obsidian into an AppVM.

When you install software, you must do it into the TemplateVM, because normally AppVMs won’t persist installed applications. This means that when you reboot your AppVM, obsidian will disappear.
So you need to install it in a TemplateVM.

I recommend you to create a clone of your Debian/Fedora base TemplateVM.
Now, in that TemplateVM clone, do the following:

  • Add a networking qube, like sys-firewall or whichever you are using. By default, TemplateVMs do not have internet connection. This is meant to protect your template, and you should only connect them to internet when installing software in them
  • In this TemplateVM clone, install obsidian with your commands
  • After this, make that your AppVM has the new TemplateVM as its configured template.
  • Lastly, add to your AppVM the obsidian icon

I’m pretty sure this should work for you.

Edit:
Also, to clarify.
AppVMs only persist this paths: /home/ and /usr/local/.
When you start the AppVM, all the paths from its TemplateVM are loaded, except for those two, that are provided by the AppVM.
That’s why when installing something with sudo apt, sudo dpkg, sudo snap, etc… they don’t persist, because they get installed in different paths than /home/ and /usr/local/

Edit 2:
Shit I missread the post and thought you did not install it in the template vm, but i see that you did. This is strange. Can you show us where it’s pointing the Exec value of the .desktop file?

Could you try following the documentation about snap? Packages will be installed in the appvm itself. It works without any issues for me.

Hi Solene,

I should have read that instead of just assuming it must go in the template! Thanks for pointing me towards it.

My problem, though, is that the appvm I’m trying to install Obsidian in is offline, and I hesitate to give it network access. I tried running this command in a disposable:

snap download obsidian

But it just kept timing out. So I made a throwaway appvm and was able to download it and move it to my offline appvm. These commands let me install it:

sudo snap ack obsidian_55.assert
sudo snap install obsidian_55.snap --classic

I had to use sudo or else it wouldn’t work. But Obsidian still won’t launch. It gives me a permission error:

snap-confine is packaged without necessary permissions and cannot continue
required permitted capability cap_dac_override not found in current capabilities:
cap_wake_alarm=i

I tried the install both with and without the --classic flag and with and without the --dangerous flag, but the output was always the same. I’d be grateful for any ideas, but I realize this probably isn’t a Qubes problem anymore.

Ok, this is a bit more complicated then.

Could you try running the program from the command line and see if there is an error?