我正在开发一个完全由红外遥控器控制的 Lubuntu 信息亭。到目前为止,除了重新启动和关机外,一切运行良好。我有两个相关问题:
- 现在,遥控器上有两个独立的按钮;一个
poweroff
在终端中运行,另一个运行reboot
。但是,我觉得这很笨拙,我更希望遥控器上的一个按钮启动“关机”启动器(Lubuntu 17.10 桌面右下角的电源图标),就像用鼠标单击按钮时发生的情况一样。我用它xbindkeys
来运行命令。有人知道终端命令或有启动“关机”启动器的脚本吗?
编辑:我解决了这个问题的这一部分。17.10 中的命令是lxsession-default quit
无法在 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
从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;
}
});
但是,我还没有找到切换用户或注销的操作。
答案2
因此,在阅读和研究了更多内容后,似乎无法在不编辑和重新编译源代码的情况下编辑注销会话选项。所以我做了第二件最好的事情;我使用 python 和 tkinter 制作了自己的 GUI 程序来关闭或重启电脑。
这真的不难,我知道任何人都可以把它放在一起,但我会在这里发布它,以防其他人感兴趣或因为它可能会对某人有所帮助。
- 安装 python (
sudo apt-get install python
) - 安装 tkinter(
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 权限,您必须运行以下
sudo chmod a+s /sbin/poweroff
命令sudo chmod a+s /sbin/reboot
。**请注意,这将允许任何人在没有 sudo 权限的情况下重启或关机,因此请小心** - 可以从终端运行脚本,如下所示:
python /dir/to/file/name.py
希望这对某人有帮助!这是输出的图片(我将在接下来的几天内努力使它看起来更漂亮)。