Both xinit and zsh can be told where to find their respective rc files with environment variables: XINITRC for xinit and ZDOTDIR for zsh (for the directory where to find .zshrc, .zshenv, .zlogin, .zlogout, .zcompdump...).
So you could try and seed the environment with those upon login.
For instance, if using a GNU/Linux distribution and the pam_env env modules, you could have:
XINITRC DEFAULT=@{HOME}/.config/x/xinitrc ZDOTDIR DEFAULT=@{HOME}/.config/zsh
in /etc/security/pam_env.conf
Or:
XINITRC=/home/you/.config/x/xinitrc ZDOTDIR=/home/you/.config/zsh
In your ~/.pam_environment (see the pam_env man page for how to change the path of that one as well).