tl;dr I’m a noob using DooM and it seems I don’t understand variables

Firstly; please forgive the gratuitous image of my RGB Steamdeck / Corne / DOOM Emacs “coffee shop” setup - I’m just enjoying it at the mo, and have a burning desire to share.

After a quick play with Zone I’m trying to setup zone-matrix as my “screensaver”

I did the following:

  1. Pulled the files from zone-matrix githib to .emacs.d/zone/
  2. Added the following to my in my config.el. I realised I was comitting heresy for copying another person’s config (from a stackexchange answer) and braced myself for errors;
(defun tabbar-mode () (lambda (x) (message "%s")))
(add-to-list 'load-path (concat dotfiles-dir "zone"))
(require 'zone-matrix)
(require 'zone-matrix-settings)
(require 'zone-settings)

(setq zone-programs [zone-matrix])
(zone-when-idle 60)

After a doom sync I get an (to be honest expected) error void-variable dotfiles-dir.

The issue I have is with the definition dotfiles-dir - I clearly don’t have that variable set, and wonder which of the following is the least-worst approach:

  1. Because I’m on DooM there is probably already a similar variable set linking to .config/doom/ am I better putting the zone directory in there? If so, do I hard-code the path in the line containing dotfiles-dir?

  2. Should I define a dotfiles-dir or zone-matrix-dir instead? I assume that flies in the face of dotfile conventions?

I’d love to hear your thoughts