diff --git a/kde/10-tigervnc.sh b/kde/10-tigervnc.sh new file mode 100755 index 0000000..03c02ac --- /dev/null +++ b/kde/10-tigervnc.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash +# Check for MYVNC_VNCPASS variable +if [ -z ${MYVNC_VNCPASS} ] +then + echo "MYVNC_VNCPASS env variable is missing" + exit 1 +fi + +# Configure tigervnc auth +if [ ! -f ~/.vnc/passwd ] +then + echo "${MYVNC_VNCPASS}" | vncpasswd -f >~/.vnc/passwd + chmod 0600 ~/.vnc/passwd +fi + +# Remove VNCPASS env +unset MYVNC_VNCPASS + +# VNC xstartup +install /dev/stdin ~/.vnc/xstartup <<- xstartup +#!/usr/bin/env bash +unset SESSION_MANAGER +unset DBUS_SESSION_BUS_ADDRESS +exec ${STARTXBIN} +xstartup + +# 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=i3 +geometry=1920x1080 +framerate=60 +depth=32 +${_MYVNC_VNCSHARING} +vncconfig + +# i3 preferences +mkdir -p ~/.config/i3/config.d +cat >~/.config/i3/config <<- 'i3config' +# Font +font pango:DejaVu Sans Mono 8 + +# Include custom config +include ~/.config/i3/config.d/*.conf + +# Binds for killing application +bindsym Mod1+Mod4+Shift+q kill +bindsym Mod1+Mod4+Shift+f fullscreen toggle + +# Binds for cycling workspaces +bindsym Mod1+Mod4+Shift+Right workspace next +bindsym Mod1+Mod4+Shift+Left workspace prev + +# Locked mode +mode locked { + bindsym Mod4+Mod1+Escape mode default +} +bindsym Mod4+Mod1+Escape mode locked + +# Hide bar permanently +exec --no-startup-id i3-msg bar mode invisible + +# Always open window in fullscreen +for_window [all] fullscreen enable +for_window [all] border none +default_border none + +# Execute startup script for webapp +exec --no-startup-id /bin/bash ~/.config/i3/startapp.sh +i3config diff --git a/kde/90-tigervnc.sh b/kde/90-tigervnc.sh new file mode 100755 index 0000000..70cf0a9 --- /dev/null +++ b/kde/90-tigervnc.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# Launch Tigervnc +vncserver :0 & diff --git a/kde/Dockerfile b/kde/Dockerfile new file mode 100644 index 0000000..d5edb27 --- /dev/null +++ b/kde/Dockerfile @@ -0,0 +1,21 @@ +# syntax = docker/dockerfile:1 +FROM myvnc/base +USER root + +# Build ARG: use "root" for debugging +ARG debug + +# X session environment variable +ENV STARTXBIN=i3 + +# Run +RUN apk add --no-cache \ + tigervnc \ + i3wm \ + font-dejavu + +# Tigervnc initialization scripts +COPY *.sh /app/init.d/ + +# Reset user +USER ${debug:-user} \ No newline at end of file diff --git a/kde/build b/kde/build new file mode 100755 index 0000000..afe01d5 --- /dev/null +++ b/kde/build @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# Docker build +# Optional: buildtag +DOCKER_BUILDKIT=1 \ +docker build . \ + --build-arg debug=${debug:-""} \ + --tag ${buildtag:-myvnc/base:i3} \ No newline at end of file