Compare commits
25 Commits
f5bc5c507b
...
v216
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ba5712784 | ||
|
|
0c21d5e626 | ||
|
|
5be7976f0a | ||
|
|
959769a05c | ||
|
|
6883446078 | ||
|
|
dc02217869 | ||
|
|
968880f2cc | ||
|
|
01e08053a2 | ||
|
|
6fd275c24b | ||
|
|
f3294ccbdc | ||
|
|
5a9a1d969e | ||
|
|
71b2f80c3a | ||
|
|
00e50f9bb5 | ||
|
|
9b5bffe885 | ||
|
|
106fc86664 | ||
|
|
b11206ea40 | ||
|
|
208f30a208 | ||
|
|
933f557a3e | ||
|
|
4a45adaa58 | ||
|
|
558f1ec368 | ||
|
|
29799461a9 | ||
|
|
a0a0b44fdc | ||
|
|
cdbd8bdcec | ||
|
|
fad6c80479 | ||
|
|
bf90f2e2c9 |
28
.github/workflows/main.yml
vendored
28
.github/workflows/main.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
|||||||
contents: "read"
|
contents: "read"
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
arch: ["native", "amd64", "arm64v8"]
|
arch: ["arm64v8"]
|
||||||
steps:
|
steps:
|
||||||
- name: "Checkout project"
|
- name: "Checkout project"
|
||||||
uses: "actions/checkout@v4"
|
uses: "actions/checkout@v4"
|
||||||
@@ -32,7 +32,7 @@ jobs:
|
|||||||
make IMAGE_BUILD_OPTS="--pull" "build-${{ matrix.arch }}-image" "save-${{ matrix.arch }}-image"
|
make IMAGE_BUILD_OPTS="--pull" "build-${{ matrix.arch }}-image" "save-${{ matrix.arch }}-image"
|
||||||
- name: "Upload artifacts"
|
- name: "Upload artifacts"
|
||||||
if: "startsWith(github.ref, 'refs/tags/v') && matrix.arch != 'native'"
|
if: "startsWith(github.ref, 'refs/tags/v') && matrix.arch != 'native'"
|
||||||
uses: "actions/upload-artifact@v4"
|
uses: "christopherhx/gitea-upload-artifact@v4"
|
||||||
with:
|
with:
|
||||||
name: "dist-${{ matrix.arch }}"
|
name: "dist-${{ matrix.arch }}"
|
||||||
path: "./dist/"
|
path: "./dist/"
|
||||||
@@ -47,21 +47,19 @@ jobs:
|
|||||||
contents: "read"
|
contents: "read"
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
arch: ["amd64", "arm64v8"]
|
arch: ["arm64v8"]
|
||||||
steps:
|
steps:
|
||||||
- name: "Checkout project"
|
- name: "Checkout project"
|
||||||
uses: "actions/checkout@v4"
|
uses: "actions/checkout@v4"
|
||||||
- name: "Download artifacts"
|
- name: "Download artifacts"
|
||||||
uses: "actions/download-artifact@v4"
|
uses: "christopherhx/gitea-download-artifact@v4"
|
||||||
with:
|
with:
|
||||||
name: "dist-${{ matrix.arch }}"
|
name: "dist-${{ matrix.arch }}"
|
||||||
path: "./dist/"
|
path: "./dist/"
|
||||||
- name: "Login to Docker Hub"
|
# - name: "Login to Docker Hub"
|
||||||
uses: "docker/login-action@v3"
|
# uses: "docker/login-action@v3"
|
||||||
with:
|
# with:
|
||||||
registry: "docker.io"
|
# registry: "d.lilpenguins.com"
|
||||||
username: "${{ secrets.DOCKERHUB_USERNAME }}"
|
|
||||||
password: "${{ secrets.DOCKERHUB_TOKEN }}"
|
|
||||||
- name: "Load and push image"
|
- name: "Load and push image"
|
||||||
run: |
|
run: |
|
||||||
make "load-${{ matrix.arch }}-image" "push-${{ matrix.arch }}-image"
|
make "load-${{ matrix.arch }}-image" "push-${{ matrix.arch }}-image"
|
||||||
@@ -76,12 +74,10 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: "Checkout project"
|
- name: "Checkout project"
|
||||||
uses: "actions/checkout@v4"
|
uses: "actions/checkout@v4"
|
||||||
- name: "Login to Docker Hub"
|
# - name: "Login to Docker Hub"
|
||||||
uses: "docker/login-action@v3"
|
# uses: "docker/login-action@v3"
|
||||||
with:
|
# with:
|
||||||
registry: "docker.io"
|
# registry: "d.lilpenguins.com"
|
||||||
username: "${{ secrets.DOCKERHUB_USERNAME }}"
|
|
||||||
password: "${{ secrets.DOCKERHUB_TOKEN }}"
|
|
||||||
- name: "Push manifest"
|
- name: "Push manifest"
|
||||||
run: |
|
run: |
|
||||||
make push-cross-manifest
|
make push-cross-manifest
|
||||||
|
|||||||
36
.github/workflows/rebuild-latest-release.yml
vendored
36
.github/workflows/rebuild-latest-release.yml
vendored
@@ -1,22 +1,22 @@
|
|||||||
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
|
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
|
||||||
name: "Rebuild latest release"
|
#name: "Rebuild latest release"
|
||||||
|
|
||||||
on:
|
#on:
|
||||||
schedule:
|
# schedule:
|
||||||
- cron: "20 04 * * 1"
|
# - cron: "20 04 * * 1"
|
||||||
workflow_dispatch:
|
# workflow_dispatch:
|
||||||
|
|
||||||
permissions: {}
|
#permissions: {}
|
||||||
|
|
||||||
jobs:
|
#jobs:
|
||||||
trigger-rebuild:
|
# trigger-rebuild:
|
||||||
name: "Trigger rebuild"
|
# name: "Trigger rebuild"
|
||||||
runs-on: "ubuntu-latest"
|
# runs-on: "ubuntu-latest"
|
||||||
permissions:
|
# permissions:
|
||||||
actions: "write"
|
# actions: "write"
|
||||||
contents: "read"
|
# contents: "read"
|
||||||
steps:
|
# steps:
|
||||||
- name: "Trigger rebuild"
|
# - name: "Trigger rebuild"
|
||||||
uses: "hectorm/ghaction-trigger-workflow@04c79e7a4e0c0b94bbcff3829f38359e34f1ea9e"
|
# uses: "hectorm/ghaction-trigger-workflow@04c79e7a4e0c0b94bbcff3829f38359e34f1ea9e"
|
||||||
with:
|
# with:
|
||||||
workflow-id: "main.yml"
|
# workflow-id: "main.yml"
|
||||||
|
|||||||
@@ -4,13 +4,14 @@ m4_changequote([[, ]])
|
|||||||
## "build" stage
|
## "build" stage
|
||||||
##################################################
|
##################################################
|
||||||
|
|
||||||
m4_ifdef([[CROSS_ARCH]], [[FROM docker.io/CROSS_ARCH/ubuntu:24.04]], [[FROM docker.io/ubuntu:24.04]]) AS build
|
m4_ifdef([[CROSS_ARCH]], [[FROM dtcooper/raspberrypi-os:latest]], [[FROM dtcooper/raspberrypi-os:latest]]) AS build
|
||||||
|
|
||||||
SHELL ["/bin/sh", "-euc"]
|
SHELL ["/bin/sh", "-euc"]
|
||||||
|
|
||||||
# Enable source repositories
|
# Enable source repositories
|
||||||
RUN <<-EOF
|
RUN <<-EOF
|
||||||
sed -i '/^Types: deb$/s/$/ deb-src/' /etc/apt/sources.list.d/ubuntu.sources
|
sed -i '/^Types: deb$/s/$/ deb-src/' /etc/apt/sources.list.d/debian.sources
|
||||||
|
sed -i '/^Components: main$/s/$/ contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian.sources
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Install packages
|
# Install packages
|
||||||
@@ -26,11 +27,13 @@ RUN <<-EOF
|
|||||||
cmake \
|
cmake \
|
||||||
dbus-x11 \
|
dbus-x11 \
|
||||||
devscripts \
|
devscripts \
|
||||||
|
doxygen \
|
||||||
dpkg-dev \
|
dpkg-dev \
|
||||||
flex \
|
flex \
|
||||||
git \
|
git \
|
||||||
intltool \
|
intltool \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libdrm-dev \
|
||||||
libegl-dev \
|
libegl-dev \
|
||||||
libegl1-mesa-dev \
|
libegl1-mesa-dev \
|
||||||
libepoxy-dev \
|
libepoxy-dev \
|
||||||
@@ -73,6 +76,7 @@ RUN <<-EOF
|
|||||||
x11-xkb-utils \
|
x11-xkb-utils \
|
||||||
xauth \
|
xauth \
|
||||||
xkb-data \
|
xkb-data \
|
||||||
|
xserver-xorg-core \
|
||||||
xserver-xorg-dev \
|
xserver-xorg-dev \
|
||||||
xsltproc \
|
xsltproc \
|
||||||
xutils-dev \
|
xutils-dev \
|
||||||
@@ -154,7 +158,7 @@ RUN <<-EOF
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Build xrdp
|
# Build xrdp
|
||||||
ARG XRDP_TREEISH=v0.10.2
|
ARG XRDP_TREEISH=v0.10.3
|
||||||
ARG XRDP_REMOTE=https://github.com/neutrinolabs/xrdp.git
|
ARG XRDP_REMOTE=https://github.com/neutrinolabs/xrdp.git
|
||||||
WORKDIR /tmp/xrdp/
|
WORKDIR /tmp/xrdp/
|
||||||
RUN <<-EOF
|
RUN <<-EOF
|
||||||
@@ -186,7 +190,7 @@ RUN <<-EOF
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Build xorgxrdp
|
# Build xorgxrdp
|
||||||
ARG XORGXRDP_TREEISH=v0.10.3
|
ARG XORGXRDP_TREEISH=v0.10.4
|
||||||
ARG XORGXRDP_REMOTE=https://github.com/neutrinolabs/xorgxrdp.git
|
ARG XORGXRDP_REMOTE=https://github.com/neutrinolabs/xorgxrdp.git
|
||||||
WORKDIR /tmp/xorgxrdp/
|
WORKDIR /tmp/xorgxrdp/
|
||||||
RUN <<-EOF
|
RUN <<-EOF
|
||||||
@@ -205,7 +209,7 @@ RUN <<-EOF
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Build xrdp PulseAudio module
|
# Build xrdp PulseAudio module
|
||||||
ARG XRDP_PULSEAUDIO_TREEISH=v0.7
|
ARG XRDP_PULSEAUDIO_TREEISH=v0.8
|
||||||
ARG XRDP_PULSEAUDIO_REMOTE=https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
|
ARG XRDP_PULSEAUDIO_REMOTE=https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
|
||||||
WORKDIR /tmp/
|
WORKDIR /tmp/
|
||||||
RUN <<-EOF
|
RUN <<-EOF
|
||||||
@@ -233,7 +237,7 @@ EOF
|
|||||||
## "main" stage
|
## "main" stage
|
||||||
##################################################
|
##################################################
|
||||||
|
|
||||||
m4_ifdef([[CROSS_ARCH]], [[FROM docker.io/CROSS_ARCH/ubuntu:24.04]], [[FROM docker.io/ubuntu:24.04]]) AS main
|
m4_ifdef([[CROSS_ARCH]], [[FROM dtcooper/raspberrypi-os:latest]], [[FROM dtcooper/raspberrypi-os:latest]]) AS main
|
||||||
|
|
||||||
SHELL ["/bin/sh", "-euc"]
|
SHELL ["/bin/sh", "-euc"]
|
||||||
|
|
||||||
@@ -244,6 +248,11 @@ RUN <<-EOF
|
|||||||
find /etc/apt/preferences.d/ -type f -not -perm 0644 -exec chmod 0644 '{}' ';'
|
find /etc/apt/preferences.d/ -type f -not -perm 0644 -exec chmod 0644 '{}' ';'
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
RUN <<-EOF
|
||||||
|
sed -i '/^Types: deb$/s/$/ deb-src/' /etc/apt/sources.list.d/debian.sources
|
||||||
|
sed -i '/^Components: main$/s/$/ contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian.sources
|
||||||
|
EOF
|
||||||
|
|
||||||
# Install base packages
|
# Install base packages
|
||||||
RUN <<-EOF
|
RUN <<-EOF
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
@@ -275,7 +284,7 @@ RUN <<-EOF
|
|||||||
libpam0g \
|
libpam0g \
|
||||||
libpixman-1-0 \
|
libpixman-1-0 \
|
||||||
libpulse0 \
|
libpulse0 \
|
||||||
libssl3t64 \
|
libssl3 \
|
||||||
libsystemd0 \
|
libsystemd0 \
|
||||||
libx11-6 \
|
libx11-6 \
|
||||||
libx11-xcb1 \
|
libx11-xcb1 \
|
||||||
@@ -288,7 +297,7 @@ RUN <<-EOF
|
|||||||
libxml2 \
|
libxml2 \
|
||||||
libxrandr2 \
|
libxrandr2 \
|
||||||
libxshmfence1 \
|
libxshmfence1 \
|
||||||
libxt6t64 \
|
libxt6 \
|
||||||
libxtst6 \
|
libxtst6 \
|
||||||
libxv1 \
|
libxv1 \
|
||||||
locales \
|
locales \
|
||||||
@@ -378,8 +387,7 @@ RUN <<-EOF
|
|||||||
gnome-keyring \
|
gnome-keyring \
|
||||||
gtk2-engines-pixbuf \
|
gtk2-engines-pixbuf \
|
||||||
htop \
|
htop \
|
||||||
indicator-application \
|
ayatana-indicator-messages \
|
||||||
indicator-messages \
|
|
||||||
iproute2 \
|
iproute2 \
|
||||||
iputils-ping \
|
iputils-ping \
|
||||||
libavcodec-extra \
|
libavcodec-extra \
|
||||||
@@ -434,7 +442,7 @@ RUN <<-EOF
|
|||||||
xfonts-base \
|
xfonts-base \
|
||||||
xinput \
|
xinput \
|
||||||
xterm \
|
xterm \
|
||||||
xubuntu-default-settings \
|
debian-mate-default-settings \
|
||||||
xutils \
|
xutils \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
zenity \
|
zenity \
|
||||||
|
|||||||
4
Makefile
4
Makefile
@@ -10,8 +10,8 @@ M4 := $(shell command -v m4 2>/dev/null)
|
|||||||
DISTDIR := ./dist
|
DISTDIR := ./dist
|
||||||
DOCKERFILE_TEMPLATE := ./Dockerfile.m4
|
DOCKERFILE_TEMPLATE := ./Dockerfile.m4
|
||||||
|
|
||||||
IMAGE_REGISTRY := docker.io
|
IMAGE_REGISTRY := d.lilpenguins.com
|
||||||
IMAGE_NAMESPACE := hectorm
|
IMAGE_NAMESPACE := desktop
|
||||||
IMAGE_PROJECT := xubuntu
|
IMAGE_PROJECT := xubuntu
|
||||||
IMAGE_NAME := $(IMAGE_REGISTRY)/$(IMAGE_NAMESPACE)/$(IMAGE_PROJECT)
|
IMAGE_NAME := $(IMAGE_REGISTRY)/$(IMAGE_NAMESPACE)/$(IMAGE_PROJECT)
|
||||||
ifeq ($(shell '$(GIT)' status --porcelain 2>/dev/null),)
|
ifeq ($(shell '$(GIT)' status --porcelain 2>/dev/null),)
|
||||||
|
|||||||
@@ -1,20 +1,15 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
if [ -z "${VGL_DISPLAY-}" ]; then
|
if [ -z "${VGL_DISPLAY-}" ]; then
|
||||||
# Use the dummy X server if it is enabled
|
# Try to use the EGL backend
|
||||||
if [ "${SERVICE_XORG_HEADLESS_ENABLED:?}" = 'true' ]; then
|
for card in /dev/dri/card*; do
|
||||||
export VGL_DISPLAY=:0.0
|
if /opt/VirtualGL/bin/eglinfo -B "${card:?}" 2>/dev/null; then
|
||||||
else
|
export VGL_DISPLAY="${card:?}"
|
||||||
# Otherwise try to use the EGL backend
|
break
|
||||||
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
|
||||||
|
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
|
fi
|
||||||
|
|||||||
@@ -1,30 +1,20 @@
|
|||||||
Section "Module"
|
Section "Module"
|
||||||
Load "xorgxrdp"
|
Disable "glx"
|
||||||
EndSection
|
|
||||||
|
|
||||||
Section "ServerLayout"
|
|
||||||
Identifier "ServerLayout0"
|
|
||||||
Screen "Screen0"
|
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "ServerFlags"
|
Section "ServerFlags"
|
||||||
Option "DefaultServerLayout" "ServerLayout0"
|
Option "DefaultServerLayout" "ServerLayout0"
|
||||||
Option "DontVTSwitch" "on"
|
Option "DontVTSwitch" "on"
|
||||||
|
Option "PciForceNone" "on"
|
||||||
Option "AutoAddDevices" "off"
|
Option "AutoAddDevices" "off"
|
||||||
Option "AutoAddGPU" "off"
|
Option "AutoAddGPU" "off"
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "Monitor"
|
Section "ServerLayout"
|
||||||
Identifier "Monitor0"
|
Identifier "ServerLayout0"
|
||||||
VendorName "Unknown"
|
Screen "Screen0"
|
||||||
ModelName "Unknown"
|
InputDevice "Keyboard0"
|
||||||
EndSection
|
InputDevice "Mouse0"
|
||||||
|
|
||||||
Section "Device"
|
|
||||||
Identifier "Device0"
|
|
||||||
Driver "xrdpdev"
|
|
||||||
Option "DRMDevice" "/dev/dri/renderD128"
|
|
||||||
Option "DRI3" "1"
|
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
Section "Screen"
|
Section "Screen"
|
||||||
@@ -35,3 +25,26 @@ Section "Screen"
|
|||||||
Modes "800x600"
|
Modes "800x600"
|
||||||
EndSubSection
|
EndSubSection
|
||||||
EndSection
|
EndSection
|
||||||
|
|
||||||
|
Section "Monitor"
|
||||||
|
Identifier "Monitor0"
|
||||||
|
VendorName "Unknown"
|
||||||
|
ModelName "Unknown"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Device"
|
||||||
|
Identifier "Device0"
|
||||||
|
Driver "dummy"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "InputDevice"
|
||||||
|
Identifier "Keyboard0"
|
||||||
|
Driver "void"
|
||||||
|
Option "CoreKeyboard" "true"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "InputDevice"
|
||||||
|
Identifier "Mouse0"
|
||||||
|
Driver "void"
|
||||||
|
Option "CorePointer" "true"
|
||||||
|
EndSection
|
||||||
|
|||||||
@@ -67,13 +67,19 @@ if [ ! -d /run/user/"${UNPRIVILEGED_USER_UID:?}"/ ]; then
|
|||||||
chown "${UNPRIVILEGED_USER_NAME:?}:" /run/user/"${UNPRIVILEGED_USER_UID:?}"/
|
chown "${UNPRIVILEGED_USER_NAME:?}:" /run/user/"${UNPRIVILEGED_USER_UID:?}"/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Disable glx module if /dev/dri/ does not exist
|
||||||
|
if [ ! -d /dev/dri/ ]; then
|
||||||
|
printf '%s\n' '"/dev/dri/" does not exist, glx module will be disabled' 1>&2
|
||||||
|
sed -i 's|Load \("glx"\)|Disable \1|g' /opt/xrdp/etc/X11/xrdp/xorg.conf
|
||||||
|
fi
|
||||||
|
|
||||||
# Enable xrdp bootstrap service
|
# Enable xrdp bootstrap service
|
||||||
if [ "${SERVICE_XRDP_BOOTSTRAP_ENABLED:?}" = 'true' ]; then
|
if [ "${SERVICE_XRDP_BOOTSTRAP_ENABLED:?}" = 'true' ] && [ ! -L "${SVDIR:?}"/xrdp-bootstrap ]; then
|
||||||
ln -s /etc/sv/xrdp-bootstrap "${SVDIR:?}"
|
ln -s /etc/sv/xrdp-bootstrap "${SVDIR:?}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Enable headless X server service
|
# Enable headless X server service
|
||||||
if [ "${SERVICE_XORG_HEADLESS_ENABLED:?}" = 'true' ]; then
|
if [ "${SERVICE_XORG_HEADLESS_ENABLED:?}" = 'true' ] && [ ! -L "${SVDIR:?}"/xorg-headless ]; then
|
||||||
ln -s /etc/sv/xorg-headless "${SVDIR:?}"
|
ln -s /etc/sv/xorg-headless "${SVDIR:?}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
20
wlfreerdp.sh
Executable file
20
wlfreerdp.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
RDP_HOST=127.0.0.1
|
||||||
|
RDP_PORT=3389
|
||||||
|
RDP_DOMAIN=Xorg
|
||||||
|
RDP_USER=user
|
||||||
|
RDP_PASSWORD=password
|
||||||
|
|
||||||
|
exec wlfreerdp3 \
|
||||||
|
/v:"${RDP_HOST:?}":"${RDP_PORT:?}" \
|
||||||
|
/u:"${RDP_DOMAIN:?}"\\"${RDP_USER:?}" /p:"${RDP_PASSWORD:?}" \
|
||||||
|
/log-level:INFO /cert:ignore \
|
||||||
|
/gfx:AVC444v2 /bpp:32 /dynamic-resolution \
|
||||||
|
/audio-mode:0 /sound:sys:pulse,rate:44100 \
|
||||||
|
/microphone:sys:pulse,rate:44100 \
|
||||||
|
+clipboard +home-drive \
|
||||||
|
-compression -encryption
|
||||||
Reference in New Issue
Block a user