diff --git a/Dockerfile.m4 b/Dockerfile.m4 index b634c19..830503b 100644 --- a/Dockerfile.m4 +++ b/Dockerfile.m4 @@ -426,6 +426,8 @@ ENV UNPRIVILEGED_USER_SHELL=/bin/bash ENV XRDP_TLS_KEY_PATH=/etc/xrdp/key.pem ENV XRDP_TLS_CRT_PATH=/etc/xrdp/cert.pem ENV ENABLE_XDUMMY=false +ENV STARTUP=xfce4-session +ENV DESKTOP_SESSION=xubuntu ## Use Adwaita theme in QT applications ENV QT_STYLE_OVERRIDE=Adwaita @@ -491,11 +493,6 @@ COPY --chown=root:root ./config/pulse/ /etc/pulse/ RUN find /etc/pulse/ -type d -not -perm 0755 -exec chmod 0755 '{}' ';' RUN find /etc/pulse/ -type f -not -perm 0644 -exec chmod 0644 '{}' ';' -# Copy skeleton files -COPY --chown=root:root ./config/skel/ /etc/skel/ -RUN find /etc/skel/ -type d -not -perm 0755 -exec chmod 0755 '{}' ';' -RUN find /etc/skel/ -type f -not -perm 0644 -exec chmod 0644 '{}' ';' - # Copy scripts COPY --chown=root:root ./scripts/bin/ /usr/local/bin/ RUN find /usr/local/bin/ -type d -not -perm 0755 -exec chmod 0755 '{}' ';' diff --git a/config/X11/Xsession.d/60virtualgl b/config/X11/Xsession.d/60virtualgl new file mode 100644 index 0000000..66caf30 --- /dev/null +++ b/config/X11/Xsession.d/60virtualgl @@ -0,0 +1,20 @@ +#!/bin/sh + +if [ -z "${VGL_DISPLAY-}" ]; then + # Use the dummy X server if it is enabled + if [ "${ENABLE_XDUMMY:?}" = 'true' ]; then + export VGL_DISPLAY=:0.0 + else + # Otherwise try to use the EGL backend + for card in /dev/dri/card*; do + if /opt/VirtualGL/bin/eglinfo -B "${card:?}" 2>/dev/null; then + export VGL_DISPLAY="${card:?}" + break + fi + done + # And fallback to DISPLAY if the EGL backend is not available + if [ -z "${VGL_DISPLAY-}" ] && [ -n "${DISPLAY-}" ]; then + export VGL_DISPLAY="${DISPLAY:?}" + fi + fi +fi diff --git a/config/skel/.Xauthority b/config/skel/.Xauthority deleted file mode 100644 index e69de29..0000000 diff --git a/config/skel/.xsession b/config/skel/.xsession deleted file mode 100644 index f7dd511..0000000 --- a/config/skel/.xsession +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec xfce4-session diff --git a/config/skel/.xsessionrc b/config/skel/.xsessionrc deleted file mode 100644 index 3ecbd41..0000000 --- a/config/skel/.xsessionrc +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -export XDG_CACHE_HOME="${HOME:?}"/.cache -export XDG_CONFIG_DIRS=/etc/xdg/xdg-xubuntu:/etc/xdg -export XDG_CONFIG_HOME="${HOME:?}"/.config -export XDG_CURRENT_DESKTOP=XFCE -export XDG_DATA_DIRS=/usr/share/xubuntu:/usr/share/xfce4:/usr/local/share:/usr/share -export XDG_DATA_HOME="${HOME:?}"/.local/share -export XDG_MENU_PREFIX=xfce- -export XDG_RUNTIME_DIR=/run/user/"${UNPRIVILEGED_USER_UID:?}" -export XDG_SESSION_DESKTOP=xubuntu -export XDG_SESSION_TYPE=x11 - -if [ -z "${VGL_DISPLAY-}" ] && [ -n "${DISPLAY-}" ]; then - export VGL_DISPLAY="${DISPLAY:?}" -fi diff --git a/scripts/bin/container-init b/scripts/bin/container-init index c983b78..6562d86 100755 --- a/scripts/bin/container-init +++ b/scripts/bin/container-init @@ -81,22 +81,6 @@ if [ "${ENABLE_XDUMMY:?}" = 'true' ]; then ln -s /etc/sv/xdummy /etc/service/ fi -# Define VGL_DISPLAY variable if it is not set -if [ -z "${VGL_DISPLAY-}" ]; then - # Use the dummy X server if it is enabled - if [ "${ENABLE_XDUMMY:?}" = 'true' ]; then - export VGL_DISPLAY=:0.0 - # Otherwise try to use the EGL backend - else - for card in /dev/dri/card*; do - if /opt/VirtualGL/bin/eglinfo -B "${card:?}" 2>/dev/null; then - export VGL_DISPLAY="${card:?}" - break - fi - done - fi -fi - # Generate SSH keys if they do not exist if [ ! -f /etc/ssh/ssh_host_ed25519_key ]; then ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' >/dev/null