mate-desktop/mate-session-manager

Services in autostart can't be disabled

Closed this issue · 13 comments

I'm not sure if it is an issue related to mate-session or to mate-screensaver, please let me know if I'm wrong.

I noticed that if I remove the program mate-screensaver from the list of startup processes (from the GUI program or manually changing the file in /etc/xdg/autostart/mate-screensaver.desktop) it will continue to be launched at login. It will happen even if I completely remove the files /etc/xdg/autostart/mate-screensaver.desktop and ~/.config/autostart/mate-screensaver.desktop. I noticed that it will not be launched if I remove the file /usr/share/dbus-1/services/org.mate.ScreenSaver.service, but probably that solution is not applicable

How to reproduce

  • Open the program Startup Applications
  • Untick the section with Screensaver
  • Log out
  • Log in
  • Open a terminal and run grep -f mate-screensaver, it will be displayed the pid.

Distro and Desktop version

I have Ubuntu MATE 17.10 with MATE Desktop 1.18.0, but I found this bug even in other MATE versions in Ubuntu 16.04 (in real hardware) and Ubuntu 18.04 (in a virtualbox)

I am noticing the same issue with the latest git commit builds (master / 1.25). Had to uninstall mate-screensaver to get rid of mate-screensaver processes...

Not only mate-screensaver is affected by this issue. Every application in autostart can't be disabled.
Not sure, but IHMO we have introduce this issue with one of those PRs.
#184
#213
#178

But there is a workaround.
After unticking the checkbox, open the edit dialog of the autostart service and click on the save button in dialog.
This should save the new state of the service.
Try it out.

So this is definitely a bug in mate-session-manager.

Edit:
Bildschirmfoto zu 2021-03-27 14-16-54

Not only mate-screensaver is affected by this issue. Every application in autostart can't be disabled.
Not sure, but IHMO we have introduce this issue with one of those PRs.
#184
#213
#178

It seems to be #213 - if I revert that PR, I can enable and disable screensaver (my test example) without a workaround below. Furthermore, if I revert just a part of that PR (only gsm-properties-dialog.c changes):
pr213-part-rev.patch.txt
enabling and disabling screensaver still seems to work (hiding NoDisplay apps functionality is more or less broken, of course - but, it has been made just to narrow the problematic changes, not as a solution). Hope it helps to find the bug...

But there is a workaround.
After unticking the checkbox, open the edit dialog of the autostart service and click on the save button in dialog.
This should save the new state of the service.
Try it out.

Tried, works for me (custom CentOS 8.3 build of mate-session-manager-1.25 - latest git commit).

More testing shows me that unchecking the show-hidden checkbox solves the problem too.
So, it is definitely caused by #213
@yetist @vkareh @rbuj
Any idea to fix this issue?

rbuj commented

I will not be available for two weeks.

Good to know, have a nice trip.

Try this patch:
mate-session-manager-1.25-156-fix.patch.txt

I've tried with mate-screensaver (hidden, so on the list when hidden option checked only...) and seapplet (always on the list, tested with hidden option both on and off...). I could enable / disable both as expected. Haven't noticed any other unexpected behavior as well.

This works well in a quick test. Can you please do a pull request for a review?

I've never done it before. I've tried to open a new PR now, but can't find an option to do it with a patch (I don't work with git, but download tar.gz sources to build with rpmbuild). Would you be so kind to do it?

OK :/

Here is a guide for setting up git and steps for forking a repo and doing a pull request https://guides.github.com/introduction/git-handbook/
You really need this for contribute here.
And there are a lot of guides about git in the web.
Any way i will creating a PR when i find time.

PR is done.
#272

Fixed for master and stable branch.
#279
#274