From 173ffdb9ec49ea2d018c473216c599c8f1eebf0f Mon Sep 17 00:00:00 2001 From: Ryan Kuba Date: Tue, 17 Jun 2025 14:52:29 +0000 Subject: [PATCH] rebase ubuntu-kde to selkies setup default settings (#316) --- .editorconfig | 0 .github/ISSUE_TEMPLATE/issue.bug.yml | 0 .github/ISSUE_TEMPLATE/issue.feature.yml | 0 .github/workflows/call_issue_pr_tracker.yml | 0 .github/workflows/call_issues_cron.yml | 0 .github/workflows/permissions.yml | 0 Dockerfile | 21 +++++--- Dockerfile.aarch64 | 21 +++++--- Jenkinsfile | 4 +- jenkins-vars.yml | 4 +- root/defaults/autostart | 1 + root/defaults/startwm.sh | 58 +++++++++++++++++---- root/etc/apt/preferences.d/firefox-no-snap | 3 -- root/usr/local/bin/wrapped-chromium | 15 ++++++ 14 files changed, 95 insertions(+), 32 deletions(-) mode change 100755 => 100644 .editorconfig mode change 100755 => 100644 .github/ISSUE_TEMPLATE/issue.bug.yml mode change 100755 => 100644 .github/ISSUE_TEMPLATE/issue.feature.yml mode change 100755 => 100644 .github/workflows/call_issue_pr_tracker.yml mode change 100755 => 100644 .github/workflows/call_issues_cron.yml mode change 100755 => 100644 .github/workflows/permissions.yml create mode 100644 root/defaults/autostart delete mode 100644 root/etc/apt/preferences.d/firefox-no-snap create mode 100755 root/usr/local/bin/wrapped-chromium diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml old mode 100755 new mode 100644 diff --git a/.github/ISSUE_TEMPLATE/issue.feature.yml b/.github/ISSUE_TEMPLATE/issue.feature.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml old mode 100755 new mode 100644 diff --git a/Dockerfile b/Dockerfile index a3b53b41..c04bbf87 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-kasmvnc:ubuntunoble +FROM ghcr.io/linuxserver/baseimage-selkies:ubuntunoble # set version label ARG BUILD_DATE @@ -10,21 +10,23 @@ ARG DEBIAN_FRONTEND="noninteractive" # title ENV TITLE="Ubuntu KDE" -# prevent Ubuntu's firefox stub from being installed -COPY /root/etc/apt/preferences.d/firefox-no-snap /etc/apt/preferences.d/firefox-no-snap - RUN \ echo "**** add icon ****" && \ curl -o \ - /kclient/public/icon.png \ + /usr/share/selkies/www/icon.png \ https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/webtop-logo.png && \ echo "**** install packages ****" && \ - add-apt-repository -y ppa:mozillateam/ppa && \ + apt-key adv \ + --keyserver hkp://keyserver.ubuntu.com:80 \ + --recv-keys 5301FA4FD93244FBC6F6149982BB6851C64F6880 && \ + echo \ + "deb https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu noble main" > \ + /etc/apt/sources.list.d/xtradeb.list && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get install --no-install-recommends -y \ + chromium \ dolphin \ - firefox \ gwenview \ kde-config-gtk-style \ kdialog \ @@ -42,9 +44,12 @@ RUN \ kwrite \ plasma-desktop \ plasma-workspace \ - plymouth-theme-kubuntu-logo \ qml-module-qt-labs-platform \ systemsettings && \ + echo "**** application tweaks ****" && \ + sed -i \ + 's#^Exec=.*#Exec=/usr/local/bin/wrapped-chromium#g' \ + /usr/share/applications/chromium.desktop && \ echo "**** kde tweaks ****" && \ sed -i \ 's/applications:org.kde.discover.desktop,/applications:org.kde.konsole.desktop,/g' \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 2d663326..798f324c 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-kasmvnc:arm64v8-ubuntunoble +FROM ghcr.io/linuxserver/baseimage-selkies:arm64v8-ubuntunoble # set version label ARG BUILD_DATE @@ -10,21 +10,23 @@ ARG DEBIAN_FRONTEND="noninteractive" # title ENV TITLE="Ubuntu KDE" -# prevent Ubuntu's firefox stub from being installed -COPY /root/etc/apt/preferences.d/firefox-no-snap /etc/apt/preferences.d/firefox-no-snap - RUN \ echo "**** add icon ****" && \ curl -o \ - /kclient/public/icon.png \ + /usr/share/selkies/www/icon.png \ https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/webtop-logo.png && \ echo "**** install packages ****" && \ - add-apt-repository -y ppa:mozillateam/ppa && \ + apt-key adv \ + --keyserver hkp://keyserver.ubuntu.com:80 \ + --recv-keys 5301FA4FD93244FBC6F6149982BB6851C64F6880 && \ + echo \ + "deb https://ppa.launchpadcontent.net/xtradeb/apps/ubuntu noble main" > \ + /etc/apt/sources.list.d/xtradeb.list && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get install --no-install-recommends -y \ + chromium \ dolphin \ - firefox \ gwenview \ kde-config-gtk-style \ kdialog \ @@ -42,9 +44,12 @@ RUN \ kwrite \ plasma-desktop \ plasma-workspace \ - plymouth-theme-kubuntu-logo \ qml-module-qt-labs-platform \ systemsettings && \ + echo "**** application tweaks ****" && \ + sed -i \ + 's#^Exec=.*#Exec=/usr/local/bin/wrapped-chromium#g' \ + /usr/share/applications/chromium.desktop && \ echo "**** kde tweaks ****" && \ sed -i \ 's/applications:org.kde.discover.desktop,/applications:org.kde.konsole.desktop,/g' \ diff --git a/Jenkinsfile b/Jenkinsfile index aa7de7b3..1c396627 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -30,8 +30,8 @@ pipeline { MULTIARCH='true' CI='true' CI_WEB='true' - CI_PORT='3000' - CI_SSL='false' + CI_PORT='3001' + CI_SSL='true' CI_DELAY='120' CI_DOCKERENV='TZ=US/Pacific' CI_AUTH='user:password' diff --git a/jenkins-vars.yml b/jenkins-vars.yml index e44807c3..1a254b98 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -19,8 +19,8 @@ repo_vars: - MULTIARCH='true' - CI='true' - CI_WEB='true' - - CI_PORT='3000' - - CI_SSL='false' + - CI_PORT='3001' + - CI_SSL='true' - CI_DELAY='120' - CI_DOCKERENV='TZ=US/Pacific' - CI_AUTH='user:password' diff --git a/root/defaults/autostart b/root/defaults/autostart new file mode 100644 index 00000000..ca916d09 --- /dev/null +++ b/root/defaults/autostart @@ -0,0 +1 @@ +exit 0 diff --git a/root/defaults/startwm.sh b/root/defaults/startwm.sh index 17c2d897..2b48cf4f 100755 --- a/root/defaults/startwm.sh +++ b/root/defaults/startwm.sh @@ -1,12 +1,5 @@ #!/bin/bash -# Enable Nvidia GPU support if detected -if which nvidia-smi; then - export LIBGL_KOPPER_DRI2=1 - export MESA_LOADER_DRIVER_OVERRIDE=zink - export GALLIUM_DRIVER=zink -fi - # Disable compositing and screen lock if [ ! -f $HOME/.config/kwinrc ]; then kwriteconfig5 --file $HOME/.config/kwinrc --group Compositing --key Enabled false @@ -14,8 +7,55 @@ fi if [ ! -f $HOME/.config/kscreenlockerrc ]; then kwriteconfig5 --file $HOME/.config/kscreenlockerrc --group Daemon --key Autolock false fi + +# Power related setterm blank 0 setterm powerdown 0 -# Launch DE -/usr/bin/dbus-launch /usr/bin/startplasma-x11 > /dev/null 2>&1 +# Direcotries +sudo rm -f /usr/share/dbus-1/system-services/org.freedesktop.UDisks2.service +mkdir -p "${HOME}/.config/autostart" "${HOME}/.XDG" "${HOME}/.local/share/" +chmod 700 "${HOME}/.XDG" +touch "${HOME}/.local/share/user-places.xbel" + +# Background perm loop +if [ ! -d $HOME/.config/kde.org ]; then + ( + loop_end_time=$((SECONDS + 30)) + while [ $SECONDS -lt $loop_end_time ]; do + find "$HOME/.cache" "$HOME/.config" "$HOME/.local" -type f -perm 000 -exec chmod 644 {} + 2>/dev/null + sleep .1 + done + ) & +fi + +# Create startup script if it does not exist (keep in sync with openbox) +STARTUP_FILE="${HOME}/.config/autostart/autostart.desktop" +if [ ! -f "${STARTUP_FILE}" ]; then + echo "[Desktop Entry]" > $STARTUP_FILE + echo "Exec=bash /config/.config/openbox/autostart" >> $STARTUP_FILE + echo "Icon=dialog-scripts" >> $STARTUP_FILE + echo "Name=autostart" >> $STARTUP_FILE + echo "Path=" >> $STARTUP_FILE + echo "Type=Application" >> $STARTUP_FILE + echo "X-KDE-AutostartScript=true" >> $STARTUP_FILE + chmod +x $STARTUP_FILE +fi + +# Check for any render nodes +for node in /dev/dri/renderD*; do + if [ -e "$node" ]; then + render_node_exists=true + break + fi +done +# Enable Zink support if detected +if [ "$render_node_exists" = true ] && [ "${DISABLE_ZINK}" == "false" ]; then + export LIBGL_KOPPER_DRI2=1 + export MESA_LOADER_DRIVER_OVERRIDE=zink + export GALLIUM_DRIVER=zink +fi + +# Stat DE +unset LD_PRELOAD +dbus-launch /usr/bin/startplasma-x11 > /dev/null 2>&1 diff --git a/root/etc/apt/preferences.d/firefox-no-snap b/root/etc/apt/preferences.d/firefox-no-snap deleted file mode 100644 index 9406bcc0..00000000 --- a/root/etc/apt/preferences.d/firefox-no-snap +++ /dev/null @@ -1,3 +0,0 @@ -Package: firefox* -Pin: release o=Ubuntu* -Pin-Priority: -1 diff --git a/root/usr/local/bin/wrapped-chromium b/root/usr/local/bin/wrapped-chromium new file mode 100755 index 00000000..bfad4dad --- /dev/null +++ b/root/usr/local/bin/wrapped-chromium @@ -0,0 +1,15 @@ +#! /bin/bash + +BIN=/usr/bin/chromium + +# Cleanup +if ! pgrep chromium > /dev/null;then + rm -f $HOME/.config/chromium/Singleton* +fi + +# Run normally on privved containers or modified un non priv +if grep -q 'Seccomp:.0' /proc/1/status; then + ${BIN} --password-store=basic "$@" +else + ${BIN} --password-store=basic --no-sandbox --test-type "$@" +fi