diff --git a/.docker/kde/Dockerfile b/.docker/kde/Dockerfile
new file mode 100644
index 00000000..13d65730
--- /dev/null
+++ b/.docker/kde/Dockerfile
@@ -0,0 +1,21 @@
+ARG BASE_IMAGE=m1k1o/neko:base
+FROM $BASE_IMAGE
+
+#
+# install kde
+RUN set -eux; apt-get update; \
+ apt-get install -y --no-install-recommends kde-full kwin-x11 sudo; \
+ #
+ # add user to sudoers
+ usermod -aG sudo neko; \
+ echo "neko:neko" | chpasswd; \
+ echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers; \
+ # clean up
+ apt remove xserver-xorg-legacy -y; \
+ apt-get clean -y; \
+ rm -rf /var/lib/apt/lists/* /var/cache/apt/*
+
+#
+# copy configuation files
+COPY supervisord.conf /etc/neko/supervisord/kde.conf
+
diff --git a/.docker/kde/supervisord.conf b/.docker/kde/supervisord.conf
new file mode 100644
index 00000000..e07b58fd
--- /dev/null
+++ b/.docker/kde/supervisord.conf
@@ -0,0 +1,23 @@
+[program:kde]
+environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
+command=/usr/bin/startplasma-x11
+stopsignal=INT
+autorestart=true
+priority=500
+user=%(ENV_USER)s
+stdout_logfile=/var/log/neko/kde.log
+stdout_logfile_maxbytes=100MB
+stdout_logfile_backups=10
+redirect_stderr=true
+
+[program:kwin]
+environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
+command=/usr/bin/kwin_x11
+stopsignal=INT
+autorestart=true
+priority=500
+user=%(ENV_USER)s
+stdout_logfile=/var/log/neko/kwin.log
+stdout_logfile_maxbytes=100MB
+stdout_logfile_backups=10
+redirect_stderr=true
diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml
index 194505e1..8799164e 100644
--- a/.github/workflows/dockerhub.yml
+++ b/.github/workflows/dockerhub.yml
@@ -50,7 +50,7 @@ jobs:
# Will build all images even if some fail.
fail-fast: false
matrix:
- tags: [ firefox, chromium, google-chrome, ungoogled-chromium, microsoft-edge, brave, vivaldi, opera, tor-browser, remmina, vlc, xfce ]
+ tags: [ firefox, chromium, google-chrome, ungoogled-chromium, microsoft-edge, brave, vivaldi, opera, tor-browser, remmina, vlc, xfce, kde ]
env:
DOCKER_TAG: ${{ matrix.tags }}
steps:
diff --git a/.github/workflows/ghcr-amd.yml b/.github/workflows/ghcr-amd.yml
index 5f1620ac..c36144d3 100644
--- a/.github/workflows/ghcr-amd.yml
+++ b/.github/workflows/ghcr-amd.yml
@@ -81,6 +81,7 @@ jobs:
- tag: remmina
- tag: vlc
- tag: xfce
+ - tag: kde
env:
TAG_NAME: ${{ matrix.tag }}
steps:
diff --git a/.github/workflows/ghcr-intel.yml b/.github/workflows/ghcr-intel.yml
index 67efd5de..ef07ab0d 100644
--- a/.github/workflows/ghcr-intel.yml
+++ b/.github/workflows/ghcr-intel.yml
@@ -81,6 +81,7 @@ jobs:
- tag: remmina
- tag: vlc
- tag: xfce
+ - tag: kde
env:
TAG_NAME: ${{ matrix.tag }}
DOCKERFILE: ${{ matrix.dockerfile }}
diff --git a/README.md b/README.md
index 089fc6c9..2012f0c9 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ Then I found [this](https://github.com/nurdism/neko) project and started to dig
Neko started as a virtual browser that is streamed using WebRTC to multiple users.
- It is **not only limited to a browser**; it can run anything that runs on linux (e.g. VLC). Browser only happens to be the most popular and widely used use-case.
-- In fact, it is not limited to a single program either; you can install a full desktop environment (e.g. XFCE).
+- In fact, it is not limited to a single program either; you can install a full desktop environment (e.g. XFCE, KDE).
- Speaking of limits, it does not need to run in a container; you could install neko on your host, connect to your X server and control your whole VM.
- Theoretically it is not limited to only X server, anything that can be controlled and scraped periodically for images could be used instead.
- Like implementing RDP or VNC protocol, where neko would only act as WebRTC relay server. This is currently only future.
@@ -99,6 +99,7 @@ Compared to clientless remote desktop gateway (e.g. [Apache Guacamole](https://g
+
... others in m1k1o/neko-apps
diff --git a/docs/_media/icons/kde.svg b/docs/_media/icons/kde.svg
new file mode 100644
index 00000000..5de2486d
--- /dev/null
+++ b/docs/_media/icons/kde.svg
@@ -0,0 +1,8 @@
+
+
diff --git a/docs/changelog.md b/docs/changelog.md
index 05dbbd48..6246a295 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -4,6 +4,7 @@
### New Features
- Added AV1 tag, metadata and pipeline. Unfortunately does not work yet, since the encoding is way too slow (by @mbattista).
+- Added `m1k1o/neko:kde` tag as an alternative to `m1k1o/neko:xfce`.
### Bugs
- Fixed TCP mux occasional freeze by adding write buffer to it.
diff --git a/docs/getting-started/README.md b/docs/getting-started/README.md
index a961d981..b5ebab89 100644
--- a/docs/getting-started/README.md
+++ b/docs/getting-started/README.md
@@ -12,6 +12,7 @@
+
Use the following docker images from [Docker Hub](https://hub.docker.com/r/m1k1o/neko) for x86_64:
@@ -28,7 +29,7 @@ Use the following docker images from [Docker Hub](https://hub.docker.com/r/m1k1o
- Pass env var `REMMINA_URL=://[[:]@]server[:port]` (proto being `vnc`, `rdp` or `spice`).
- Or create your custom configuration with remmina locally (it's saved in `~/.local/share/remmina/path_to_profile.remmina`) and bind-mount it, then pass env var `REMMINA_PROFILE=`.
- `m1k1o/neko:vlc` - for VLC Video player (needs volume mounted to `/media` with local video files, or setting `VLC_MEDIA=/media` path).
-- `m1k1o/neko:xfce` - for a shared desktop / installing shared software.
+- `m1k1o/neko:xfce` or `m1k1o/neko:kde` - for a shared desktop / installing shared software.
- `m1k1o/neko:base` - for custom base.
Dockerhub images are built using GitHub actions on every push and on weekly basis to keep all browsers up-to-date.
@@ -47,6 +48,7 @@ All images are also available on [GitHub Container Registry](https://github.com/
- `ghcr.io/m1k1o/neko/remmina:latest`
- `ghcr.io/m1k1o/neko/vlc:latest`
- `ghcr.io/m1k1o/neko/xfce:latest`
+- `ghcr.io/m1k1o/neko/kde:latest`
For ARM-based images (like Raspberry Pi - with GPU hardware acceleration, Oracle Cloud ARM tier). Currently, not all images are available for ARM, because not all applications are available for ARM.
@@ -70,6 +72,7 @@ For images with VAAPI GPU hardware acceleration using intel drivers use:
- `ghcr.io/m1k1o/neko/intel-remmina:latest`
- `ghcr.io/m1k1o/neko/intel-vlc:latest`
- `ghcr.io/m1k1o/neko/intel-xfce:latest`
+- `ghcr.io/m1k1o/neko/intel-kde:latest`
GHCR images are built using GitHub actions for every tag.