From a8f8d7d7222a1840527bd8557001ad763e5b0530 Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 31 Mar 2026 11:46:30 -0400 Subject: [PATCH 1/2] not ready, wps office seems to not function properly with wtype to input non english characters this works fine in X11 mode, has multiple rendering issues --- Dockerfile | 23 ++++++++++++++++------- root/defaults/autostart_wayland | 14 +++++++++++--- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index bf75342..fa8715f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,9 @@ LABEL maintainer="thelamer" # title ENV TITLE=WPS-Office \ NO_FULL=true \ - NO_GAMEPAD=true + NO_GAMEPAD=true \ + PIXELFLUX_WAYLAND=true \ + SELKIES_DESKTOP=true RUN \ echo "**** add icon ****" && \ @@ -26,12 +28,6 @@ RUN \ qt6-base \ tint2 \ thunar && \ - echo "**** install sfwbar ****" && \ - cd /tmp && \ - git clone https://aur.archlinux.org/sfwbar.git && \ - chown -R abc:abc sfwbar && \ - cd sfwbar && \ - sudo -u abc makepkg -sAci --skipinteg --noconfirm --needed && \ echo "**** install wps-office ****" && \ cd /tmp && \ git clone https://aur.archlinux.org/wps-office-cn.git && \ @@ -63,6 +59,19 @@ RUN \ $(pacman -Qdtq) && \ rm -rf \ /tmp/* \ + /usr/share/applications/avahi-discover.desktop \ + /usr/share/applications/bssh.desktop \ + /usr/share/applications/bvnc.desktop \ + /usr/share/applications/cmake-gui.desktop \ + /usr/share/applications/footclient.desktop \ + /usr/share/applications/foot-server.desktop \ + /usr/share/applications/thunar-bulk-rename.desktop \ + /usr/share/applications/thunar-settings.desktop \ + /usr/share/applications/tint2conf.desktop \ + /usr/share/applications/tint2.desktop \ + /usr/share/applications/uxterm.desktop \ + /usr/share/applications/xfce4-about.desktop \ + /usr/share/applications/xterm.desktop \ /var/cache/pacman/pkg/* \ /var/lib/pacman/sync/* diff --git a/root/defaults/autostart_wayland b/root/defaults/autostart_wayland index 238e412..53b5a6a 100644 --- a/root/defaults/autostart_wayland +++ b/root/defaults/autostart_wayland @@ -1,4 +1,11 @@ +#!/bin/bash + # default file copies first run +if [ ! -f "${HOME}/Desktop/wps-office-prometheus.desktop" ]; then + cp /usr/share/applications/wps-office-prometheus.desktop "${HOME}/Desktop/" + cp /usr/share/applications/chromium.desktop "${HOME}/Desktop/" +fi + if [ ! -f $HOME/.config/Kingsoft/Office.conf ]; then mkdir -p $HOME/.config/Kingsoft echo "[kdcsdk] @@ -7,7 +14,8 @@ NotFirstOpen=true common\\AcceptedEULA=true" > $HOME/.config/Kingsoft/Office.conf fi +gio mime x-scheme-handler/http chromium.desktop +gio mime x-scheme-handler/https chromium.desktop +gio mime application/x-terminal-emulator foot.desktop -# Start UI -sfwbar & -wps +touch "${HOME}/.config/panel-reload" From 186b0950b963b1473778c406bf3f9c025b599fc3 Mon Sep 17 00:00:00 2001 From: thelamer Date: Sat, 11 Apr 2026 20:01:47 -0400 Subject: [PATCH 2/2] add changelog --- README.md | 36 ++++++++++++++++++++++++++++++++---- readme-vars.yml | 1 + 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e18f0e8..30bee9e 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,9 @@ To use hardware acceleration in Wayland mode, we distinguish between the card us * `DRINODE`: The path to the GPU used for **Rendering** (EGL). * `DRI_NODE`: The path to the GPU used for **Encoding** (VAAPI/NVENC). -If both variables point to the same device, the container will automatically enable **Zero Copy** encoding, significantly reducing CPU usage and latency. +If both variables point to the same device, the container will automatically enable **Zero Copy** encoding, significantly reducing CPU usage and latency. If they are set to different devices one will be used for **Rendering** and one for **Encoding** with a cpu readback. + +You can also use the environment variable `AUTO_GPU=true`, with this set the first card detected in the container (IE `/dev/dri/renderD128`) will be used and configured for **Zero Copy**. ##### Intel & AMD (Open Source Drivers) @@ -122,13 +124,34 @@ For Intel and AMD GPUs. ##### Nvidia (Proprietary Drivers) +**Note: Nvidia support is currently considered experimental, driver changes can break it at any time.** + **Note: Nvidia support is not available for Alpine-based images.** +**Note: Nvidia frames have issues with hardware decoders in Chromium browsers you need to navigate to `chrome://flags/#disable-accelerated-video-decode` and toggle it to `Disabled` for smooth playback** + **Prerequisites:** -1. **Driver:** Proprietary drivers **580 or higher** are required. -2. **Kernel Parameter:** Set `nvidia-drm.modeset=1` in your host bootloader (GRUB/systemd-boot). -3. **Initialization:** On headless systems, run `nvidia-modprobe --modeset` on the host (once per boot) to initialize the card. +1. **Driver:** Proprietary drivers **580 or higher** are required. **Crucially, you should install the driver using the `.run` file downloaded directly from the Nvidia website.** + * **Unraid:** Use the production branch from the Nvidia Driver Plugin. + +2. **Kernel Parameter:** You must set `nvidia-drm.modeset=1 nvidia_drm.fbdev=1` in your host bootloader. + * **Standard Linux (GRUB):** Edit `/etc/default/grub` and add the parameter to your existing `GRUB_CMDLINE_LINUX_DEFAULT` line: + + ```text + GRUB_CMDLINE_LINUX_DEFAULT=" nvidia-drm.modeset=1 nvidia_drm.fbdev=1" + ``` + + Then apply the changes by running: + + ```bash + sudo update-grub + ``` + + * **Unraid (Syslinux):** Edit the file `/boot/syslinux/syslinux.cfg` and add `nvidia-drm.modeset=1 nvidia_drm.fbdev=1` to the end of the `append` line for the Unraid OS boot entry. + +3. **Hardware Initialization:** **On headless systems, the Nvidia video card requires a physical dummy plug inserted into the GPU so that DRM initializes properly.** + 4. **Docker Runtime:** Configure the host docker daemon to use the Nvidia runtime: ```bash @@ -157,6 +180,8 @@ services: capabilities: [compute,video,graphics,utility] ``` +* **Unraid:** Ensure you're properly setting the DRINODE/DRI_NODE and adding `--gpus all --runtime nvidia` to your extra parameters. + ### SealSkin Compatibility This container is compatible with [SealSkin](https://sealskin.app). @@ -177,12 +202,14 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse | Variable | Description | | :----: | --- | | PIXELFLUX_WAYLAND | **Experimental** If set to true the container will initialize in Wayland mode running [Smithay](https://github.com/Smithay/smithay) and Labwc while enabling zero copy encoding with a GPU | +| SELKIES_DESKTOP | If set to true and in Wayland mode, a simple panel will be initialized with labwc | | CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default `3000` | | CUSTOM_HTTPS_PORT | Internal port the container listens on for https if it needs to be swapped from the default `3001` | | CUSTOM_WS_PORT | Internal port the container listens on for websockets if it needs to be swapped from the default 8082 | | CUSTOM_USER | HTTP Basic auth username, abc is default. | | DRI_NODE | **Encoding GPU**: Enable VAAPI/NVENC stream encoding and use the specified device IE `/dev/dri/renderD128` | | DRINODE | **Rendering GPU**: Specify which GPU to use for EGL/3D acceleration IE `/dev/dri/renderD129` | +| AUTO_GPU | If set to true and in Wayland mode, we will automatically use the first GPU available for encoding and rendering IE `/dev/dri/renderD128` | | PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth | | SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` | | TITLE | The page title displayed on the web browser, default "Selkies" | @@ -612,6 +639,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **11.04.26:** - Make Wayland default disable with PIXELFLUX_WAYLAND=false. * **21.03.26:** - Use Wayland ozone platform for chromium fixes scaling and acceleration. * **28.12.25:** - Add Wayland init logic. * **10.07.25:** - Rebase to Selkies HTTPS IS NOW REQUIRED, merge chinese and english image. diff --git a/readme-vars.yml b/readme-vars.yml index 56909da..d1adcbe 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -100,6 +100,7 @@ init_diagram: | "wps-office:latest" <- Base Images # changelog changelogs: + - {date: "11.04.26:", desc: "Make Wayland default disable with PIXELFLUX_WAYLAND=false."} - {date: "21.03.26:", desc: "Use Wayland ozone platform for chromium fixes scaling and acceleration."} - {date: "28.12.25:", desc: "Add Wayland init logic."} - {date: "10.07.25:", desc: "Rebase to Selkies HTTPS IS NOW REQUIRED, merge chinese and english image."}