Note that the profile is sourced at the top of /usr/sbin/lightdm-session, and the bottom of lightdm-session runs everything in /etc/X11/Xsession.d. The final file is 99x11-common_start, which is exec $STARTUP. Thus this never returns to the exec in lightdm-session. Since 99upstart (from upstart package, so pretty much always present) smashes STARTUP to "init --user", the X session is actually started by upstart--which does not pass through the environment so carefully established in lightdm-session (see "Job environment" in init(5)).
Consensus on askubuntu ( http://askubuntu.com/search?q=profile.d ) seems to be "a graphical login shell is not a login shell," which basically requires the treatment of every new terminal window as a new "login shell" if there's to be a rational environment in there. If this was ever considered a bug, it appears to have reverted now.
I've been digging through this specifically on Xubuntu 14.04, but again, the players involved seem to be pretty deep in the stack.
Note that the profile is sourced at the top of /usr/sbin/ lightdm- session, and the bottom of lightdm-session runs everything in /etc/X11/ Xsession. d. The final file is 99x11-common_start, which is exec $STARTUP. Thus this never returns to the exec in lightdm-session. Since 99upstart (from upstart package, so pretty much always present) smashes STARTUP to "init --user", the X session is actually started by upstart--which does not pass through the environment so carefully established in lightdm-session (see "Job environment" in init(5)).
Consensus on askubuntu ( http:// askubuntu. com/search? q=profile. d ) seems to be "a graphical login shell is not a login shell," which basically requires the treatment of every new terminal window as a new "login shell" if there's to be a rational environment in there. If this was ever considered a bug, it appears to have reverted now.
I've been digging through this specifically on Xubuntu 14.04, but again, the players involved seem to be pretty deep in the stack.