ubuntu xfce rebase to selkies, set sane defaults, use chromium (#313)

This commit is contained in:
Ryan Kuba 2025-06-17 14:52:03 +00:00 committed by GitHub
parent 35cef2762d
commit 33d486945a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 285 additions and 36 deletions

0
.editorconfig Executable file → Normal file
View File

0
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Executable file → Normal file
View File

0
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Executable file → Normal file
View File

0
.github/workflows/call_issue_pr_tracker.yml vendored Executable file → Normal file
View File

0
.github/workflows/call_issues_cron.yml vendored Executable file → Normal file
View File

0
.github/workflows/permissions.yml vendored Executable file → Normal file
View File

View File

@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-kasmvnc:ubuntunoble
FROM ghcr.io/linuxserver/baseimage-selkies:ubuntunoble
# set version label
ARG BUILD_DATE
@ -9,26 +9,40 @@ LABEL maintainer="thelamer"
# title
ENV TITLE="Ubuntu XFCE"
# 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 \
firefox \
chromium \
mousepad \
xfce4-terminal \
xfce4 \
xubuntu-default-settings \
xubuntu-icon-theme && \
echo "**** xfce tweaks ****" && \
sed -i \
's#^Exec=.*#Exec=/usr/local/bin/wrapped-chromium#g' \
/usr/share/applications/chromium.desktop && \
mv \
/usr/bin/exo-open \
/usr/bin/exo-open-real && \
mv \
/usr/bin/thunar \
/usr/bin/thunar-real && \
mv \
/usr/bin/chromium \
/usr/bin/chromium-browser && \
rm -f \
/etc/xdg/autostart/xscreensaver.desktop && \
echo "**** cleanup ****" && \

View File

@ -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
@ -9,26 +9,40 @@ LABEL maintainer="thelamer"
# title
ENV TITLE="Ubuntu XFCE"
# 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 \
firefox \
chromium \
mousepad \
xfce4-terminal \
xfce4 \
xubuntu-default-settings \
xubuntu-icon-theme && \
echo "**** xfce tweaks ****" && \
sed -i \
's#^Exec=.*#Exec=/usr/local/bin/wrapped-chromium#g' \
/usr/share/applications/chromium.desktop && \
mv \
/usr/bin/exo-open \
/usr/bin/exo-open-real && \
mv \
/usr/bin/thunar \
/usr/bin/thunar-real && \
mv \
/usr/bin/chromium \
/usr/bin/chromium-browser && \
rm -f \
/etc/xdg/autostart/xscreensaver.desktop && \
echo "**** cleanup ****" && \

4
Jenkinsfile vendored
View File

@ -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'

View File

@ -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'

View File

@ -7,20 +7,11 @@ if which nvidia-smi; then
export GALLIUM_DRIVER=zink
fi
# Disable compositing
setterm blank 0
setterm powerdown 0
if [ ! -f "${HOME}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml ]; then
mkdir -p "${HOME}"/.config/xfce4/xfconf/xfce-perchannel-xml/
cat <<EOT >> "${HOME}"/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfwm4" version="1.0">
<property name="general" type="empty">
<property name="use_compositing" type="bool" value="false"/>
</property>
</channel>
EOT
# Default settings
if [ ! -d "${HOME}"/.config/xfce4/xfconf/xfce-perchannel-xml ]; then
mkdir -p "${HOME}"/.config/xfce4/xfconf/xfce-perchannel-xml
cp /defaults/xfce/* "${HOME}"/.config/xfce4/xfconf/xfce-perchannel-xml/
fi
# Launch DE
/usr/bin/xfce4-session > /dev/null 2>&1
# Start DE
dbus-launch /usr/bin/xfce4-session > /dev/null 2>&1

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-panel" version="1.0">
<property name="configver" type="int" value="2"/>
<property name="panels" type="array">
<value type="int" value="1"/>
<property name="dark-mode" type="bool" value="true"/>
<property name="panel-1" type="empty">
<property name="position" type="string" value="p=6;x=0;y=0"/>
<property name="length" type="uint" value="100"/>
<property name="position-locked" type="bool" value="true"/>
<property name="icon-size" type="uint" value="16"/>
<property name="size" type="uint" value="26"/>
<property name="plugin-ids" type="array">
<value type="int" value="1"/>
<value type="int" value="2"/>
<value type="int" value="3"/>
<value type="int" value="4"/>
<value type="int" value="5"/>
<value type="int" value="6"/>
<value type="int" value="8"/>
<value type="int" value="11"/>
<value type="int" value="12"/>
<value type="int" value="13"/>
<value type="int" value="14"/>
</property>
</property>
</property>
<property name="plugins" type="empty">
<property name="plugin-1" type="string" value="applicationsmenu"/>
<property name="plugin-2" type="string" value="tasklist">
<property name="grouping" type="uint" value="1"/>
</property>
<property name="plugin-3" type="string" value="separator">
<property name="expand" type="bool" value="true"/>
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-4" type="string" value="pager"/>
<property name="plugin-5" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-6" type="string" value="systray">
<property name="square-icons" type="bool" value="true"/>
</property>
<property name="plugin-8" type="string" value="pulseaudio">
<property name="enable-keyboard-shortcuts" type="bool" value="true"/>
<property name="show-notifications" type="bool" value="true"/>
</property>
<property name="plugin-11" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-12" type="string" value="clock"/>
<property name="plugin-13" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-14" type="string" value="actions"/>
</property>
</channel>

View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfwm4" version="1.0">
<property name="general" type="empty">
<property name="use_compositing" type="bool" value="false"/>
<property name="activate_action" type="string" value="bring"/>
<property name="borderless_maximize" type="bool" value="true"/>
<property name="box_move" type="bool" value="false"/>
<property name="box_resize" type="bool" value="false"/>
<property name="button_layout" type="string" value="O|SHMC"/>
<property name="button_offset" type="int" value="0"/>
<property name="button_spacing" type="int" value="0"/>
<property name="click_to_focus" type="bool" value="true"/>
<property name="cycle_apps_only" type="bool" value="false"/>
<property name="cycle_draw_frame" type="bool" value="true"/>
<property name="cycle_raise" type="bool" value="false"/>
<property name="cycle_hidden" type="bool" value="true"/>
<property name="cycle_minimum" type="bool" value="true"/>
<property name="cycle_minimized" type="bool" value="false"/>
<property name="cycle_preview" type="bool" value="true"/>
<property name="cycle_tabwin_mode" type="int" value="0"/>
<property name="cycle_workspaces" type="bool" value="false"/>
<property name="double_click_action" type="string" value="maximize"/>
<property name="double_click_distance" type="int" value="5"/>
<property name="double_click_time" type="int" value="250"/>
<property name="easy_click" type="string" value="Alt"/>
<property name="focus_delay" type="int" value="250"/>
<property name="focus_hint" type="bool" value="true"/>
<property name="focus_new" type="bool" value="true"/>
<property name="frame_opacity" type="int" value="100"/>
<property name="frame_border_top" type="int" value="0"/>
<property name="full_width_title" type="bool" value="true"/>
<property name="horiz_scroll_opacity" type="bool" value="false"/>
<property name="inactive_opacity" type="int" value="100"/>
<property name="maximized_offset" type="int" value="0"/>
<property name="mousewheel_rollup" type="bool" value="true"/>
<property name="move_opacity" type="int" value="100"/>
<property name="placement_mode" type="string" value="center"/>
<property name="placement_ratio" type="int" value="20"/>
<property name="popup_opacity" type="int" value="100"/>
<property name="prevent_focus_stealing" type="bool" value="false"/>
<property name="raise_delay" type="int" value="250"/>
<property name="raise_on_click" type="bool" value="true"/>
<property name="raise_on_focus" type="bool" value="false"/>
<property name="raise_with_any_button" type="bool" value="true"/>
<property name="repeat_urgent_blink" type="bool" value="false"/>
<property name="resize_opacity" type="int" value="100"/>
<property name="scroll_workspaces" type="bool" value="true"/>
<property name="shadow_delta_height" type="int" value="0"/>
<property name="shadow_delta_width" type="int" value="0"/>
<property name="shadow_delta_x" type="int" value="0"/>
<property name="shadow_delta_y" type="int" value="-3"/>
<property name="shadow_opacity" type="int" value="50"/>
<property name="show_app_icon" type="bool" value="false"/>
<property name="show_dock_shadow" type="bool" value="true"/>
<property name="show_frame_shadow" type="bool" value="true"/>
<property name="show_popup_shadow" type="bool" value="false"/>
<property name="snap_resist" type="bool" value="false"/>
<property name="snap_to_border" type="bool" value="true"/>
<property name="snap_to_windows" type="bool" value="false"/>
<property name="snap_width" type="int" value="10"/>
<property name="vblank_mode" type="string" value="auto"/>
<property name="theme" type="string" value="Greybird-dark"/>
<property name="tile_on_move" type="bool" value="true"/>
<property name="title_alignment" type="string" value="center"/>
<property name="title_font" type="string" value="Sans Bold 9"/>
<property name="title_horizontal_offset" type="int" value="0"/>
<property name="titleless_maximize" type="bool" value="false"/>
<property name="title_shadow_active" type="string" value="false"/>
<property name="title_shadow_inactive" type="string" value="false"/>
<property name="title_vertical_offset_active" type="int" value="0"/>
<property name="title_vertical_offset_inactive" type="int" value="0"/>
<property name="toggle_workspaces" type="bool" value="false"/>
<property name="unredirect_overlays" type="bool" value="true"/>
<property name="urgent_blink" type="bool" value="false"/>
<property name="workspace_count" type="int" value="4"/>
<property name="wrap_cycle" type="bool" value="true"/>
<property name="wrap_layout" type="bool" value="true"/>
<property name="wrap_resistance" type="int" value="10"/>
<property name="wrap_windows" type="bool" value="false"/>
<property name="wrap_workspaces" type="bool" value="false"/>
<property name="zoom_desktop" type="bool" value="true"/>
<property name="zoom_pointer" type="bool" value="true"/>
<property name="workspace_names" type="array">
<value type="string" value="Workspace 1"/>
<value type="string" value="Workspace 2"/>
<value type="string" value="Workspace 3"/>
<value type="string" value="Workspace 4"/>
</property>
</property>
</channel>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
<property name="ThemeName" type="string" value="Greybird-dark"/>
<property name="IconThemeName" type="string" value="elementary-xfce-dark"/>
<property name="DoubleClickTime" type="empty"/>
<property name="DoubleClickDistance" type="empty"/>
<property name="DndDragThreshold" type="empty"/>
<property name="CursorBlink" type="empty"/>
<property name="CursorBlinkTime" type="empty"/>
<property name="SoundThemeName" type="empty"/>
<property name="EnableEventSounds" type="empty"/>
<property name="EnableInputFeedbackSounds" type="empty"/>
</property>
<property name="Xft" type="empty">
<property name="DPI" type="empty"/>
<property name="Antialias" type="empty"/>
<property name="Hinting" type="empty"/>
<property name="HintStyle" type="empty"/>
<property name="RGBA" type="empty"/>
</property>
<property name="Gtk" type="empty">
<property name="CanChangeAccels" type="empty"/>
<property name="ColorPalette" type="empty"/>
<property name="FontName" type="empty"/>
<property name="MonospaceFontName" type="empty"/>
<property name="IconSizes" type="empty"/>
<property name="KeyThemeName" type="empty"/>
<property name="ToolbarStyle" type="empty"/>
<property name="ToolbarIconSize" type="empty"/>
<property name="MenuImages" type="empty"/>
<property name="ButtonImages" type="empty"/>
<property name="MenuBarAccel" type="empty"/>
<property name="CursorThemeName" type="empty"/>
<property name="CursorThemeSize" type="empty"/>
<property name="DecorationLayout" type="empty"/>
<property name="DialogsUseHeader" type="empty"/>
<property name="TitlebarMiddleClick" type="empty"/>
</property>
<property name="Gdk" type="empty">
<property name="WindowScalingFactor" type="empty"/>
</property>
</channel>

View File

@ -1,3 +0,0 @@
Package: firefox*
Pin: release o=Ubuntu*
Pin-Priority: -1

15
root/usr/bin/chromium Executable file
View File

@ -0,0 +1,15 @@
#! /bin/bash
BIN=/usr/bin/chromium-browser
# 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} --no-first-run --password-store=basic "$@"
else
${BIN} --no-first-run --password-store=basic --no-sandbox --test-type "$@"
fi

7
root/usr/bin/exo-open Executable file
View File

@ -0,0 +1,7 @@
#! /bin/bash
if [ "${2}" == "WebBrowser" ]; then
/usr/bin/xdg-open /usr/share/applications/chromium.desktop
else
/usr/bin/exo-open-real "$@"
fi

3
root/usr/bin/thunar Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
unset LD_PRELOAD
thunar-real "$@"

View File

@ -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