I notice files
installed in my additional TDEDIRS directory are being ignored. Would
somebody else confirm this behavior?
My additional directory is placed first in the TDEDIRS
variable string:
TDEDIR=/opt/trinity
TDEDIRS=/usr/local/tde-mods:/opt/trinity
I noticed this behavior a while ago because various
mimetypes were not working as I reconfigured.
Yesterday investigated further. I
have Xfce installed on this
system. I seldom use Xfce and even then only for comparative
purposes. Yet yesterday, having
"Mousepad" in my
Konqueror popup menu for text editors finally rankled
me. I
copied the desktop file from /usr/share/applications to
/usr/local/tde-mods/share/applications.
In the mousepad.desktop file I added OnlyShowIn=XFCE;.
I
restarted the session and Mousepad remained in
the
popup menu.
Curious, I edited the desktop file in
/usr/share/applications, restarted the session, and
Mousepad no longer populated
the popup menu.
Therefore TDE is recognizing the OnlyShowIn directive,
but not those in my
secondary TDEDIRS directory.
Seems something is awry with using TDEDIRS. At this
point I don't know whether
the problem is me or the code.
This same process works as expected in my KDE3 setup,
(albeit using KDEDIRS).
I appreciate further insight and help.
Additional evidence of incorrect behavior is items appearing
in the system menu that are tagged with OnlyShowIn=XFCE;.
After some more testing, in my TDEDIRS directory I have many
mimelnk desktop files to override the defaults. They are
being adhered to and being used. For example. with TDEDIRS
not being set, archived files will open directly in
Konqueror as embedded files. With TDEDIRS being set and my
TDEDIRS ark.desktop file overriding that behavior, an
archived file opens in Ark rather than as embedded.
Therefore Trinity is using TDEDIRS. The problem then seems
to be not always recognizing the OnlyShowIn key. Or not
using that key correctly. Trinity recognized the change I
made to the mousepad.desktop file in /usr/applications.
Possibly then Trinity just does not recognize that key when
in TDEDIRS?
I am deleting my ksycoca cache with these tests. So that is
not the problem. :)
I discovered the cause of the problem. The solution requires revising starttde.
Some time ago we discovered that we should explicitly set $XDG_DATA_DIRS in starttde only
when Trinity is not installed in /usr. Explicitly declaring $XDG_DATA_DIRS will override
the default search path of /usr/share and we had to ensure that when explicitly declaring
$XDG_DATA_DIRS that /usr/share was included in that search path. Otherwise /usr/share was
ignored.
This explicit declaration of $XDG_DATA_DIRS affects $TDEDIRS as well.
For testing purposes, when I unset the $XDG_DATA_DIRS variable, my files in $TDEDIRS were
used as intended. Similarly, only when I placed $TDEDIRS first in the $XDG_DATA_DIRS
search string did my files in $TDEDIRS work as intended.
We need to revise the $XDG_DATA_DIRS snippet in starttde to correctly parse $TDEDIRS. When
more than one directory is defined in $TDEDIRS to parse and place the additional
directories first in the $XDG_DATA_DIRS variable.
As written we have the placement pattern backwards. When Trinity is installed in a
location other than /usr, then we need to ensure the Trinity paths are placed first in the
variable order and /usr/share placed last. When I did that my system then found my
$TDEDIRS directory and my Konqueror context menus worked correctly --- Mousepad no longer
appear in the menu.
Darrell