Где ввести команду, которая будет запущена при входе в Lubuntu с запущенным SDDM?

Где ввести команду, которая будет запущена при входе в Lubuntu с запущенным SDDM?

Я пытаюсь установить обои из терминала. Скрипт такой:

pcmanfm-qt --set-wallpaper=$(ls /home/$USER/.local/share/wallpapers/*/* | shuf -n1)

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

Попробовал поместить этот скрипт в несколько подходящих файлов, например. /etc/X11/xinit/xinitrc Если я указываю файл, он запускается как положено, но при входе в систему ничего не происходит.

Есть ли какая-нибудь помощь, куда поместить эту строку, чтобы она запускалась каждый раз при входе в систему? (предпочтительно в моей папке пользователя, а не глобально)

Я использую Lubuntu 19.10 с Simple Desktop Display Manager (SDDM).

решение1

Так как это SDDM:

Глядя на страницу руководстваsddm.conf, есть

SessionCommand=

Путь скрипта для выполнения при запуске сеанса пользователя. Этот скрипт получает значение параметра "Exec" в файле ".desktop" выбранного сеанса и запускает его. Значение по умолчанию - "/etc/sddm/Xsession".

Поэтому создайте этот файл или измените sddm.confи добавьте свой собственный файл, а затем попробуйте что-нибудь сделать в этом файле.

/tmp/Для целей отладки полезным приемом является запись выходных данных путем перенаправления в какой-либо файл в виде файла журнала.

Итак, в качестве первого шага попробуйте что-то вроде

echo "Session file executed" >> /tmp/my.log

и посмотрите, произойдет ли что-нибудь при входе в систему. Затем попробуйте добавить команду для обоев.

решение2

sddm.conf определяет несколько разделов, из которых вы хотите получить 'SessionCommand'параметр раздела [Wayland]. Скрипт по умолчанию, который находится в "/etc/sddm/wayland-session"проверяет и извлекает следующие файлы скриптов в домашнем каталоге вашего пользователя:

Чтобы:

$HOME/.bash_profile, $HOME/.bash_login, $HOME/.profile.

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

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

решение3

Вот статья, которую я нашел:https://smallbusiness.chron.com/run-command-startup-linux-27796.html

  1. Поместите команду в файл crontab. Файл crontab в Linux — это демон, который выполняет задачи, редактируемые пользователем, в определенное время и при определенных событиях. Чтобы отредактировать файл, откройте терминал и введите «sudo crontab -e», чтобы открыть файл crontab в текстовом редакторе по умолчанию. В первой доступной строке введите «@reboot xxxx», где «xxxx» — команда, которую вы хотите выполнить. Сохраните файл и выйдите.
  2. Поместите скрипт, содержащий команду, в каталог /etc. Создайте скрипт, например "startup.sh", с помощью вашего любимого текстового редактора. Сохраните файл в каталоге /etc/init.d/. Измените права доступа к скрипту (чтобы сделать его исполняемым), введя "chmod +x /etc/init.d/mystartup.sh".

  3. Отредактируйте скрипт /rc.local с помощью текстового редактора. В lubuntu он находится в /etc/rc.local. После того, как вы добавите команды, которые хотите запустить (убедитесь, что вы делаете это как root), сохраните файл и выйдите. Команды будут запущены после следующего запуска.

Связанный контент