带有 GNOME 3 Shell 的 CentOS 7.x 默认在with键下提供以下*.desktop
文件:/etc/xdg/autostart/
AutostartCondition
# gnome-welcome-tour.desktop
[Desktop Entry]
Type=Application
Name=Welcome
Exec=/usr/libexec/gnome-welcome-tour
AutostartCondition=if-exists run-welcome-tour
OnlyShowIn=GNOME;
NoDisplay=true
和
# gnome-initial-setup-first-login.desktop
[Desktop Entry]
Name=Initial Setup
#...
Icon=preferences-system
Exec=/usr/libexec/gnome-initial-setup --existing-user
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;System;
OnlyShowIn=GNOME;
NoDisplay=true
AutostartCondition=unless-exists gnome-initial-setup-done
#...
我的问题:
- 我是否正确地认为key在启动时读取文件后
AutostartCondition
确定 key 的值是否Exec
由 GNOME 3(或其他 XDG 兼容桌面或会话管理器)执行?/etc/xdg/autostart/*.desktop
- 如何查询当前值
AutostartCondition
?
关于问题 #2:我尝试了以下失败(我已经完成了 gnome-welcome-tour 和 gnome-initial-setup 并且在登录时没有提示):
[user@user-centos-7 ~]$ gconftool-2 --recursive-list / | grep gnome-initial-setup-done
[user@user-centos-7 ~]$ gsettings list-schemas | while read -r SCHEMA; do gsettings list-recursively $SCHEMA; done | grep gnome-initial-setup-done
[user@user-centos-7 ~]$
[user@user-centos-7 ~]$ gconftool-2 --recursive-list / | grep run-welcome-tour
[user@user-centos-7 ~]$ gsettings list-schemas | while read -r SCHEMA; do gsettings list-recursively $SCHEMA; done | grep run-welcome-tour
[user@user-centos-7 ~]$
会话管理器读取
.desktop
所有启动应用程序的文件。如果AutostartCondition
在任何这些文件中找到一个键,它会检查它的值:如果不满足条件,则从启动应用程序列表中删除该特定应用程序。自动启动条件在freedesktop邮件列表上的一篇非常古老的帖子中进行了描述:因此,在您的特定情况下,自动启动条件是
./config/run-welcome-tour
存在和./config/gnome-initial-setup-done
不存在。