emacs: Find Init
51.4.4 How Emacs Finds Your Init File
-------------------------------------
Normally Emacs uses the environment variable ‘HOME’ (HOME General
Variables.) to find ‘.emacs’; that’s what ‘~’ means in a file name. If
‘.emacs’ is not found inside ‘~/’ (nor ‘.emacs.el’), Emacs looks for
‘~/.emacs.d/init.el’ (which, like ‘~/.emacs.el’, can be byte-compiled).
However, if you run Emacs from a shell started by ‘su’, Emacs tries
to find your own ‘.emacs’, not that of the user you are currently
pretending to be. The idea is that you should get your own editor
customizations even if you are running as the super user.
More precisely, Emacs first determines which user’s init file to use.
It gets your user name from the environment variables ‘LOGNAME’ and
‘USER’; if neither of those exists, it uses effective user-ID. If that
user name matches the real user-ID, then Emacs uses ‘HOME’; otherwise,
it looks up the home directory corresponding to that user name in the
system’s data base of users.