という環境変数を指定する必要がありますDBUS_SESSION_BUS_ADDRESS
。
実行中の kde セッションから値を取得できます。
$ echo $DBUS_SESSION_BUS_ADDRESS
unix:abstract=/tmp/dbus-iHb7INjMEc,guid=d46013545434477a1b7a6b27512d573c
kde スタートアップ (構成の autostart モジュール) で、環境の起動後に実行するスクリプト エントリを作成します。この環境変数の値をホーム ディレクトリの一時ファイルに出力すると、一時ファイルから cron ジョブまたは Python スクリプト内で環境変数を設定できます。
#!/bin/bash
echo $DBUS_SESSION_BUS_ADDRESS > $HOME/tmp/kde_dbus.session
2019 KDE5 の時点でも動作しますが、結果はわずかに異なります。
$ echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/1863/bus
テストするには、次の操作を実行できます。
$ qdbus org.freedesktop.ScreenSaver /ScreenSaver SimulateUserActivity
qdbus-qt5
kde5 と一緒に古い kde4 バイナリがインストールされている場合は、使用する必要があるかもしれません。次の方法で、どちらを使用するかを決定できます。
export QDBUS_CMD=$(which qdbus-qt5 2> /dev/null || which qdbus || exit 1)
スクリーンセーバーが機能しないようにしたい場合は、sleep ステートメントを使用してこれを実行します。メインのコンピューターの横にある別のコンピューターからリモートで実行します。
リモートスクリーンセーバーをロックおよびロック解除する方法を知りたい人のために、それは別のコマンドです...
loginctl lock-session 1
また
loginctl unlock-session 1
それはあなたのセッションが最初のものであると仮定しています。スクリーンセーバーの開始と停止の KDE 通知イベントにスクリプトを追加できます。この情報が、複数のコンピューター間でスクリーン セーバーを同期したい人に役立つことを願っています。
これが長い答えであることは承知していますが、テストするための例と、今日それを使用する実際の使用例を提供したかったのです。