13

I've just installed xscreensaver instead of gnome-screensaver in Ubuntu 12.04 in gnome-session-fallback (Gnome Classic) mode. It works fine, but I have a problem: I put "xscreensaver -no-splash" command to the startup applications list.

But it doesn't start automatically, I have to run this command manually. I think that the problem is that it tries to start before I log in. So how can I start it automatically after login?

Update Jan 2021

I moved to a different DE a long time ago, so this issue no longer affects me. New answers are still coming, however I cannot mark any of them as accepted as I can't test them any more.

3
  • Try this: ubuntuforums.org/showthread.php?t=195557 It worked for after I had tried two different 'Solutions'.
    – user278737
    May 6, 2014 at 19:55
  • screensaver -no-splash is completely wrong.
    – Eofla
    May 28, 2016 at 6:07
  • echo -e '[Desktop Entry]\nName=Screensaver\nType=Applicaton\nExec=xscreensaver -nosplash' > ~/.config/autostart/xcreensaver.desktop ..done
    – alchemy
    Apr 15, 2022 at 19:00

9 Answers 9

16

Tested and used in Ubuntu 13.04

As no answer has been marked as correct yet; this could be this issue with running xscreensaver on startup

as @peterx14 says here, many of the tutorials for setting up xscreensaver provide incorrect information.

They tell you to set up a screensaver.desktop file with the following command:

sudo gedit /etc/xdg/autostart/screensaver.desktop

and then place inside it the following information:

[Desktop Entry]
Name=Screensaver
Type=Applicaton
Exec=xscreensaver -nosplash

However, for some reason, in many of these tutorials, the above command is incorrect. 'Application' has been misspelt as 'Applicaton'. This causes the startup command to not work.

Therefore, if you have already entered the command

"xscreensaver -no-splash" 

into your startup list, it would not work as xscreensaver is not set up with the type application.

To find out if this is the issue: first run locate screensaver.desktop. This should, somewhere in the list, tell you where screensaver.desktop is. On my computer it's in /etc/xdg/autostart/screensaver.desktop, then open it in an editor (terminal 'nano' may be best as you will need sudo commands to open it) and change 'Applicaton' to 'Application'.

Also, different tutorials (such as liberiangeek and Radu's response) suggest using:

"xscreensaver -nosplash"

as the fix above uses. This depends which value you have within your screensaver.desktop file on line 4: Exec=xscreensaver -nosplash.

5
  • I did all of this, but it didn't help - I didn't understand your last paragraph that using 'xscreensaver -nosplash' depends on what you have in the desktop file. I have it in both...it worked until 13.10 but now in 14.04 it no longer works
    – Kibi
    Apr 29, 2014 at 10:05
  • I'm unsure about a fix for 14.04, the fix above was for 13.04, I'll add that into the answer now... In regards to 14.04 I've already had problems just trying to change the desktop background (I have to restart my laptop to get the changes to take affect) so the issues you're having could be due to something completely different...
    – planty182
    Apr 29, 2014 at 10:35
  • @planty182 Thank's a bunch, this got me going. Feb 15, 2015 at 15:39
  • I would also add to locate xscreensaver.desktop or just look for in the list when you use locate screensaver.desktop. Mine was in ~/.Desktop
    – Sablefoste
    Jul 27, 2015 at 2:39
  • when I do locate screensaver.desktop I get to results: /etc/xdg/autostart/gnome-screensaver.desktop and /home/nestor/.config/autostart/xscreensaver.desktop. Could it be that for me gnome-screensaver.desktop causes the problem? I opened it and it contains Exec=gnome-screensaver, despite that I uninstalled gnome-screensaver. Could this be causing xscreensaver not to work?
    – NeStack
    Apr 3, 2020 at 11:02
6

One possible way is to introduce a short delay of (for example) 10 seconds before running the command. This should allow all the logon processes to complete before running the xscreensaver command.

Use a startup application command line of:

sh -c "sleep 10 && xscreensaver -no-splash &"
4
  • Nope this doesn't work for me either in ubuntu 14.04. I had it working fine (without this trick) in 13.10....no idea what went wrong
    – Kibi
    Apr 29, 2014 at 10:11
  • Doesn't work even after I fix the typo "-no-splash" to "-nosplash"
    – Kibi
    Apr 29, 2014 at 10:26
  • if we cannot precisely time it up, this may be handy bash -c 'while true;do if ! pgrep xscreensaver;then xscreensaver -nosplash;fi; sleep 1;done' May 29, 2014 at 22:45
  • A friend whose AskUbuntu account is too new to comment yet asked me to add this: A variation of this works for Ubuntu 16.04 LTS: sh -c "sleep 10 && xscreensaver -nosplash"
    – maco
    Jul 7, 2016 at 21:19
4

I had it working then I updated to 14.04 and it stopped working.

The solution is to go into Synaptic and completely remove the Gnome screen saver. Ubuntu sneakily reinstalls it on "upgrade".

When you reboot it should work now with the original xscreensaver -nosplash startup.

3
  • 1
    Hey Kibi. This was probably deleted because you posted an exact duplicate answer over on this question. Pasting answers in multiple places is generally frowned upon. On Q/A sites like Ask Ubuntu we don't like to duplicate information. Generally, if you find that the answer to a question is the same as the answer on another question you should flag it as a duplicate so that all the important information is left in one place. I've undeleted this for now.
    – Seth
    Apr 30, 2014 at 16:30
  • 1
    Thanks @Seth, I deleted my other answer and marked that question as a duplicate
    – Kibi
    May 1, 2014 at 7:23
  • This is still an issue with Ubuntu 16.04. In order to use Xscreensaver, I had to remove gnome-screensaver...
    – Corey S.
    Jan 17, 2017 at 2:36
1

I spent several hours with the same problem but then I finally found the answer that I was looking for.

Go to forums.debian.net follow the directions changing only two things.

The first is the line that reads:

gedit ~/.config/autostart/xcreensaver.desktop

Needs to be entered as:

sudo gedit ~/.config/autostart/xcreensaver.desktop

And the second is that to perform this it must be done from the user account it is be applied to, and to do this the user must be an Administrator.

So if the user is a standard user their account type must be change to Administrator it done for them from their account and then the account changed back to a Standard user.

Hope it corrects your problem as well.

1

Use xscreensaver-daemon.desktop from /usr/share/xscreensaver to replace xscreensaver.desktop .

See https://bugs.launchpad.net/ubuntu/+source/xscreensaver/+bug/406534 comment#8

This works for me in 14.04

0

I think, it has something to do with output redirection. The following line worked for me in Lubuntu 13.10:

xscreensaver -nosplash -log /dev/null
1
  • This one does NOT work for me on Ubuntu 14.04
    – Kibi
    Apr 29, 2014 at 10:02
0

I'm new to Ubuntu, was running Mandrake/Mandriva for over 10yrs. From what I just found the simple solution if you want it to start after a logout/login or boot is to go to 'show applications > Startup Applications > Add > then add xscreensaver as the command. If I misread the question I apologize.

0

In the event you make a typo creating the autostart entry in Startup Applications, you have to fix it in two places.

In my case, I left out the "r" in "xscreensave -nosplash" which causes Startup Applications to create ~/.config/autostart/xscreensave.desktop

The executable "xscreensave" does not exist & you will not see an obvious error on log in.

What you will notice is if you start Screensaver manually, it asks you if you want to start the daemon (which indicates it never autostarted)

So even if you fix the typo later in Startup Applications, it does not update the filename (as of 20.04.1 LTS) and you will continue to be puzzled why the daemon doesn't start on login.

After fixing the command line field, you have to also rename the file to match the correct executable name:

~/.config/autostart/xscreensaver.desktop

point being, check both:

  1. the command line argument in your Startup Applications entry is correct and
  2. the filename in ~/.config/autostart is correct
0

One way is to define a systemd service:

$ cat > ~/.config/systemd/user/xscreensaver.service <<EOF
[Unit]
Description=XScreenSaver
After=network.target

[Service]
ExecStart=/usr/bin/xscreensaver -nosplash
Restart=always
RestartSec=3

[Install]
WantedBy=default.target
EOF

Then,

$ systemctl --user enable xscreensaver.service
$ systemctl --user start xscreensaver.service
$ systemctl --user status xscreensaver.service

BTW it could appear to fail at first if the xscreensaver daemon is already running. In that case, do:

$ pkill xscreensaver

Then check the status again, and it should now be active.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .