By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
Bug 2297 - TDE provides no method to disable or ignore autostart apps
Summary: TDE provides no method to disable or ignore autostart apps
Status: NEW
Alias: None
Product: TDE
Classification: Unclassified
Component: other (any) (show other bugs)
Version: R14.0.x [Trinity]
Hardware: Other Linux
: P5 normal
Assignee: Timothy Pearson
URL:
Depends on:
Blocks: 2969
  Show dependency treegraph
 
Reported: 2015-01-02 00:19 CST by Darrell
Modified: 2023-01-30 19:21 CST (History)
2 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Darrell 2015-01-02 00:19:07 CST
I mentioned this problem in bug 2284. As that bug report identifies the autostart manager plugin as the main bug, I am opening this report to address this issue.

While supporting some autostart options in desktop files, I do not see anything in the TDE sources that 'X-TDE-Autostart-enabled' is supported. I believe this is the XDG compliant method for distinguishing what in $HOME/.config/autostart is launched in which desktop. This is a boolean key: using 'true' or 'false'.

The absence of such support means TDE does not distinguish which autostart apps to ignore. This is important in a multi desktop environment where users use more than one desktop. Without this distinction, TDE autostarts everything in $HOME/.config/autostart.

For example, in MATE, apps that the user does not want to autostart will include the X-MATE-Autostart-enabled=false key. Likewise for GNOME and Cinnamon environments. Thus, apps that a user does not want to autostart in TDE would contain X-TDE-Autostart-enabled=false.

TDE-specific apps can be added and launched from $TDEHOME/Autostart, but there is no control mechanism for apps in $HOME/.config/autostart.

Short-term solution would be to add support for X-TDE-Autostart-enabled. At least then users can manually edit desktop files in $HOME/.config/autostart.

Long-term, the autostart plugin should address the same support, but those issues are addressed in bug 2284.

At the moment, the only work-around I find is to manually edit desktop files and add the OnlyShowIn or NoShowIn option.
Comment 1 Darrell 2015-01-26 17:01:11 CST
Looks like the detection patch would be applied to tdelibs/tdeinit/autostart.cpp.

The 'X-TDE-Autostart-enabled' key should be inserted in a *.desktop file only when setting the key to false. When true the key should be removed from the *.desktop file. This is how the other desktops function and the same mechanism would provide consistency.

The best place to add the GUI controls for setting X-TDE-Autostart-enabled=false or deleting the key when true is the autostart plugin.
Comment 2 Darrell 2023-01-30 19:21:22 CST
This bug report was filed some years ago. While supporting 'X-TDE-Autostart-enabled' might be nice, digging deeper into this seems that the core problem is the standard 'OnlyShowIn' and 'NotShowIn' keys are ignored -- inadvertently.

I think the issue is caused by code that tries to remove duplicates in the collected list of autostart files.

That seems like a fair approach but consider that users can copy a system /etc/xdg autostart file into $HOME/.config/autostart and modify the behavior to override the system file. For example, adding the NotShowIn=TDE directive.

There then will be two files with the same file name in the collected list of autostart files.

For example, in Xfce I want to use the Parcellite clipboard manager. The package installs a default desktop file in /etc/xdg/autostart that presumes all users want to launch Parcellite. I do not want that in TDE. In TDE I want Klipper. I copy the Parcellite system desktop file to $HOME/.config/autostart and add the NotShowIn=TDE directive.

But Parcellite always launches in TDE (as well as Klipper) because the user's autostart file was considered a duplicate and deleted from the collected list of autostart files.

The code to remove duplicates seems to more often than not or always remove the user's copy of the file. This creates the illusion the NotShowIn directive is being ignored. 

I never have run into this problem with other desktop environments. Only TDE. If duplicates are to be removed from the collected list then the system file should be removed when the user has a duplicate file of the same name. Instructing user's to rename their copied version of the autostart file to avoid being a duplicate will fail because then the system version will still execute. That solution would again create the illusion that the user's copy is being ignored.

Related files seem to include:

* tdelibs/tdeinit/autostart.cpp
* tdelibs/tdecore/kdesktopfile.cpp
* tdelibs/tdeio/tdeio/kservice.cpp

This bug report probably could be closed if the duplicate file code snippet is revised so the user's autostart file is not deleted from the collected list of autostart files.