This is how I start plasma through wayland (I use it along with pipewire and wireplumber but you can remove/comment the first if clause if you want to):
startwayland.sh:
#!/usr/bin/sh
if ! wpctl status; then
/usr/bin/pipewire &
/usr/bin/pipewire-pulse &
/usr/bin/wireplumber &
fi
dbus-launch --exit-with-session /usr/bin/startplasma-wayland
I also have this snippet of code in my .zshrc:
if [[ "$UID" != 0 ]]; then
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
## if not found, launch a new one
eval $(dbus-launch --sh-syntax)
echo "D-Bus per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
fi
fi
Oh, BTW! Make sure you've run
pacman -S --needed kwayland-integration xorg-xwayland
So far, it's been working OK.