diff --git a/linux/snap.gitlab-ci.yml b/linux/snap.gitlab-ci.yml
index 9b7f3509dcc25afb97bab0fbd94bd8f5c1516fa5..fe36160928fd0dbb31fe4f905774c2419d9d2139 100644
--- a/linux/snap.gitlab-ci.yml
+++ b/linux/snap.gitlab-ci.yml
@@ -41,13 +41,29 @@ variables:
     sed -i "s/\${GRADE}/${SNAP_GRADE}/" ${SNAP_CONFIG}
     sed -i "s/\${COMMAND}/${SNAP_COMMAND}/" ${SNAP_CONFIG}
 
-    mkdir -p ${BUILD_DIR}/meta
+    META_DIR="${BUILD_DIR}/meta"
+    mkdir -p "${META_DIR}"
     cp -r ${APP_DIR}/* ${BUILD_DIR}
-    cp ${SNAP_CONFIG} ${BUILD_DIR}/meta/snap.yaml
+    cp "${SNAP_CONFIG}" "${META_DIR}/snap.yaml"
+
+    GUI_DIR="${META_DIR}/gui"
+    mkdir -p "${GUI_DIR}"
+    if [ "${SNAP_DESKTOP_FILE}" != "" ]
+    then
+      sed -i "s|\${NAME}|${APP_NAME}/${GUI_DIR}|" ${SNAP_DESKTOP_FILE}
+      sed -i "s/\${COMMENT}/${APP_SUMMARY}/" ${SNAP_DESKTOP_FILE}
+      sed -i "s/\${COMMAND}/${SNAP_COMMAND}/" ${SNAP_DESKTOP_FILE}
+      sed -i "s|\${GUI_DIR}|\${SNAP}/${GUI_DIR}|" ${SNAP_DESKTOP_FILE}
+      cp "${SNAP_DESKTOP_FILE}" "${GUI_DIR}/${APP_NAME}.desktop"
+    fi
+
+    if [ "${SNAP_ICON}" != "" ]
+    then
+      cp "${SNAP_ICON}" "${GUI_DIR}"
+    fi
 
     snapcraft pack --platform ${SNAP_PLATFORM} ${BUILD_DIR}
     rm -r ${BUILD_DIR}
 
     GENERATED_SNAP="${APP_NAME}_${APP_VERSION}_all.snap"
-    ls .
     mv "${GENERATED_SNAP}" "${SNAP_NAME}.snap"