我的目标是仅允许用户重新启动系统,并拒绝任何关机(挂起、休眠)。我正在运行 unity-2d。
我已经设法使用 polkit 策略文件拒绝挂起和休眠,如中所述如何禁用关机/重启/挂起/休眠?
我观察到它以某种方式禁用了关机功能,但并没有从指示器面板菜单中删除“关机”条目,也没有从关机对话框中删除“关机...”按钮。此时按下关机按钮会重新启动 lightdm,返回登录屏幕。
我的目标是删除任何“关机”操作和按钮。
因此,我在 /usr/share/glib-2.0/schemas 中添加了一个包含一些规则的 ovveride 文件:
[com.canonical.indicator.session]
suppress-shutdown-menuitem = true
(在架构中,所有 suppress-*-menuitem 的默认值均为“false”)
编译,重新启动X,现在指示器面板菜单中有一个条目“关闭会话...”...:这不是我想要的。
此时,如果我将另一个条目 suppress-logout-menuitem 设置为 true,则指示器面板菜单中将没有任何条目。
尝试所有这些组合并不能提供机会在不删除重启选项的情况下删除“关机”引用/按钮。
我想要的只是删除任何对“关机”的引用,但在指示器菜单的某处保留“重启”选项......
谢谢 !
更新!我仍然没有足够的数据来解决我的问题。新数据是 Ubuntu 维护者 (https://bugs.launchpad.net/ubuntu/+source/indicator-session/+bug/1015558) 承认这个问题在 12.10 中已经解决,但 LTS 分支中不会解决!从我的角度来看,这显然是一种倒退,因为我在 10.04 中这样做没有任何问题。
此时,即使我设法修改指标会话代码,主流 ubuntu repo 的任何更新都会破坏它 :/
答案1
如果集成到指示器菜单不是先决条件,我们始终可以定义自定义启动器或自定义应用程序指示器,调用以下命令以仅允许系统重启:
/usr/lib/indicator-session/gtk-logout-helper -r
也可以看看:打开关机对话框的命令是什么?
答案2
Unity-2d 使用声明式视图,称为
GioDefaultApplication {
id: defaultApplication
}
Application {
id: application
desktop_file: defaultApplication.desktopFile
}
visible: application.desktop_file != ""
onClicked: dash.activateApplication(application)
icon: "image://icons/" + application.icon
}
“应用程序”启动桌面文件,这样你就可以做几件事了。1)删除/usr/share/applications/下的桌面文件,操作如下
注销 = indicator-session-logout.desktop
暂停 = indicator-session-lock-screen.desktop
重启 = indicator-session-restart.desktop
关闭 = indicator-session-shutdown.desktop
通过编辑这些文件或删除它们(首先备份)将导致指示器错误
您可以做的另一件事是打开 unity-2d 的源代码并使所有点击的内容 = 您喜欢的桌面文件。
希望这能有所帮助