web-dev-qa-db-ja.com

Lubuntu 17.10-「シャットダウン」ランチャーからサスペンドの削除、ユーザーの切り替え、画面オプションのロック

私は、IRリモートで完全に制御されるLubuntuキオスクで作業しています。これまでのところ、リブートと電源オフ以外はすべて正常に機能しています。関連する質問が2つあります。

  1. これで、リモコンに2つの個別のボタンができました。ターミナルでpoweroffを実行するものとrebootを実行するもの。しかし、私はこの不器用なことに気づき、ボタンをマウスでクリックした場合と同じように、リモートのボタンで「シャットダウン」ランチャー(Lubuntu 17.10のデスクトップの右下にある電源アイコン)を起動したいと思います。私はxbindkeysを使用してコマンドを実行しています。誰かが端末コマンドを知っているか、「シャットダウン」ランチャーを起動するスクリプトを持っていますか?

編集:質問のこの部分を解決しました。 17.10のコマンドはlxsession-default quit

  1. 「Lubuntu 17.10セッションをログアウトしますか?」ポップアップが表示されます。表示されるオプションは、シャットダウン、再起動、キャンセルのみです。いくつかの古いスレッドと古いバージョンから多くのことを試しましたが、どのオプションも削除できませんでした。

    enter image description here

    enter image description here

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>それぞれの項目の下

1
P. Keating

したがって、ソースコードを編集および再コンパイルせずにログアウトセッションオプションを編集することは可能ではないようです。だから私は次善の策を講じた。 pythonとtkinterを使用して、PCをシャットダウンまたは再起動する独自のGUIプログラムを作成しました。

本当に難しくはありませんでしたが、誰もがこれを一緒に投げることができることは知っていますが、他の誰かが興味を持っている場合や誰かを助けるかもしれないので、ここに投稿します。

  1. インストールpython(_Sudo apt-get install python_)
  2. Tkinter(_Sudo apt-get install python-tk_)をインストールします
  3. アイドルインストール(_Sudo apt-get install idle_)
  4. オープンアイドル(idle
  5. ファイル->新しいファイル
  6. 次のコードを貼り付けます。

#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()

  1. コードが貼り付けられた新しいウィンドウで、[ファイル]-> [保存]-> [ファイル名を入力]をクリックします
  2. 再起動を呼び出し、Sudo権限なしで電源オフするには、次の_Sudo chmod a+s /sbin/poweroff_および_Sudo chmod a+s /sbin/reboot_を実行する必要があります。 ** Sudo権限がなくても誰でも再起動または電源オフできるように注意してください。注意してください**
  3. スクリプトは次のように端末から実行できます:_python /dir/to/file/name.py_

これが誰かを助けることを願っています!出力の写真を次に示します(今後数日間、きれいに見えるように取り組んでいきます)。

画面の左中央のプログラム

0
P. Keating

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;
    }
});

ただし、ユーザーの切り替えまたはログアウトのアクションを見つけることができませんでした。

1
Dan Poirier