Как настроить автозапуск Xscreensaver?

Я только что установил xscreensaver вместо gnome-screensaver в Ubuntu 12.04 в режиме gnome-session-fallback (Gnome Classic). Работает нормально, но у меня проблема: я добавил команду "xscreensaver -no-splash" в список автозагрузки приложений.

Но он не запускается автоматически, я должен выполнить эту команду вручную. Я думаю, что проблема в том, что он пытается запуститься до того, как я войду в систему. Так как я могу запустить его автоматически после входа в систему?

9 ответов

Протестировано и использовано в Ubuntu 13.04

Поскольку ни один ответ не был помечен как правильный; это может быть проблема с запуском xscreensaver при запуске

как говорит здесь @peterx14, многие учебники по настройке xscreensaver предоставляют неверную информацию.

Они говорят вам настроить файл screensaver.desktop с помощью следующей команды:

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

и затем поместите в него следующую информацию:

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

Однако по некоторым причинам во многих из этих руководств указанная выше команда неверна. "Приложение" было написано с ошибкой как "Приложение". Это приводит к тому, что команда запуска не работает.

Поэтому, если вы уже ввели команду

"xscreensaver -no-splash" 

в ваш список запуска, он не будет работать, так как xscreensaver не настроен с типом приложения.

Чтобы выяснить, является ли это проблемой: сначала запустите locate screensaver.desktop, Это должно где-то в списке сказать вам, где находится screensaver.desktop. На моем компьютере это в /etc/xdg/autostart/screensaver.desktop затем откройте его в редакторе (терминал 'nano' может быть лучше, так как вам понадобятся команды sudo для его открытия) и измените 'Applicaton' на 'Application'.

Кроме того, различные учебные пособия (такие как liberiangeek и ответ Radu) предлагают использовать:

"xscreensaver -nosplash"

как исправление выше использует. Это зависит от того, какое значение у вас есть в файле screensaver.desktop на line 4: Exec=xscreensaver -nosplash,

Один из возможных способов - ввести небольшую задержку (например, 10 секунд) перед выполнением команды. Это должно позволить всем процессам входа в систему завершиться перед выполнением команды xscreensaver.

Используйте командную строку запуска приложения:

sh -c "sleep 10 && xscreensaver -no-splash &"

У меня это работало, затем я обновил до 14.04, и он перестал работать.

Решение состоит в том, чтобы войти в Synaptic и полностью удалить заставку Gnome. Ubuntu незаметно переустанавливает его на "апгрейд".

При перезагрузке теперь должно работать с оригиналом xscreensaver -nosplash запускать.

Я провел несколько часов с той же проблемой, но потом, наконец, нашел ответ, который искал.

Зайдите на forums.debian.net и следуйте инструкциям, меняя только две вещи.

Первая строка, которая гласит:

gedit ~/.config/autostart/xcreensaver.desktop

Необходимо ввести как:

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

И второе: для этого необходимо выполнить учетную запись пользователя, к которой он применяется, и для этого пользователь должен быть администратором.

Таким образом, если пользователь является стандартным пользователем, его тип учетной записи должен быть изменен на "Администратор", это было сделано для него из его учетной записи, а затем учетная запись изменилась обратно на "Стандартный пользователь".

Надеюсь, это исправит и вашу проблему.

Используйте xscreensaver-daemon.desktop из /usr/share/xscreensaver для замены xscreensaver.desktop .

Смотрите https://bugs.launchpad.net/ubuntu/+source/xscreensaver/+bug/406534 комментарий #8

Это работает для меня в 14.04

Я думаю, это как-то связано с перенаправлением вывода. Следующая строка работала для меня в Lubuntu 13.10:

xscreensaver -nosplash -log /dev/null

Если вы допустили опечатку при создании записи автозапуска в приложениях для запуска, вы должны исправить ее в двух местах.

В моем случае я пропустил «r» в «xscreensave -nosplash», что приводит к тому, что приложения запуска создают ~/.config/autostart/xscreensave.desktop

Исполняемый файл «xscreensave» не существует, и вы не увидите очевидной ошибки при входе в систему.

Что вы заметите, так это то, что если вы запустите заставку вручную, она спросит вас, хотите ли вы запустить демон (что указывает на то, что он никогда не запускался автоматически)

Таким образом, даже если вы исправите опечатку позже в Startup Applications, она не обновит имя файла (по состоянию на 20.04.1 LTS), и вы будете по-прежнему недоумевать, почему демон не запускается при входе в систему.

После исправления поля командной строки вы также должны переименовать файл, чтобы он соответствовал правильному имени исполняемого файла:

      ~/.config/autostart/xscreensaver.desktop

Дело в том, проверьте оба:

  1. аргумент командной строки в вашей записи Startup Applications верен и
  2. имя файла в ~/.config/autostart правильное

Я новичок в Ubuntu, управлял Mandrake/Mandriva более 10 лет. Из того, что я только что нашел, простое решение, если вы хотите, чтобы оно запускалось после выхода из системы / входа в систему или загрузки, - это перейти к "показать приложения> Автозагрузка приложений> Добавить>, а затем добавить xscreensaver в качестве команды. Если я неправильно понял вопрос, я прошу прощения.

Один из способов — определить службу systemd:

      $ 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

Затем,

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

Кстати, поначалу может показаться, что произошел сбой, если демон xscreensaver уже запущен. В этом случае выполните:

      $ pkill xscreensaver

Затем еще раз проверьте статус: теперь он должен быть активным.

Другие вопросы по тегам