I use startx to start X which will evaluate my .xinitrc. In my .xinitrc I start my window manager using /usr/bin/mywm. No
startx
.xinitrc
/usr/bin/mywm
sleep infinity does exactly what it suggests and works without cat abuse.
sleep infinity