.desktop ファイルの AutostartCondition キーについて

.desktop ファイルの AutostartCondition キーについて

デフォルトでは、GNOME 3 Shellを含むCentOS 7.xはキーの下に次のファイルを提供します*.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
#...

私の質問:

  1. キーが起動時にファイルを読み込んだ後、GNOME 3(または他のXDG互換デスクトップまたはセッションマネージャ)がキー値をAutostartCondition実行するかどうかを決定すると思いますか?Exec/etc/xdg/autostart/*.desktop
  2. 現在の値を照会する方法は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 ~]$ 

ベストアンサー1

セッションマネージャは.desktopアプリケーションを起動するすべてのファイルを読み込みます。これらのファイルのいずれかでキーが見つかった場合は、AutostartConditionその値を確認してください。条件が満たされない場合、対応する特定のアプリケーションが起動アプリケーションのリストから削除されます。自動起動条件は非常に古い投稿で説明されています。無料デスクトップメーリングリスト:

The Autostart-Condition Key

The Autostart-Condition key gives a condition which should be tested before
autostarting the application; if the condition is not met, then the application
MUST NOT be autostarted. The condition can be in one of the following forms:

    if-exists FILE

        The application should only be autostarted if FILE exists
        (relative to $XDG_CONFIG_HOME).

    unless-exists FILE

        The application should only be autostarted if FILE *doesn't* exist
        (relative to $XDG_CONFIG_HOME).

    DESKTOP-ENVIRONMENT-NAME [DESKTOP-SPECIFIC-TEST]

        The application should only be autostarted under the named desktop environment
        (as with OnlyShowIn). If DESKTOP-SPECIFIC-TEST is also given, the desktop
        environment will evaluate it in some manner specific to that desktop to
        determine whether or not the application should be autostarted.


which would end up being used like:

Name=kgpg
# start only under KDE, and only if the given kconfig key is set
Autostart-Condition=KDE kgpgrc:User Interface:AutoStart:false

Name=vino
# start only under GNOME, and only if the given gconf key is set
Autostart-Condition=GNOME /desktop/gnome/remote_access/enabled

Name=beagled
# start under any desktop environment, unless
# ~/.config/beagle/disable-autostart exists
Autostart-Condition=unless-exists beagle/disable-autostart

したがって、あなたの特別な場合には、自動起動条件が./config/run-welcome-tourそれぞれ存在する./config/gnome-initial-setup-doneか存在しません。

おすすめ記事