This package lets you enable minor modes based on file name and
contents.  To find the right modes, it checks filenames against
patterns in ‘auto-minor-mode-alist’ and file contents against
‘auto-minor-mode-magic-alist’.  These work like the built-in Emacs
variables ‘auto-mode-alist’ and ‘magic-mode-alist’.

Unlike major modes, all matching minor modes are enabled, not only
the first match.

A reason you might want to use it:
  (add-to-list 'auto-minor-mode-alist '("-theme\\.el\\'" . rainbow-mode))

There’s intentionally no equivalent of ‘interpreter-mode-alist’.
Interpreters should determine the major mode.  Relevant minor
modes can then be enabled by major mode hooks.

Minor modes are set whenever ‘set-auto-mode’, the built-in function
responsible for handling automatic major modes, is called.

If you also use ‘use-package’, two new keywords are added, ‘:minor’
and ‘:magic-minor’, which register entries in these alists.  You
must load (and not defer) ‘auto-minor-mode’ before using these
keywords for other packages.