在会话设置下运行的脚本不知道 $DESKTOP_SESSION

在会话设置下运行的脚本不知道 $DESKTOP_SESSION

我有一个包含 Unity 和 KDE 的多桌面环境。由于某些原因,我只安装了环境,而没有安装特定工具,例如nautilusdolphin

由于用户(他们是多用户电脑)需要这些工具才能工作,我编写了一个脚本,它会为用户登录的环境安装特定工具并删除其他工具(即,用户登录后KDE,脚本会安装dolphin和删除nautilus)。这很有效,不幸的是用户必须记住运行它。

我想通过将此脚本添加到来自动化这个过程,通过放置一个如下所示的lightdm配置文件:/usr/share/lightdm/lightdm.conf.d

  [SeatDefaults]
  session-setup-script=/opt/install-tools.sh

并执行被调用脚本内的环境检查,使用:

case "$DESKTOP_SESSION" in
    ubuntu)
        do stuff....
        ;
esac

但正如标题所述,此时变量尚未设置。

我还尝试添加一个只包含安装和删除部分的脚本/usr/share/xsessions,但也失败了,因为那时我还没有 root 权限。我无法更改 sudoers 规则以启用apt-get非 root 用户,因为我不想让任何人能够在这些机器上安装软件。

有人能解决这个问题吗?或者至少能有个好主意,告诉我如何解决这个问题?

相关内容