Whether the ~/.profile is read from the GUI login depends on the display manager. In the past which I'm familiar with, for gdm, the ~/.profile was read, for sddm, ~/.profile was not read. For the latest, I can't say. The ~/.profile file was readable by a number of shells, whereas the ~/.bash_profile is bash specific.
The bash shell will read ~/.bash_profile, ~/.bash_login, or ~/.profile, but only on a login shell, so if the login is in a GUI bash won't necessarily read these files, rather it will read the ~/.bashrc file once the bash shell is invoked, for example in a terminal. If the default shell is different, e.g. dash or zsh, only the ~/.profile will be read in a login shell.
If the user logs in from text prompt and the shell is bash, the ~/.bash_profile or ~/.profile will be read. Then the GUI can be started with the command: startx, or some other specialised command.
It's easy to check if the ~/.bash_profile file (or any other file) is being read on login, by logging it. To log it, one needs to include inside the ~/.bash_profile (or whatever file is being tested), a line such as:
Code:
echo $(date) ".bash_profile is read" >> /home/<user>/logfile
and start up the logfile with the command:
Then login in by GUI and check if that log in is being logged in the logfile.
Some GUI logins (if not all) do honour the .xsessionrc file, so if the GUI login is not reading the ~/.profile or a ~/.bash_profile file, it may be worth placing the PATH and environment variables in the ~/.xsessionrc file.