
Я пытаюсь установить обои из терминала. Скрипт такой:
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
- Поместите команду в файл crontab. Файл crontab в Linux — это демон, который выполняет задачи, редактируемые пользователем, в определенное время и при определенных событиях. Чтобы отредактировать файл, откройте терминал и введите «sudo crontab -e», чтобы открыть файл crontab в текстовом редакторе по умолчанию. В первой доступной строке введите «@reboot xxxx», где «xxxx» — команда, которую вы хотите выполнить. Сохраните файл и выйдите.
Поместите скрипт, содержащий команду, в каталог /etc. Создайте скрипт, например "startup.sh", с помощью вашего любимого текстового редактора. Сохраните файл в каталоге /etc/init.d/. Измените права доступа к скрипту (чтобы сделать его исполняемым), введя "chmod +x /etc/init.d/mystartup.sh".
Отредактируйте скрипт /rc.local с помощью текстового редактора. В lubuntu он находится в /etc/rc.local. После того, как вы добавите команды, которые хотите запустить (убедитесь, что вы делаете это как root), сохраните файл и выйдите. Команды будут запущены после следующего запуска.