web-dev-qa-db-ja.com

cronのgsettingsを使用して背景が変更されない

ここでIndrajith Indraprasthamの推奨スクリプトを使用して壁紙をランダムな画像に変更しようとしています: nityのコマンドラインからデスクトップの背景を変更するには?

ターミナルウィンドウからスクリプトを実行すると、bgは正常に変更されますが、cronから実行すると、次のエラーが送信されます。

(プロセス:21901):dconf-WARNING **:dconfへの変更のコミットに失敗しました:コマンドライン 'dbus-launch --autolaunch = 00216c114dcf433c9bb9009985d607d6 --binary-syntax --close-stderr'の生成エラー:コード1で終了した子プロセス

提案をいただければ幸いです。

9
Shaun

Cronからgsettingsを編集します。環境変数がありません

独自の環境(たとえば、ターミナルウィンドウまたはスタートアップアプリケーション)からスクリプトを実行すると、多くの環境変数が設定されます。 cronただし、限られた環境変数セットでスクリプトを実行します。

gsettingsからcronを正常に編集するには、DBUS_SESSION_BUS_ADDRESS環境変数を設定する必要があります。 here (および以下)で説明されているように、スクリプトに2行追加することで、これを行うことができます。

必要な変数の設定を含むスクリプト

スクリプト ここからDBUS_SESSION_BUS_ADDRESS環境変数を含めるように編集すると、次のようになります。

#!/bin/bash

PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)

DIR="/home/indra/Pictures/wallpapers"
PIC=$(ls $DIR/* | shuf -n1)
gsettings set org.gnome.desktop.background picture-uri "file://$PIC"

関連: 5分ごとに.shを実行

13
Jacob Vlijm