如何从指示器菜单或关机对话框中抑制或禁用关机选项?

如何从指示器菜单或关机对话框中抑制或禁用关机选项?

我的目标是仅允许用户重新启动系统,并拒绝任何关机(挂起、休眠)。我正在运行 unity-2d。

我已经设法使用 polkit 策略文件拒绝挂起和休眠,如中所述如何禁用关机/重启/挂起/休眠?

我观察到它以某种方式禁用了关机功能,但并没有从指示器面板菜单中删除“关机”条目,也没有从关机对话框中删除“关机...”按钮。此时按下关机按钮会重新启动 lig​​htdm,返回登录屏幕。

我的目标是删除任何“关机”操作和按钮。

因此,我在 /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 的源代码并使所有点击的内容 = 您喜欢的桌面文件。

希望这能有所帮助

相关内容