For Linux I use homedir:=expandfilename('~/');
For Windows:
var
PIDL : PItemIDList;
Folder : array[0..MAX_PATH] of Char;
const CSIDL_PERSONAL = $0005;
begin
SHGetSpecialFolderLocation(0, CSIDL_PERSONAL, PIDL);
SHGetPathFromIDList(PIDL, Folder);
homedir:=Folder;