Я хочу иметь возможность запускать скрипт при входе в систему

Я хочу иметь возможность запускать скрипт при входе в систему

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

Настройки > Запуск и завершение работы > Автозапуск > Файл сценария

но это на самом деле не работает, есть ли у кого-нибудь идеи?

решение1

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

Я предполагаю, что вы используете X11, а не Wayland. Найдите Xsessionили xinitrcфайл в /etc/X11/xinit/. Если у вас есть один, отредактируйте его с помощью nanoили что-то еще, что плавает в вашей лодке, используя:

sudo nano /etc/X11/xinit/xinitrc

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

source path/to/your/script.sh

Убедитесь, что он #!/bin/shнаходится в верхней части вашего скрипта и xinitrc/или Xsessionфайла, и что файл является исполняемым, выполнив , например sudo chmod +x xinitrc, если у вас есть .xinitrc

У меня есть xinitrcв домашнем каталоге, который я использую, так что, возможно, у вас тоже есть такой или вы можете его создать(?) Но я не использую KDE, так что он может вам не подойти. У меня также есть один, в /etc/X11/xinit/котором я не редактирую.

Затем отредактируйте или создайте файл, /etc/sddm.confесли он не существует, и добавьте в него следующее:

[X11]
SessionCommand=/etc/X11/xinit/xinitrc

для xinitrc. Может быть, вы могли бы лучше указать на один из них в вашем домашнем каталоге? Я не настолько осведомлен, чтобы быть на 100% уверенным. Если уже есть блок, [X11]просто добавьте к нему строку, не добавляйте второй [X11]блок.

Этотдолжензапустите свой скрипт после входа в систему с помощью SDDM, которыйобычноДиспетчер отображения KDE (то, что вводит ваше имя пользователя и пароль при входе в систему). Вы также можете использовать DisplayCommandвместо SessionCommandи затем указать на него /etc/sddm/Xsetup, но он может не запуститься после выхода из системы и повторного входа, он запустится после запуска диспетчера отображения (т. е. перезагрузки системы), но я не знаю, перезапускается ли он на самом деле после повторного входа в систему.

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

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