Zotero stopped opening from launcher / application pane

Hi there,

Zotero stopped opening on my laptop from the launcher / application pane. I use Debian Testing with GNOME desktop. Presumably a recent package update caused it to stop working, but not sure which. The error when I try and launch it is:

Failed to launch "Zotero"
Desktop file didn't specify Exec field

The Exec line of zotero.desktop currently looks like (unchanged):
Exec=bash -c "$(dirname $(realpath $(echo %k | sed -e 's/^file:\/\///')))/zotero -url %U"

I can still start from the terminal, e.g. by typing /opt/zotero/zotero. If I copy and paste the right hand side of the Exec line in zotero.desktop into the terminal, that also works (if I run it from the /opt/zotero folder).

I have tried changing the Exec line in zotero.desktop in various ways, e.g. to "Exec=/opt/zotero/zotero" etc., but to no avail.

I also tried reinstalling it from the tarball following precisely the instructions on the website: https://www.zotero.org/support/installation (also to no avail)

Any ideas about how to fix this?

Thanks,
Sean
  • Hi all,

    I managed to fix this issue, although I'm still not sure what exactly was causing it. To fix it I did:

    1. Changed the Exec field of zotero.desktop to the full path to zotero, in my case:
    Exec=bash -c /opt/zotero/zotero

    2. Copied the zotero.desktop file to ~/.local/share/applications/, rather than symlinked it. In my case:
    cp /opt/zotero/zotero.desktop ~/.local/share/applications/

    Sean
  • edited May 23, 2024
    I always have to do something like your step 1 (in Debian too). I believe (after some test I did at some point) that "$(dirname $(realpath $(echo %k | sed -e 's/^file:\/\///')))/zotero -url %U" does not build the right address for the zotero executable file.

    However I believe the step 2 is unnecessary
  • Thanks. I was also surprised, but for me it was necessary - I did step 1 first, and it did not work until I copied the zotero.desktop file rather than symlinked it. Not sure why.
  • dstillman Zotero Team
    edited May 23, 2024
    It looks like the current Exec line no longer works in Ubuntu 24.04 (and I guess whatever Debian version that's based on). We'll look into it — thanks. For now, yes, changing it to use an absolute path to the zotero script will work.
  • The program stopped to launch after I have upgraded to Ubuntu 24.04.
    I then edited the .desktop file following [sean.canavy](https://forums.zotero.org/discussion/comment/463650/#Comment_463650) and noticed that nothing g was changed. After that I deleted the file `~/.local/share/applications/zotero.desktop` (that pointed to the modified file in zotero installation directory) and ran `/opt/zotero/set_launcher_icon` but the new .desktop file was not created in the applications directory.
    The program launched only after I have copied the `zotero.desktop`. I woundered why symlink did not performed.
  • dstillman Zotero Team
    edited May 24, 2024
    @emirsale: set_launcher_icon doesn't create a desktop file or install it into the launcher folder. All it does is update the Icon line in the bundled .desktop file with the current absolute path.

    A symlink still works fine. You might have needed to delete and recreate it to get the system to re-read the desktop file, though.
  • I don't know if that's related but I could never get the .desktop file to start if the path to it contained spaces (https://forums.zotero.org/discussion/105590/7-beta-cannot-start-zotero-via-desktop-file).
  • edited May 27, 2024
    Changing the Exec line worked for me in Ubuntu 24.04, but I only have a generic system icon, rather than the proper Zotero one. Any ideas as to what might be causing this?
  • I had to perform the following steps on my computer with Ubuntu 24.04:

    1. change the line in the zotero.desktop file:
    Exec=bash -c ~/myopt/zotero/zotero
    2. copy the file to ~/.local/share/applications:
    cp ~/myopt/zotero/zotero.desktop ~/.local/share/applications


    Just changing the line and keeping the symlink did not work.
  • dstillman Zotero Team
    edited June 4, 2024
    The proper fix here for latest Debian/Ubuntu seems to be to add extra backslashes to file:\/\/ in the Exec line:

    -Exec=bash -c "$(dirname $(realpath $(echo %k | sed -e 's/^file:\/\///')))/zotero -url %U"
    +Exec=bash -c "$(dirname $(realpath $(echo %k | sed -e 's/^file:\\/\\///')))/zotero -url %U"


    We've made this change for the next Z7 beta (84), and we'll push a new Z6 build with this change.
  • dstillman Zotero Team
    Beta 84 now includes this fix.
  • The fix breaks the icon in Ubuntu 22.04.4 LTS
  • dstillman Zotero Team
    edited June 6, 2024
    That shouldn't have anything to do with the icon — it only changed the Exec line. The Icon line is set by set_launcher_icon.
  • dstillman Zotero Team
    edited June 6, 2024
    Though it occurs to me that an update that changes zotero.desktop would actually require running set_launcher_icon again, because it would reset the Icon path to just 'zotero.ico'. Changes to the desktop entry are very rare, so this doesn't come up very often, but I guess we need to update our tarball installation instructions to mention this.
  • I of course ran set_launcher_icon again before posting, but it didn't work. Meanwhile, I restarted my computer and the icon reappeared.
  • dstillman Zotero Team
    Right, that's just caching by the launcher. Removing the symlink and re-adding it probably also would've worked.
  • edited June 6, 2024
    Probably, I didn't take time to do so. I was just annoyed by the sudden disappearance of the icon after the update.
  • I tried to change the "Exec" line in the .desktop file:

    Exec=/bin/bash -c "bash -c "$(dirname $(realpath $(echo %k | sed -e 's/^file:\/\///')))/zotero -url %U""

    And it works.

    It seems the Exec need an absolute path to bash in Ubuntu 24.04.
  • Just returning to this after re-installing Zotero on my machine, and can confirm dstillman's solution on June 4 with the extra backslashes worked for me, i.e., put

    Exec=bash -c "$(dirname $(realpath $(echo %k | sed -e 's/^file:\\/\\///')))/zotero -url %U"

    in zotero.desktop, then run set_launcher_icon again, and then recreate the sym link.

    Thanks!
  • After upgrading to Ubuntu 24.04 LTS, I was facing the same error:
    ```
    Failed to launch "Zotero"
    Desktop file didn't specify Exec field
    ```
    As @sean.cavany said in the previous comment, I just changed the `Exec` to:
    ```
    Exec=bash -c "$(dirname $(realpath $(echo %k | sed -e 's/^file:\\/\\///')))/zotero -url %U"
    ```
    in `zotero.desktop` in `~/.local/share/applications`.

    And the issue is resolved. Thank you.
  • dstillman Zotero Team
    edited September 2, 2024
    @sean.cavany, @rafisics: To be clear, that's the current line in Zotero. You shouldn't have to do anything other than re-run set_launcher_icon unless you made a copy of the desktop file elsewhere or aren't using the official tarball. (Our instructions say to symlink the file into ~/.local/share/applications, not copy it, so that it continues to receive updates.)
  • Thank you! Adding the backslashes also fixed the problem for me in Fedora.
  • Hi, I am facing the same need to add the absolute path in Archl. Maybe adding it as a troubleshooting idea in the installation docs would suffice to make life easier for users facing this, without requiring too much work for the debs if it works fine for most people? Anyways, thanks a lot to the devs for great software!
Sign In or Register to comment.