diff --git a/main/postmarketos-ui-cage/APKBUILD b/main/postmarketos-ui-cage/APKBUILD new file mode 100644 index 000000000..7302bda6e --- /dev/null +++ b/main/postmarketos-ui-cage/APKBUILD @@ -0,0 +1,46 @@ +# Maintainer: Vitaliy Ognev +pkgname=postmarketos-ui-cage +pkgver=1.0.0 +pkgrel=0 +pkgdesc="(Wayland) Kiosk WM" +arch="all" +url="https://postmarketos.org/" +license="GPL-3.0-or-later" +source=" + cage-ui.desktop + cage-ui-session.sh +" +install="$pkgname.post-install" +_pmb_recommends="postmarketos-demos" +_pmb_groups="seat" +options="!check" +depends=" + dnsmasq + postmarketos-base-ui + postmarketos-base-ui-networkmanager + wpa_supplicant + wireless-tools + wlr-randr + xwayland + cage + dbus + dbus-openrc + seatd + seatd-openrc + elogind + elogind-openrc + psmisc + tinydm +" + +package() { + mkdir -p pkg/$pkgname + + install -Dm755 "$srcdir"/cage-ui-session.sh -t "$pkgdir"/usr/share/cage-ui/ + install -Dm644 "$srcdir"/cage-ui.desktop -t "$pkgdir"/usr/share/wayland-sessions/ +} + +sha512sums=" +b556bcff9bb62ca6580da5e1749aa4d6b8244ebb5213292a348075196704cc919f8060bff8da66c6f61a1aa071b7ae4d81fddf1b3747e89809196459bc2595d8 cage-ui.desktop +15c3dd09cfd36e42c102c0c6065e47a7c67f9cc12fea641758e88b93e146b3b549bf5828191816ceaf35222c417fbb4b31173d6c4e9003fd23c834aa9b9f985e cage-ui-session.sh +" diff --git a/main/postmarketos-ui-cage/cage-ui-session.sh b/main/postmarketos-ui-cage/cage-ui-session.sh new file mode 100644 index 000000000..315a7c0d4 --- /dev/null +++ b/main/postmarketos-ui-cage/cage-ui-session.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +if [ -d /etc/cage-ui ]; then + for script in /etc/cage-ui/*.sh; do + # shellcheck source=/dev/null # since we do not control these scripts + . "$script" + done +fi + +if [ -z "$CAGE_UI_COMMAND" ]; then + if command -v postmarketos-demos >/dev/null 2>&1; then + CAGE_UI_COMMAND=postmarketos-demos + else + echo "No command to run. Cage-UI expects a command to be run" + echo "defined in environment variable named CAGE_UI_COMMAND." + exit 1 + fi +fi + +exec "$CAGE_UI_COMMAND" diff --git a/main/postmarketos-ui-cage/cage-ui.desktop b/main/postmarketos-ui-cage/cage-ui.desktop new file mode 100644 index 000000000..dc57d7764 --- /dev/null +++ b/main/postmarketos-ui-cage/cage-ui.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Cage-UI +Name[en]=Cage-UI +Comment=This session logs you into Cage-UI +Comment[en]=This session logs in you into Cage-UI +Exec=dbus-run-session -- cage -d -s -- /usr/share/cage-ui/cage-ui-session.sh +TryExec=/usr/bin/cage-ui +Icon= +Type=Application +X-DesktopNames=Cage-UI +Keywords=launch;desktop;session; \ No newline at end of file diff --git a/main/postmarketos-ui-cage/postmarketos-ui-cage.post-install b/main/postmarketos-ui-cage/postmarketos-ui-cage.post-install new file mode 100644 index 000000000..90b71155f --- /dev/null +++ b/main/postmarketos-ui-cage/postmarketos-ui-cage.post-install @@ -0,0 +1,7 @@ +#!/bin/sh + +rc-update add seatd default +rc-update add elogind default +rc-update add tinydm default + +tinydm-set-session -s /usr/share/wayland-sessions/cage-ui.desktop