archlinux/kdeplasma.sh
2024-07-16 20:31:35 +00:00

76 lines
No EOL
1.8 KiB
Bash

## Dockerfile
cat >Dockerfile <<- 'Dockerfile'
# syntax = docker/dockerfile:1.2
FROM myvnc/base
USER root
# X session environment variable
ENV STARTXBIN startplasma-x11
# Install packages
RUN --mount=type=cache,sharing=locked,target=/var/cache/pacman \
pacman -Syu --ask 4 --needed \
cuda openssh vim pacman-contrib bash-completion rsync git \
plasma konsole kate dolphin kompare kcalc \
jack2 ttf-dejavu \
firefox firefox-decentraleyes firefox-ublock-origin \
torbrowser-launcher \
shotwell ffmpegthumbs ark okular \
remmina libvncserver \
&& pacman -Scc --ask 4 \
&& echo 'Cmnd_Alias MISCELLANEOUS = /usr/bin/pacman -S' >/etc/sudoers.d/01-MISCELLANEOUS
# configure nvidia container runtime
# https://github.com/NVIDIA/nvidia-container-runtime#environment-variables-oci-spec
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
# Tigervnc
COPY 20-archvnc.sh /app/init.d/20-archvnc.sh
RUN chmod +x /app/init.d/*
# Reset user home directory
USER user
WORKDIR /home/user
Dockerfile
# KDE setup
cat >20-archvnc.sh <<- 'entrypoint'
#!/usr/bin/env bash
# Disable KDE screenlock
cat >~/.config/kscreenlockerrc <<- 'kscreenlockerrc'
[Daemon]
Autolock=false
LockOnResume=false
Timeout=0
kscreenlockerrc
# Turn vnc sharing on/off
if [[ ${MYVNC_VNCSHARING} == "true" ]] || [[ ${MYVNC_VNCSHARING} == "1" ]]
then
_MYVNC_VNCSHARING=alwaysshared
else
_MYVNC_VNCSHARING=nevershared
fi
# VNC config
cat >~/.vnc/config <<- vncconfig
session=plasmax11
dpi=192
geometry=1920x1080
framerate=60
depth=32
${_MYVNC_VNCSHARING}
vncconfig
# SSH config
if [ -f ~/.ssh/id_ed25519 ]
then
chmod 0600 ~/.ssh/id_ed25519
fi
entrypoint
## Docker build
DOCKER_BUILDKIT=1 docker build ./. \
--tag myvnc/kde \
&& rm -f Dockerfile *.sh