diff --git a/arch/install-config.sh b/arch/install-config.sh new file mode 100755 index 0000000..5034a47 --- /dev/null +++ b/arch/install-config.sh @@ -0,0 +1,88 @@ +#!/bin/bash + +# +# This script is for Arch Linux to configure XRDP for enhanced session mode +# +# The configuration is adapted from the Ubuntu 16.04 script. +# + +if [ $(id -u) -ne 0 ] ; then + echo 'This script must be run with root privileges' >&2 + exit 1 +fi + +# Use Qi to check for exact package name +if ! pacman -Qi xrdp > /dev/null ; then + echo 'xrdp not installed. Run makepkg.sh first to install xrdp.' >&2 + exit 1 +fi + +# Use Qs to allow xorgxrdp-devel-git +if ! pacman -Qs xorgxrdp > /dev/null ; then + echo 'xorgxrdp not installed. Run makepkg.sh first to install xorgxrdp.' >&2 + exit 1 +fi + +############################################################################### +# Configure XRDP +# +systemctl enable xrdp +systemctl enable xrdp-sesman + +# Configure the installed XRDP ini files. +# use vsock transport. +sed -i_orig -e 's/use_vsock=false/use_vsock=true/g' /etc/xrdp/xrdp.ini +# use rdp security. +sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini +# remove encryption validation. +sed -i_orig -e 's/crypt_level=high/crypt_level=none/g' /etc/xrdp/xrdp.ini +# disable bitmap compression since its local its much faster +sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini +# +# sed -n -e 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini + +# use the default lightdm x display +# sed -i_orig -e 's/X11DisplayOffset=10/X11DisplayOffset=0/g' /etc/xrdp/sesman.ini +# rename the redirected drives to 'shared-drives' +sed -i_orig -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini + +# Change the allowed_users +echo "allowed_users=anybody" > /etc/X11/Xwrapper.config + + +#Ensure hv_sock gets loaded +if [ ! -e /etc/modules-load.d/hv_sock.conf ] ; then + echo "hv_sock" > /etc/modules-load.d/hv_sock.conf +fi + +# Configure the policy xrdp session +cat >/etc/polkit-1/rules.d/02-allow-colord.rules </etc/pam.d/xrdp-sesman <&2 + exit 1 +fi + +############################################################################### +# Prepare by installing build tools. +# +# Partial upgrades aren't supported in arch. +sudo pacman -Syu --needed --noconfirm base base-devel git + +# Create a build directory in tmpfs +mkdir /tmp/build && cd "$_" + +############################################################################### +# XRDP +# +( + git clone https://aur.archlinux.org/xrdp.git + cd xrdp + makepkg -sri --noconfirm +) +############################################################################### +# XORGXRDP +# Devel version, because release version includes a bug crashing gnome-settings-daemon +( + git clone https://aur.archlinux.org/xorgxrdp-devel-git.git + cd xorgxrdp-devel-git + makepkg -sri --noconfirm +) +############################################################################### +