ARG BASE_TAG="develop"
ARG BASE_IMAGE="core-debian-bookworm"
FROM kasmweb/$BASE_IMAGE:$BASE_TAG

USER root

ENV HOME /home/kasm-default-profile
ENV STARTUPDIR /dockerstartup
WORKDIR $HOME

### Envrionment config
ENV DEBIAN_FRONTEND=noninteractive \
		SKIP_CLEAN=true \
		KASM_RX_HOME=$STARTUPDIR/kasmrx \
		DONT_PROMPT_WSL_INSTALL="No_Prompt_please" \
		INST_DIR=$STARTUPDIR/install

# Setup repos
RUN \
	wget https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg -O /usr/share/keyrings/vscodium-archive-keyring.asc \
	&& echo 'deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.asc ] https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs vscodium main' | tee /etc/apt/sources.list.d/vscodium.list \
	&& apt-get update \
	&& apt-get upgrade -y

# Fonts whee
RUN apt-get install -y fonts-recommended fonts-symbola fonts-glasstty fonts-firacode
# Essential stuff
RUN apt-get install -y \
	xdotool nano zip wget curl htop iotop bash-completion \
	vlc \
	git \
	build-essential \
	python-is-python3 \
	xarchiver \
	thunar-archive-plugin

# Java
RUN apt-get install -y default-jre
# Firefox
RUN apt-get install -y firefox-esr firefox-esr-l10n-fi && cp /usr/share/applications/firefox-esr.desktop $HOME/Desktop
COPY firefox-policies.json /etc/firefox/policies/policies.json
# Thunderbird
RUN apt-get install -y thunderbird thunderbird-l10n-fi && cp /usr/share/applications/thunderbird.desktop $HOME/Desktop
# Libreoffice
RUN apt-get install -y libreoffice libreoffice-l10n-fi && cp /usr/share/applications/libreoffice-startcenter.desktop $HOME/Desktop
# GIMP
RUN apt-get install -y gimp && cp /usr/share/applications/gimp.desktop $HOME/Desktop
# VSCodium
RUN \
	apt-get install codium \
	&& sed -i 's#/usr/share/codium/codium#/usr/share/codium/codium --no-sandbox##' /usr/share/applications/codium.desktop \
	&& cp /usr/share/applications/codium.desktop $HOME/Desktop
# Obsidian
RUN \
	curl -s https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest \
		| grep "browser_download_url.*amd64.deb" \
		| cut -d : -f 2,3 \
		| tr -d \" \
		| wget -i - -O obsidian.deb \
	&& dpkg -i obsidian.deb \
 	&& sed -i 's#/opt/Obsidian/obsidian#/opt/Obsidian/obsidian --no-sandbox##' /usr/share/applications/obsidian.desktop \
	&& cp /usr/share/applications/obsidian.desktop $HOME/Desktop \
	&& rm obsidian.deb


# Desktop icons
RUN \
	cp \
		/usr/share/applications/xfce4-terminal.desktop \
		$HOME/Desktop \
	&& chmod +x $HOME/Desktop/*.desktop \
	&& chown 1000:1000 $HOME/Desktop/*.desktop

# Configs
COPY etc /etc/
COPY user-config $HOME/.config
COPY bg_default.png /usr/share/backgrounds/bg_default.png

# Cleanup and stuff
# Services we don't want to start disable in xfce init
RUN \
	rm -f \
		/etc/xdg/autostart/blueman.desktop \
		/etc/xdg/autostart/geoclue-demo-agent.desktop \
		/etc/xdg/autostart/gnome-keyring-pkcs11.desktop \
		/etc/xdg/autostart/gnome-keyring-secrets.desktop \
		/etc/xdg/autostart/gnome-keyring-ssh.desktop \
		/etc/xdg/autostart/gnome-shell-overrides-migration.desktop \
		/etc/xdg/autostart/light-locker.desktop \
		/etc/xdg/autostart/org.gnome.Evolution-alarm-notify.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.A11ySettings.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Color.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Datetime.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Housekeeping.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Keyboard.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.MediaKeys.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Power.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.PrintNotifications.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Rfkill.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Sharing.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Smartcard.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Sound.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.UsbProtection.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Wacom.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.Wwan.desktop \
		/etc/xdg/autostart/org.gnome.SettingsDaemon.XSettings.desktop \
		/etc/xdg/autostart/pulseaudio.desktop \
		/etc/xdg/autostart/xfce4-power-manager.desktop \
		/etc/xdg/autostart/xfce4-screensaver.desktop \
		/etc/xdg/autostart/xfce-polkit.desktop \
		/etc/xdg/autostart/xscreensaver.desktop
# Bins we don't want in the final image
RUN \
	if which gnome-keyring-daemon; then \
  		rm -f $(which gnome-keyring-daemon); \
	fi
# File cleanups
RUN \
	rm -Rf \
		/home/kasm-default-profile/.cache \
		/home/kasm-user/.cache \
		/tmp \
		/var/lib/apt/lists/* \
		/var/tmp/* \
	&& mkdir -m 1777 /tmp

# Finalize
RUN \
	$STARTUPDIR/set_user_permission.sh $HOME && \
	rm -f /etc/X11/xinit/Xclients && \
	chown 1000:0 $HOME && \
	mkdir -p /home/kasm-user && \
	chown -R 1000:0 /home/kasm-user && \
	rm -Rf ${INST_DIR}

# Userspace Runtime
ENV HOME /home/kasm-user
WORKDIR $HOME
USER 1000

CMD ["--tail-log"]