Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Gnus (Emacs's mail client) creates directories ~/Mail/ and ~/News. I don't want to clutter my home folder, how can i change this directories to, say, ~/.emacs.d/mail/ and ~/.emacs.d/news/?

share|improve this question
up vote 7 down vote accepted

First i executed apropos-value ~/Mail/. It threw me many variables, that contain this string in their values. On my Debian i installed package emacs24-el so i could track down these variables in code. I ran describe-variable on the variable nnfolder-directory, which value was ~/Mail/. In went to the code and found out it's initialized like this:

(defvoo nnfolder-directory (expand-file-name message-directory))

The same was with the varible nndraft-directory that contained value ~/News/, which actually came from variable gnus-directory. For some reason the directory ~/Mail/archive/ is still created, i think nnfolder-directory is initialized before i set message-directory in init file.

Resume: to change your mail and news directories, put this into init file:

(setq message-directory "~/.emacs.d/mail/")
(setq gnus-directory "~/.emacs.d/news/")
(setq nnfolder-directory "~/.emacs.d/mail/archive")
share|improve this answer
    
What about the drafts directory and the sent directory? – incandescentman Jul 28 '15 at 19:59
    
Thanks for the tip about apropos-value – I had no idea one could do that! – unhammer Jul 1 at 6:32

I've traced the problem sindikat observed (that for some reason the directory ~/Mail/archive/ is still created). At first I thought there was indeed a bug in gnus initialization code which I've reported here:

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18284

But then I realized that the message-directory setting was being overriden by a previous definition in my newsrc file. So you will have to edit your newsrc and remove the offending definition in order to remove every trace of the default setting.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .