私は、IRリモートで完全に制御されるLubuntuキオスクで作業しています。これまでのところ、リブートと電源オフ以外はすべて正常に機能しています。関連する質問が2つあります。
poweroff
を実行するものとreboot
を実行するもの。しかし、私はこの不器用なことに気づき、ボタンをマウスでクリックした場合と同じように、リモートのボタンで「シャットダウン」ランチャー(Lubuntu 17.10のデスクトップの右下にある電源アイコン)を起動したいと思います。私はxbindkeys
を使用してコマンドを実行しています。誰かが端末コマンドを知っているか、「シャットダウン」ランチャーを起動するスクリプトを持っていますか?編集:質問のこの部分を解決しました。 17.10のコマンドはlxsession-default quit
「Lubuntu 17.10セッションをログアウトしますか?」ポップアップが表示されます。表示されるオプションは、シャットダウン、再起動、キャンセルのみです。いくつかの古いスレッドと古いバージョンから多くのことを試しましたが、どのオプションも削除できませんでした。
17.10で動作しない:
gsettings set com.canonical.indicator.session suppress-logout-menuitem true
編集/usr/share/polkit-1/actions/org.freedesktop.login1.policy
および設定<allow_active>no</allow_active>
それぞれの項目の下
したがって、ソースコードを編集および再コンパイルせずにログアウトセッションオプションを編集することは可能ではないようです。だから私は次善の策を講じた。 pythonとtkinterを使用して、PCをシャットダウンまたは再起動する独自のGUIプログラムを作成しました。
本当に難しくはありませんでしたが、誰もがこれを一緒に投げることができることは知っていますが、他の誰かが興味を持っている場合や誰かを助けるかもしれないので、ここに投稿します。
Sudo apt-get install python
_)Sudo apt-get install python-tk
_)をインストールしますSudo apt-get install idle
_)idle
)#Test.py from Tkinter import * import os window = Tk() B1 = Button(window, text = "Shutdown", command = lambda: os.system('poweroff')) B2 = Button(window, text = "Reboot", command = lambda: os.system('reboot')) B3 = Button(window, text = "Quit", command = lambda: quit()) B1.pack() B2.pack() B3.pack() window.mainloop()
Sudo chmod a+s /sbin/poweroff
_および_Sudo chmod a+s /sbin/reboot
_を実行する必要があります。 ** Sudo権限がなくても誰でも再起動または電源オフできるように注意してください。注意してください**python /dir/to/file/name.py
_これが誰かを助けることを願っています!出力の写真を次に示します(今後数日間、きれいに見えるように取り組んでいきます)。
https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html および https://bbs.archlinux.org/viewtopic.php? id = 180798 ファイル/etc/polkit-1/rules.d/10-auth.rulesを作成または編集し、次の内容を含めてみます:
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
action.id == "org.freedesktop.login1.lock-sessions"
// switch user ?
// logout ?
) {
return polkit.Result.NO;
}
if (action.id == "org.freedesktop.login1.shutdown" ||
action.id == "org.freedesktop.login1.reboot") {
return polkit.Result.YES;
}
});
ただし、ユーザーの切り替えまたはログアウトのアクションを見つけることができませんでした。