systemdを使ってGnome3にぶら下がる方法

systemdを使ってGnome3にぶら下がる方法

簡単な背景情報:私のコンピュータにFedora 18とGnome 3.6.3.1をインストールしました。音楽を含むWindows共有(CIFS)に接続されており、Clementineを使用して音楽を再生します。 ClementineがCIFSインストールで曲を再生している間にコンピュータを停止した場合、再起動するとそのコンピュータ(Clementine)が停止します。最終的に再起動/電源を切ろうとすると、コンピュータ全体が停止します。私の解決策は、一時停止したら再生を停止することでした。

私の質問:MPRISを使用して再生を停止するスクリプトを作成しました/usr/lib/systemd/system-sleep。実行すると、スクリプトが中断される前に正常に実行されます。

systemctl suspend

ところで、Gnome3の「ユーザー」メニューで「一時停止」をクリックしても実行されません。いくつかの調査の終わりに、Gnome3がUPowerに依存していることを発見しました。 UPower自体は、「一時停止」コマンドを実行するためにDBusを使用しているようです。私はもはやリードに従うほど上手ではありませんが、私が知っている限り、スクリプトは決して実行されません。

私の質問:Gnome3の一時停止メニュー項目にsystemdを使用してスクリプトを呼び出すにはどうすればよいですか?

答え1

より多くの研究でUPowerが検出されたら、実際にsystemdを使用する必要があるようです。しかし、何らかの理由でそうではありません。現在、この問題を解決していますが、一時的な解決策として、次のように関連行をuserMenu.js直接編集しましたpowerMenu.js

hangを呼び出すすべての行を置き換え(コメントアウト)します。

this._upClient.suspend_sync(null);

次の行を介して:

Util.spawn(['systemctl', 'suspend']);

powerMenu.jsまた、上部付近に次の行を追加します。

const Util = imports.misc.util;

関連情報