You actually have a bit of reading to do.
Short answer, you configure dwm by copying its config.def.h file to config.h and editing that file, then recompiling dwm. In FreeBSD you can use your custom config.h with
make 'DWM_CONF=/path-to-your-customized-file install clean
You configure dwm by editing its configuration file, config.h. I have a page on dwm at
https://srobb.net/dwm.html which goes into some basics but more importantly has a link to great article on the Debian forums about configuration.
http://forums.debian.net/viewtopic.php?f=16&t=65110
To do this in FreeBSD, I think the easiest way is to do make extract, which gives you the
/usr/ports/x11-wm/dwm/work/dwm-6.2 directory. I think that's the name, but there's a dwm-<version> directory in work. Take that, edit it to your liking--it's a C file but you don't really need to know C to use it, follow that Debian forums article.
I'm not sure if you have a config.h or just a config.def.h as I've had my own custom config.h hanging around for awhile. If there's no config.h, copy that config.def.h to config.h and work on it. When you're satisified, you can install the port with
make 'DWM_CONF=<where you have your customized config.h file> install clean.
If you want any of the patches from suckless.org, you can put the patch or patches in
/usr/ports/x11-wm/dwm/files.
Your .xinitrc should be something like
feh --bg-scale <my-image> && exec dwm
I'm not sure about compton, never used it. It might be worth removing compton from .xinitrc and seeing if that helps. Once you have it working, you can then get compton working with it.