当我登录到运行 SDDM 的 Lubuntu 时,在哪里放置要运行的命令?

当我登录到运行 SDDM 的 Lubuntu 时,在哪里放置要运行的命令?

我正在尝试从终端设置壁纸。脚本是:

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

这会更改壁纸,但我希望它在每次登录时自动运行。

尝试将此脚本放入一些合适的文件中,例如/etc/X11/xinit/xinitrc 如果我获取该文件,它会按预期运行,但登录时没有任何反应。

关于每次登录时运行该行的位置有什么帮助吗? (最好在我的用户文件夹下,而不是全局文件夹下)

我正在使用 Lubuntu 19.10 和简单桌面显示管理器 (SDDM)。

答案1

因为它是 SDDM:

查看联机帮助页sddm.conf, 有

SessionCommand=

启动用户会话时要执行的脚本的路径。该脚本接收所选会话的“.desktop”文件中“Exec”设置的值并运行它。默认值为“/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 文件中。 Linux 中的 crontab 文件是一个守护进程,它在特定时间和事件执行用户编辑的任务。要编辑该文件,请打开终端并键入“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 身份执行此操作)保存文件并退出。这些命令将在下次启动后运行。

相关内容