diff --git a/main/postmarketos-ui-i3wm/60-lightdm-autologin.conf b/main/postmarketos-ui-i3wm/60-lightdm-autologin.conf
index 5558523ae8f130cd67c5aa7aa9580905707240b3..83f4c39344d9bf6fe25c55b3dccaac8f1d29e7af 100644
--- a/main/postmarketos-ui-i3wm/60-lightdm-autologin.conf
+++ b/main/postmarketos-ui-i3wm/60-lightdm-autologin.conf
@@ -2,4 +2,4 @@
 [Seat:*]
 autologin-user=username
 autologin-user-timeout=0
-autologin-session=i3
+autologin-session=i3-postmarketOS
diff --git a/main/postmarketos-ui-i3wm/APKBUILD b/main/postmarketos-ui-i3wm/APKBUILD
index 09cfd7b57fb9e24674b0b878a0ae2d85d956d564..bfcca632d7873acecf68bb6fbda2825119b0339c 100644
--- a/main/postmarketos-ui-i3wm/APKBUILD
+++ b/main/postmarketos-ui-i3wm/APKBUILD
@@ -1,23 +1,31 @@
 # Contributor: Martijn Braam <martijn@brixit.nl>
 # Maintainer: Martijn Braam <martijn@brixit.nl>
 pkgname=postmarketos-ui-i3wm
-pkgver=0.3
-pkgrel=4
+pkgver=0.4
+pkgrel=0
 pkgdesc="(X11) Tiling WM (keyboard required)"
 url="https://i3wm.org"
 arch="noarch"
 license="GPL-3.0-or-later"
 depends="xorg-server mesa-egl i3wm i3status dmenu xset xinput st lightdm lightdm-openrc"
 install="$pkgname.post-install $pkgname.pre-deinstall $pkgname.post-deinstall $pkgname.post-upgrade"
-source="lock.sh 60-lightdm-autologin.conf"
+source="lock.sh
+	60-lightdm-autologin.conf
+	xinitrc_i3.sh
+	i3-postmarketOS.desktop"
 options="!check"
 
 package() {
 	install -D -m755 "$srcdir"/lock.sh \
 		"$pkgdir"/usr/bin/lock.sh
 
-	install -Dm644 "$srcdir"/60-lightdm-autologin.conf \
+	install -D -m755 "$srcdir"/xinitrc_i3.sh \
+		"$pkgdir"/usr/bin/xinitrc_i3
+
+	install -D -m644 "$srcdir"/60-lightdm-autologin.conf \
 		"$pkgdir"/usr/share/lightdm/lightdm.conf.d/60-autologin.conf
 }
 sha512sums="2165141499a830beb33ee42e410ba39104f3e70cd61507f0607115d421846104659fa7e9d4193b3394f7384fc33c2233269bb61c99d5d8a2368aa83500e54b35  lock.sh
-60f4e1f3314ce8de6b92a2eb642f199c5ed24a18981958d787f0e876fa629598340cf467ab991dda4e3927ed6b11011dc0357bdcf0e5f1baac444939b4647445  60-lightdm-autologin.conf"
+082d52fbb28a9737e6c8ddfa12bf8e6b2b510ca22db438f2d38a0f6fcc780830f803e211c7e575df32a2313ad1c16fbd06f52229eb14d377ff0719541fdc2118  60-lightdm-autologin.conf
+e8be35b2cacdf1d633dfedc794d8179a062d4152c23fb737629daec394a2a6b1cfa47ae3546554ea76e985526d82cfc5e4bb519db22137f79539b964293dd43f  xinitrc_i3.sh
+65577a166d21d670ec3657fd33e65ad3648b8bc816ea13903dd5b58ad50e64a6cf2e36a8b78532fc9733cb31e18bc5a8327b7b2d7dd36946d456a576dddcd22b  i3-postmarketOS.desktop"
diff --git a/main/postmarketos-ui-i3wm/i3-postmarketOS.desktop b/main/postmarketos-ui-i3wm/i3-postmarketOS.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..307b1275ba0d34c9328df9cd6539bc654c0105dd
--- /dev/null
+++ b/main/postmarketos-ui-i3wm/i3-postmarketOS.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=i3
+Comment=improved dynamic tiling window manager
+Exec=xinitrc_i3
+TryExec=xinitrc_i3
+Type=Application
+X-LightDM-DesktopName=i3
+DesktopNames=i3
+Keywords=tiling;wm;windowmanager;window;manager;
diff --git a/main/postmarketos-ui-i3wm/xinitrc_i3.sh b/main/postmarketos-ui-i3wm/xinitrc_i3.sh
new file mode 100644
index 0000000000000000000000000000000000000000..46191bac9eaa253c86934f20fcbf434b06648de7
--- /dev/null
+++ b/main/postmarketos-ui-i3wm/xinitrc_i3.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# Set default wallpapers
+mkdir -p ~/.backgrounds
+for i in 1 2 3 4; do
+	source=/usr/share/themes/alpha/backgrounds/wallpaper$i.png
+	destination=~/.backgrounds/background-$i.png
+	[ -e "$destination" ] || ln -s "$source" "$destination"
+done
+
+# Set XDG_RUNTIME_DIR as per https://wiki.alpinelinux.org/wiki/Wayland
+if test -z "${XDG_RUNTIME_DIR}"; then
+	XDG_RUNTIME_DIR=/tmp/$(id -u)-runtime-dir
+	export XDG_RUNTIME_DIR
+	if ! test -d "${XDG_RUNTIME_DIR}"; then
+		mkdir "${XDG_RUNTIME_DIR}"
+		chmod 0700 "${XDG_RUNTIME_DIR}"
+	fi
+fi
+
+# Start dbus and export its environment variables
+eval "$(dbus-launch --sh-syntax --exit-with-session)"
+
+# Start X11 with Hildon
+export LC_MESSAGES=en_US.UTF-8
+export CLUTTER_BACKEND=x11
+exec hildon-desktop