8.7 Home Score File

The score file where new score file entries will go is called the home score file. This is normally (and by default) the score file for the group itself. For instance, the home score file for ‘gnu.emacs.gnus’ is gnu.emacs.gnus.SCORE.

However, this may not be what you want. It is often convenient to share a common home score file among many groups—all ‘emacs’ groups could perhaps use the same home score file.

The variable that controls this is gnus-home-score-file. It can be:

  1. A string. Then this file will be used as the home score file for all groups.
  2. A function. The result of this function will be used as the home score file. The function will be called with the name of the group as the parameter.
  3. A list. The elements in this list can be:
    1. (regexp file-name). If the regexp matches the group name, the file-name will be used as the home score file.
    2. A function. If the function returns non-nil, the result will be used as the home score file. The function will be called with the name of the group as the parameter.
    3. A string. Use the string as the home score file.

    The list will be traversed from the beginning towards the end looking for matches.

So, if you want to use just a single score file, you could say:

(setq gnus-home-score-file
      "my-total-score-file.SCORE")

If you want to use gnu.SCORE for all ‘gnu’ groups and rec.SCORE for all ‘rec’ groups (and so on), you can say:

(setq gnus-home-score-file
      'gnus-hierarchial-home-score-file)

This is a ready-made function provided for your convenience. Other functions include

gnus-current-home-score-file

Return the “current” regular score file. This will make scoring commands add entry to the “innermost” matching score file.

If you want to have one score file for the ‘emacs’ groups and another for the ‘comp’ groups, while letting all other groups use their own home score files:

(setq gnus-home-score-file
      ;; All groups that match the regexp "\\.emacs"
      '(("\\.emacs" "emacs.SCORE")
        ;; All the comp groups in one score file
        ("^comp" "comp.SCORE")))

gnus-home-adapt-file works exactly the same way as gnus-home-score-file, but says what the home adaptive score file is instead. All new adaptive file entries will go into the file specified by this variable, and the same syntax is allowed.

In addition to using gnus-home-score-file and gnus-home-adapt-file, you can also use group parameters (see Group Parameters) and topic parameters (see Topic Parameters) to achieve much the same. Group and topic parameters take precedence over this variable.