This thought for only launcher of x.org because when launch classical “startx”, the last launch will use. I created a alias on .bashrc for simpler use.
#!/bin/bash xdef="openbox-session" case $1 in kde) echo "startkde" > $HOME/.xinitrc startx ;; gnome) echo "gnome-session" > $HOME/.xinitrc startx ;; openbox) echo "openbox-session" > $HOME/.xinitrc startx ;; def) echo $xdef > $HOME/.xinitrc startx ;; *) echo "options: kde, gnome, openbox, def" ;; esac