diff --git a/Dockerfile b/Dockerfile
index 0d98478..4f7de21 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM jupyter/base-notebook
+FROM jupyter/base-notebook:1386e2046833
USER root
# Useful tools for debugging connection problems
@@ -11,7 +11,8 @@ RUN apt-get update -y -q && \
# Desktop environment, keep in sync with jupyter_notebook_config.py
# ENV DESKTOP_PACKAGE lxde
ENV DESKTOP_PACKAGE xfce4
-RUN apt-get install -y -q \
+RUN apt-get update -y -q && \
+ apt-get install -y -q \
xterm \
${DESKTOP_PACKAGE}
@@ -41,8 +42,44 @@ USER jovyan
# https://github.com/jupyterhub/jupyter-server-proxy/pull/151
RUN /opt/conda/bin/pip install https://github.com/manics/jupyter-server-proxy/archive/1f22ccf44abd7ab5f7b306d57b6adb1dc3190e8b.zip
RUN conda install -y -q -c manics websockify=0.9.0
+
ADD jupyter_notebook_config.py /home/jovyan/.jupyter/jupyter_notebook_config.py
+
+########## Applications
+
+USER root
+RUN apt-get update -y -q && \
+ apt-get install -y -q \
+ firefox \
+ less \
+ openjdk-8-jre \
+ unzip
+# default-jre is java 11 which is incompatible with Fiji
+
+USER jovyan
+RUN wget -q https://downloads.imagej.net/fiji/latest/fiji-nojre.zip && \
+ unzip -q fiji-nojre.zip && \
+ echo TODO: rm fiji-nojre.zip
+RUN wget -q https://github.com/ome/omero-insight/releases/download/v5.5.6/OMERO.imagej-5.5.6.zip && \
+ cd Fiji.app/plugins && \
+ unzip -q ../../OMERO.imagej-5.5.6.zip && \
+ echo TODO: rm OMERO.imagej-5.5.6.zip
+
+RUN wget -q https://github.com/ome/omero-insight/releases/download/v5.5.6/OMERO.insight-5.5.6.zip && \
+ unzip -q OMERO.insight-5.5.6.zip && \
+ echo TODO: rm OMERO.insight-5.5.6.zip
+
+RUN mkdir .java && \
+ cd OMERO.insight-5.5.6 && \
+ wget -q https://www.openmicroscopy.org/img/logos/omero-logomark.svg
+# https://developer.gnome.org/desktop-entry-spec/
+#COPY --chown=${NB_UID}:${NB_GID} *.desktop /home/jovyan/Desktop/
+COPY --chown=1000:100 *.desktop /home/jovyan/Desktop/
+# Configure default OMERO.insight server list
+#COPY --chown=${NB_UID}:${NB_GID} java_userPrefs .java/.userPrefs
+COPY --chown=1000:100 java_userPrefs .java/.userPrefs
+
WORKDIR ${HOME}
# Both these should work:
diff --git a/Fiji.desktop b/Fiji.desktop
new file mode 100755
index 0000000..f34415e
--- /dev/null
+++ b/Fiji.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Name=Fiji Is Just ImageJ
+GenericName=Fiji Is Just ImageJ
+X-GNOME-FullName=Fiji Is Just ImageJ
+Comment=Scientific Image Analysis
+Type=Application
+Categories=Education;Science;ImageProcessing;
+Exec=/home/jovyan/Fiji.app/ImageJ-linux64
+TryExec=/home/jovyan/Fiji.app/ImageJ-linux64
+Terminal=false
+StartupNotify=true
+Icon=/home/jovyan/Fiji.app/images/icon.png
+StartupWMClass=fiji-Main
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..a3ed9ee
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2019, University of Dundee
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/OMERO.insight.desktop b/OMERO.insight.desktop
new file mode 100755
index 0000000..5b11a92
--- /dev/null
+++ b/OMERO.insight.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Name=OMERO.insight
+GenericName=OMERO.insight
+X-GNOME-FullName=OMERO.insight
+Comment=OMERO desktop client
+Type=Application
+Categories=Education;Science;ImageProcessing;
+Exec=/home/jovyan/OMERO.insight-5.5.6/bin/omero-insight
+TryExec=/home/jovyan/OMERO.insight-5.5.6/bin/omero-insight
+Terminal=false
+StartupNotify=true
+Icon=/home/jovyan/OMERO.insight-5.5.6/omero-logomark.svg
diff --git a/README.md b/README.md
index 6f963c3..e1c7271 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,13 @@
-# Jupyter Linux Desktop
-[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gist/manics/7d1f4b76ce06c2bb07db88e3496a1561/master?urlpath=desktop)
+# Jupyter OMERO client Desktop
+[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/manics/jupyter-omeroanalysis-desktop/master?urlpath=Desktop)
-Example of running a Linux desktop or window manager with noVNC inside Jupyter.
+Run OMERO clients in a Linux desktop using Jupyter.
This is based on https://github.com/ryanlovett/nbnovnc
```
-docker build -t jupyter-desktop .
-docker run -it --rm -p 8888:8888 jupyter-desktop jupyter notebook --debug
+docker build -t jupyter-omeroanalysis-desktop .
+docker run -it --rm -p 8888:8888 jupyter-omeroanalysis-desktop
```
-Go to `/desktop` e.g. http://localhost:8888/desktop and if you're lucky you'll see the desktop you installed.
+
+Open the displayed URL, then go to `/Desktop` e.g. http://localhost:8888/Desktop and if you're lucky you'll see a Linux desktop with icons for OMERO.insight and FIJI.
diff --git a/java_userPrefs/org/openmicroscopy/prefs.xml b/java_userPrefs/org/openmicroscopy/prefs.xml
new file mode 100644
index 0000000..8c1f77e
--- /dev/null
+++ b/java_userPrefs/org/openmicroscopy/prefs.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/java_userPrefs/org/openmicroscopy/shoola/prefs.xml b/java_userPrefs/org/openmicroscopy/shoola/prefs.xml
new file mode 100644
index 0000000..8c1f77e
--- /dev/null
+++ b/java_userPrefs/org/openmicroscopy/shoola/prefs.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/java_userPrefs/org/openmicroscopy/shoola/util/prefs.xml b/java_userPrefs/org/openmicroscopy/shoola/util/prefs.xml
new file mode 100644
index 0000000..8c1f77e
--- /dev/null
+++ b/java_userPrefs/org/openmicroscopy/shoola/util/prefs.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/java_userPrefs/org/openmicroscopy/shoola/util/ui/login/prefs.xml b/java_userPrefs/org/openmicroscopy/shoola/util/ui/login/prefs.xml
new file mode 100644
index 0000000..4ae2bd7
--- /dev/null
+++ b/java_userPrefs/org/openmicroscopy/shoola/util/ui/login/prefs.xml
@@ -0,0 +1,7 @@
+
+
+
diff --git a/java_userPrefs/org/openmicroscopy/shoola/util/ui/prefs.xml b/java_userPrefs/org/openmicroscopy/shoola/util/ui/prefs.xml
new file mode 100644
index 0000000..8c1f77e
--- /dev/null
+++ b/java_userPrefs/org/openmicroscopy/shoola/util/ui/prefs.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/java_userPrefs/org/prefs.xml b/java_userPrefs/org/prefs.xml
new file mode 100644
index 0000000..8c1f77e
--- /dev/null
+++ b/java_userPrefs/org/prefs.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/jupyter_notebook_config.py b/jupyter_notebook_config.py
index 63963f5..69719c0 100644
--- a/jupyter_notebook_config.py
+++ b/jupyter_notebook_config.py
@@ -9,7 +9,7 @@ else:
vnc_socket = os.path.join(os.getenv('HOME'), '.vnc', 'socket')
c.ServerProxy.servers = {
- 'desktop': {
+ 'Desktop': {
'command': [
'/opt/conda/bin/websockify',
'-v',