Problems creating startmenu item for app in one Appvm (zotero)


I’m trying to make a start menu listing for Zotero (bibliographic software) in a particular qube.

(I’m not sure of the term for it, (“binary”?)but I think Zotero is a different kind of program - unzip the download and you can launch it from the folder with ./zotero , or from anywhere with ~path/to/folder/./zotero ).

I’ve got the menu item in there now, but I can’t seem to get the paths right - no icon, no launch. I’ve tried several versions, the latest here:

Comment=Zotero bibliographic software
Exec=qvm-run Research /home/user/zotero/./zotero

Other Exec lines have included:
Exec=bash -c "/home/user/zotero/./zotero"

Nothing works. Can anyone help?

Documentation for creating launchers in dom0 is here:

The process I usually follow to have a dom0 launcher for an AppVM-only app:

Inside the AppVM:

  1. Install the app persistently.
  2. Create a desktop launcher file in ~/.local/share/applications.

Inside dom0:

  1. Run qvm-sync-appmenus AppVMName
  2. Select the app from Available Applications in the AppVM’s Qube Settings

Yes, the docs tell you to use a TemplateVM when syncing, but you can also do this for an AppVM as long as you’ve installed it persistently. Caveat: If you ever hit “Refresh” in the Applications tab, it will wipe out your AppVMs apps such that only the TemplateVMs apps are shown. Just re-run qvm-sync-appmenus AppVMName.

This approach is more sound if you ever need to do backup/restore of your qubes (such as if you’re forced to reinstall Qubes OS) as compared to creating arbitrary .desktop files within dom0.

I just performed a quick try with Zotero to see if it’s doing anything atypical; it worked.

  1. Downloaded the tarball

  2. Extract to /usr/local/apps

    $ sudo mkdir -p /usr/local/apps
    $ sudo tar -C /usr/local/apps -xf ~/Downloads/Zotero-5.0.92_linux-x86_64.tar
    $ sudo chown -R root:root /usr/local/apps/Zotero_linux-x86_64
    $ ls /usr/local/apps/Zotero_linux-x86_64/zotero*
    /usr/local/apps/Zotero_linux-x86_64/zotero      /usr/local/apps/Zotero_linux-x86_64/zotero.desktop
    /usr/local/apps/Zotero_linux-x86_64/zotero-bin  /usr/local/apps/Zotero_linux-x86_64/zotero.jar
  3. Zotero has a script that will configure the right icon within zotero.desktop:

    $ sudo /usr/local/apps/Zotero_linux-x86_64/set_launcher_icon
    $ grep icon /usr/local/apps/Zotero_linux-x86_64/zotero.desktop 
  4. Install the desktop launcher within the AppVM, sanity check to make sure it launches:

    $ ln -s /usr/local/apps/Zotero_linux-x86_64/zotero.desktop ~/.local/share/applications/zotero.desktop
    $ gtk-launch zotero

Assuming it launched fine, now you can tell dom0 to update its list of applications for this AppVM. In dom0:

  1. Update apps for this AppVM (zoteroappvm) only:

    $ qvm-sync-appmenus zoteroappvm
  2. Now go to the Qube Settings of zoteroappvm and you should see Zotero in the list of Available apps. Adding it to the Selected column should then show Zotero within the menu.

1 Like

Terrific, it worked perfectly. Thanks!

1 Like

I was also not aware of this, but makes total sense! Thanks!