Skip to content

Instantly share code, notes, and snippets.

@egormkn
Last active August 10, 2023 14:42
Show Gist options
  • Save egormkn/672764e7ce3bdaf549b62a5e70eece79 to your computer and use it in GitHub Desktop.
Save egormkn/672764e7ce3bdaf549b62a5e70eece79 to your computer and use it in GitHub Desktop.
Running JupyterLab as a desktop application on Linux

GNOME Desktop icon for Jupyter Lab

Installation

  1. Copy jupyter-lab.desktop to ~/.local/share/applications
  2. Copy jupyter-lab.svg to ~/.local/share/icons
  3. Restart gnome-desktop session (Alt+F2 -> restart)
[Desktop Entry]
Name=Jupyter Lab
Comment=Start Jupyter Lab server
Comment[ru_RU]=Запуск сервера Jupyter Lab
Exec=gnome-terminal --class jupyter-lab -x jupyter lab --port 8888
Icon=jupyter-lab
Type=Application
Categories=Development;
StartupNotify=true
StartupWMClass=jupyter-lab
Actions=open-browser
[Desktop Action open-browser]
Name=Open in browser
Name[ru_RU]=Открыть в браузере
Exec=xdg-open http://localhost:8888/lab
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
sodipodi:docname="jupyter-lab_.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1556">
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0"
id="stop1552" />
<stop
style="stop-color:#212121;stop-opacity:1"
offset="1"
id="stop1554" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1548">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop1544" />
<stop
style="stop-color:#bebebe;stop-opacity:1"
offset="1"
id="stop1546" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1548"
id="linearGradient1550"
x1="124.03979"
y1="58.087753"
x2="124.03979"
y2="163.41867"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,3.7695312e-6)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient1556"
id="radialGradient1558"
cx="124.88333"
cy="110.73331"
fx="124.88333"
fy="110.73331"
r="48.947918"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.77449027,0,0,0.77449027,28.162406,24.971438)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2"
inkscape:cx="141.94362"
inkscape:cy="174.82803"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="2477"
inkscape:window-height="1369"
inkscape:window-x="83"
inkscape:window-y="34"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-72.231247,-95.652058)">
<g
id="g1566"
transform="matrix(0.64321607,0,0,0.64321607,25.770948,58.293282)">
<circle
style="opacity:1;fill:url(#linearGradient1550);fill-opacity:1;stroke:none;stroke-width:1.18821192;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle1542"
cx="124.88333"
cy="110.73331"
r="52.652084" />
<circle
r="48.947918"
cy="110.73331"
cx="124.88333"
id="path1540"
style="opacity:1;fill:url(#radialGradient1558);fill-opacity:1;stroke:none;stroke-width:1.10461915;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<g
transform="matrix(0.26238471,0,0,0.26238471,275.22977,55.632517)"
id="g1033"
style="display:inline;enable-background:new">
<g
aria-label="lab"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:168.17733765px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#efefef;fill-opacity:1;stroke:none;stroke-width:4.20443296"
id="text1013">
<path
d="m -670.43814,262.70047 h 25.56295 V 143.29456 h -25.56295 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Myriad Pro';-inkscape-font-specification:'Myriad Pro Bold';fill:#efefef;fill-opacity:1;stroke-width:4.20443296"
id="path1587" />
<path
d="m -555.67551,214.09722 c 0,-19.50857 -8.57704,-35.6536 -35.98995,-35.6536 -14.96778,0 -26.23566,4.20444 -31.95369,7.39981 l 4.70897,16.48138 c 5.38167,-3.36355 14.29507,-6.22257 22.70394,-6.22257 12.6133,0 14.96778,6.22257 14.96778,10.76335 v 1.00907 c -29.09468,0 -48.2669,10.09064 -48.2669,31.44916 0,13.11783 9.92247,25.2266 26.57202,25.2266 9.75429,0 18.16315,-3.53172 23.54483,-10.09064 h 0.50453 l 1.5136,8.24069 h 23.04029 c -1.00906,-4.54079 -1.34542,-12.10877 -1.34542,-19.84493 z m -24.72206,18.66768 c 0,1.5136 -0.16818,3.0272 -0.50454,4.37261 -1.68177,5.2135 -7.06344,9.41794 -13.28601,9.41794 -5.71803,0 -10.09064,-3.19537 -10.09064,-9.75429 0,-9.75429 10.427,-12.94966 23.88119,-12.94966 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Myriad Pro';-inkscape-font-specification:'Myriad Pro Bold';fill:#efefef;fill-opacity:1;stroke-width:4.20443296"
id="path1589" />
<path
d="m -535.4364,238.14658 c 0,9.24975 -0.33636,19.17222 -0.67271,24.55389 h 21.69487 l 1.00907,-11.43606 h 0.33635 c 5.71803,9.75429 15.13596,13.28601 24.72207,13.28601 18.83586,0 37.50355,-14.79961 37.50355,-44.39882 0.16817,-25.2266 -14.1269,-41.5398 -33.80365,-41.5398 -11.43606,0 -20.0131,4.54079 -24.89024,11.60424 h -0.33636 v -46.92148 h -25.56295 z m 25.56295,-22.53576 c 0,-1.68178 0.16818,-3.19537 0.50453,-4.70897 1.68178,-7.3998 8.07252,-12.6133 14.96779,-12.6133 11.94059,0 17.65862,10.09064 17.65862,22.87212 0,14.7996 -6.7271,23.20847 -17.65862,23.20847 -7.39981,0 -13.28601,-5.38167 -14.96779,-12.10877 -0.33635,-1.34542 -0.50453,-2.85901 -0.50453,-4.54079 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Myriad Pro';-inkscape-font-specification:'Myriad Pro Bold';fill:#efefef;fill-opacity:1;stroke-width:4.20443296"
id="path1591" />
</g>
<path
style="display:inline;opacity:1;fill:#f37626;fill-opacity:1;stroke:none;stroke-width:3.00452495;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
d="M -573,44 A 166,166 0 0 0 -714.0891,122.93049 188.3988,131.65517 0 0 1 -573,78.34483 188.3988,131.65517 0 0 1 -431.6562,123.2027 166,166 0 0 0 -573,44 Z M -714.3438,296.7973 A 166,166 0 0 0 -573,376 166,166 0 0 0 -431.9109,297.06951 188.3988,131.65517 0 0 1 -573,341.65517 188.3988,131.65517 0 0 1 -714.3438,296.7973 Z"
id="circle1008-3"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</svg>
@nobus-1967
Copy link

Thanks, it works!

@wesleyroseno
Copy link

There was an error creating the child process for this terminal
Failed to execute child process “jupyter” (No such file or directory)

@egormkn
Copy link
Author

egormkn commented Oct 8, 2020

@wesleyroseno you might have installed Jupyter Lab using pipenv or Docker. My desktop icon just launches jupyter lab --port 8888. You can replace the launch command with the one that works for you or just reinstall Jupyter Lab using pip or conda.

@tannerlegvold
Copy link

I installed JupyterLab using conda and the above did not work for me. I kept getting There was an error creating the child process for this terminal errors. Changing the EXEC command to gnome-terminal --tab -- /bin/bash -c "~/.anaconda3/bin/jupyter-lab;bash" did the trick though. Note, ~/.anaconda3 is the default location for anaconda on my system, I think its normally ~/anaconda3. So you may need to modify the this command to your system is you have to use this fix.

@Theoman22
Copy link

Theoman22 commented May 16, 2021

@tannerlegvold That EXEC command did the trick for me. I installed it in the ~/aanaconda3 directory, so I had to slightly modify that command to this:

gnome-terminal --tab -- /bin/bash -c "~/anaconda3/bin/jupyter-lab;bash"

@englianhu
Copy link

:~$ jupyter-notebook
:~$ sudo micro /home/<username>/.local/share/applications/jupyter-notebook.desktop
 [Desktop Entry]
Name=Jupyter Notebook
Comment=Run Jupyter Notebook
Exec=jupyter-notebook
Icon=jupyter-notebook
Type=Application
Categories=Development;Education
StartupNotify=true
StartupWMClass=jupyter-notebook
Actions=open-browser

and

:~$ jupyter-lab
:~$ sudo micro /home/<username>/.local/share/applications/jupyter-lab.desktop
 [Desktop Entry]
Name=Jupyter Lab
Comment=Run Jupyter Lab
Exec=jupyter-lab
Icon=jupyter-lab
Type=Application
Categories=Development;Education
StartupNotify=true
StartupWMClass=jupyter-lab
Actions=open-browser

@DobleAncho
Copy link

Thanks a lot to @tannerlegvold for detailed instruction.
It didn't work for me (in Linux Lite), so I changed the EXEC row to below (and it's working):
Exec=/home/MY_PROFILE_NAME/anaconda3/bin/jupyter-lab

@ParhamHasani
Copy link

thank you, It worked for me. first of all, I downloaded my favorite icon from Google and downloaded it with the new name of Jupyter-lab.png
after that, I moved this png file to ~/.local/share/icons with this code on the terminal:
sudo mv jupyter-lab.png ~/.local/share/icons

I create a text on my desktop in the terminal with this code:
touch jupyter-lab.desktop
then I copied these lines to this file. (Change [MYCOMPUTERNAME] with your computer name)
[Desktop Entry] Name=Jupyter Lab Comment=Run Jupyter Lab Exec=/home/[MYCOMPUTERNAME]/anaconda3/bin/jupyter-lab Icon=/home/[MYCOMPUTERNAME]/.local/share/icons/Jupyter-lab.png Type=Application Categories=Development;Education StartupNotify=true StartupWMClass=jupyter-lab Actions=open-browser
then I copied this file to ~/.local/share/applications by this code on terminal:
mv jupyter-lab.desktop ~/.local/share/applications

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment