How to set the KDE path?
Kevin Krammer
kevin.krammer at gmx.at
Wed Feb 2 13:32:14 GMT 2011
On Tuesday, 2011-02-01, Dotan Cohen wrote:
> On Tue, Feb 1, 2011 at 21:06, Kevin Krammer <kevin.krammer at gmx.at> wrote:
> > On Tuesday, 2011-02-01, Dotan Cohen wrote:
> >> On Tue, Feb 1, 2011 at 18:24, Kevin Krammer <kevin.krammer at gmx.at> wrote:
> >> > That never worked because e.g. .bash_profile is only read by
> >> > interactive shells (see man bash) and the shell running
> >> > /usr/bin/startkde is not interactive.
> >>
> >> Of course, .bash_profile is for bash as the name implies. But what
> >> about .profile? Would it not make sense for KDE to respect that?
> >
> > KDE is started through a script called startkde.
> > This is executed by a shell interpreter, whatever /bin/sh points to.
> >
> > This shell might not read .profile, bash for example only does this for
> > interactive login shells. Nothing KDE can do about that.
>
> This is the whole point. What does KDE read to set the PATH?
When a process is created, it gets the current environment of its parent
process (well, the parent can pass a modified env if it chooses to).
The process itself then reads the environment through system API, e.g.
getenv()
So if you run any program from within an interactive shell, it basically sees
the environment of the shell at that point. If the shell's environment is
altered afterwards, this will have no effect on the already running process.
So the environment for KDE base processes is the one which they are started
in.
In case of a KDE workspace session, this is the environment which is present
inside the startkde script. Which in turn is also running with the environment
which was valid at its start.
Now the script's code or the interpreter running the script can alter this
environment and any process started after such a change sees the new one
(remember any process started before a change sees the old one).
The KDE environment extender mechanism uses that by having the startkde script
source (include into itself) all files with extension .sh in any of its "env"
directories.
> For
> instance, the path that the Krunner dialogue looks for apps?
A combination of paths in $PATH and KDE specific "non-interactive-binaries"
paths.
See kde4-config --path exec
> And why
> isn't this configurable in System Settings?
Maybe to avoid misunderstanding when such a change only effects KDE programs
an no non-KDE programs.
You could try a wish list item on bugs.kde.org for making the KDE specific
search list configurable.
> >> > For KDE one can additional use KDE's environment extender mechanims,
> >> > i.e. putting a file (with .sh extension) into $HOME/.kde/env
> >>
> >> Do you know the syntax? It is not the bash syntax. Thanks.
> >
> > Somthing like this:
> >
> > export PATH=$HOME/.bin:$PATH
>
> Thanks, but that has no effect in, for instance $HOME/.kde/env/path.sh
> which has been chmodded +x and the system restart.
That should have worked. I've used that myself several times. The files in
there are just read, so executable shouldn't be necessary either.
Check that your setup is actually using $HOME/.kde/ some distributions patched
KDE to make it something different.
See kde4-config --localprefix
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde/attachments/20110202/07d73a8f/attachment.sig>
-------------- next part --------------
___________________________________________________
This message is from the kde mailing list.
Account management: https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.
More information about the kde
mailing list