0

i have been using this desktop file pluto.desktop:

[Desktop Entry]
Exec=/home/user/Software/Installed/Pluto/pluto_startup.sh
Icon=/home/user/Software/Installed/Pluto/Pluto.svg
Type=Application
Terminal=true
Name=Pluto
Categories=Development;IDE;

pointing to the executable pluto_startup.sh, which contains julia code launching Pluto (julia notebooks in a browser):

#!/bin/env julia
cd("/home/user/Software/Installed/Pluto")
using Pkg
Pkg.activate(".")
using Pluto
Pluto.run()

Unfortunately this stopped working after i changed my default shell from bash to zsh. Running desktop-file-validate did not return any errors and gtk-launch pluto still works (i can also run pluto_startup.sh directly). However, when i click on the icon in my GNOME dash, a terminal opens and immediately closes and Pluto is not launched. I have tried using

Exec=gnome-terminal -e "sh -c 'home/user/Software/Installed/Pluto/pluto_startup.sh'"

instead as well as putting the content of pluto_startup.sh into a seperate julia file, which then gets called by a file containing only

#!/bin/zsh
julia -i /home/user/Software/Installed/Pluto/pluto_startup.jl

but both attempts failed.

Any idea what might cause this problem or how i can troubleshoot it?

Basic OS info:

Fedora Linux 38 (Workstation Edition) x86_64
GNOME 44.1 on Wayland
5
  • To debug the problem, I suggest to add code to your scripts that will write some debug output to a file with an absolute file name, e.g. /tmp/output.txt, to show if the script is actually run. (Probably not related to your problem: Naming executable files like xyz.sh or xyz.jl is bad practice. The file name pluto_startup.sh is even misleading because it is not a shell script. If you don't absolutely need features of zsh, I suggest to write scripts for sh or bash, even if you use zsh as your interactive shell.)
    – Bodo
    Commented May 30, 2023 at 16:11
  • Thanks for the tips. I was a little desperate and tried a few things quick and dirty. Specifying the link to the interpreter explicitly seemed to have fixed the issue for me.
    – joap
    Commented May 30, 2023 at 16:50
  • The purpose of this site is not only to find a solution for you personally but also to provide a reference of questions and solutions for people who migfht have a similar problem. That's why it might be good to edit your question and add more details. I just noticed #!/bin/env julia On my system there is no /bin/env but /usr/bin/env. To me it is not fully clear why the script #!/bin/zsh julia -i /home/user/Software/Installed/Pluto/pluto_startup.jl fails. Maybe because julia is not in PATH?
    – Bodo
    Commented May 30, 2023 at 17:09
  • What do think would be good to add specifically? julia is in PATH both for bash and zsh. Like i said, i didn't change anything about the way pluto is started and i am still not sure what causes this behaviour.
    – joap
    Commented May 30, 2023 at 18:20
  • For example you wrote "both attempts failed". What exactly did you do? How exactly did it fail? Or add some debug output to your scripts and show the resulting output.
    – Bodo
    Commented May 31, 2023 at 14:31

1 Answer 1

0

I found a solution/workaround for this problem: Simply giving the absolute path to the interpreter of the file pluto_startup.sh (which i also renamed to pluto_startup.jl for clarity) to something like #!/<abs-path-to-julia-binary> seems to have fixed the problem for me.

1
  • 1
    The best name would be simply pluto_startup without any .jl or .sh because the scripting language is an irrelevant implementation detail.
    – Bodo
    Commented May 30, 2023 at 17:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .