If you store the config file for X (XF86Config) in root's $HOME, then only root will be able to read that config, and if you try to launch X as a different user, that user will be reading the other (bad) XF86Config file.
To fix this, locate the other XF86Config file (usually /usr/X11R6/lib/X11/XF86Config) and rename it to XF86Config.old :
root@host# cd /usr/X11R6/lib/X11
root@host# cp XF86Config XF86Config.old
Then copy root's XF86Config to the same location and make it world readable:
root@host# cp ~/XF86Config /usr/X11R6/lib/X11/
root@host# chmod +r /usr/X11R6/lib/X11/XF86Config
Also, ~/.xinitrc is the file that determine which window manager you will use when starting X. On Slackware, if you use xwmconfig, it will give you a text menu to choose your window manager. In FreeBSD, you have to manually create the file and edit it for your preferred wm.
Example:
user@host$ cd
user@host$ echo startkde > .xinitrc
If you spend more on coffee than on IT security, you will be hacked.
What's more, you deserve to be hacked.
-- former White House cybersecurity czar Richard Clarke