如何禁用关闭窗口

Juz*_*Ali 5 metacity window-manager compiz

这听起来可能很荒谬,但我想防止在 Ubuntu 中关闭窗口。我想为我的用户提供一个高度安全的环境,没有任何桌面环境,只打开一个窗口。现在我想确保用户无法关闭该窗口。有什么办法可以破解compiz,这样用户就无法关闭窗口。不是按关闭按钮,不是按 alt+f4 等?

我愿意使用 12.04 中可用的任何窗口管理器。compiz、metacity 和其他中的任何一个。如果需要,我也愿意使用源代码进行破解。

编辑:仅从操作系统禁用 ALT+F4 并不能解决问题。这是因为某些应用程序甚至在事件冒泡到操作系统之前按下 ALT+F4 就会发出关闭命令。我需要一种方法来关闭窗口的能力从应用程序本身中移除。

Ani*_*ism 6

Compiz 使用窗口规则插件提供此功能。您指定要匹配的窗口(按名称、类型、ID 等),然后可以将规则应用于这些窗口。规则之一是防止窗口关闭。我使用它很长一段时间,可以确认它运行良好,并且可以防止键盘快捷键、关闭按钮以及右键单击并关闭任务栏。几乎是防止窗口关闭的低级方法。

您也可以使用xprop它来执行此操作(不需要 Compiz)。一个例子:

xprop -format _NET_WM_ALLOWED_ACTIONS 32a -set _NET_WM_ALLOWED_ACTIONS "_NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW"
Run Code Online (Sandbox Code Playgroud)

结合定位窗口 ID 来使用:

window_id=`wmctrl -l | grep Insert_Name_of_Window | head -n1 | cut -d" " -f1`
xprop -id "$window_id" -format _NET_WM_ALLOWED_ACTIONS 32a -set _NET_WM_ALLOWED_ACTIONS "_NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW"
Run Code Online (Sandbox Code Playgroud)

请注意,xprop此处修改的是窗口允许的操作,而不是窗口的状态。因此,如果您想防止窗口最小化,请删除该_NET_WM_ACTION_MINIMIZE操作,等等。如果您确实想更改窗口的状态,那么 usingwmctrl是一个更容易使用的工具。

尽管所有窗口管理器的允许操作的默认列表可能相同,但您可能希望xprop | grep _NET_WM_ALLOWED_ACTIONS之前在窗口上运行,以确保重新设置之前存在的所有其他操作。似乎没有一种方法可以用来xprop删除单个允许的操作,只能删除整个属性。

就其万无一失/安全性而言,它可能与单个窗口所能获得的一样好。通过删除_NET_WM_ACTION_CLOSE或其他允许的操作,意味着不允许窗口接收该操作。无论用户尝试使用什么方法关闭窗口,窗口都永远不会收到该操作。显然,创建安全桌面需要更多组件,但这应该是防止窗口关闭的最佳方法。

但是,如果应用程序提供了一种自行关闭的方法(例如File > Quit),则在触发该方法时它将关闭。删除_NET_WM_ACTION_CLOSE会阻止从窗口外部接收操作,但不会阻止窗口本身触发操作。


kru*_*022 0

据我所知,正如您所说,有两种方法可以防止关闭窗口。禁用关闭按钮和 alt+f4

要在 Gnome 中禁用关闭、最小化、最大化按钮:Alt+F2 输入:gconf-editor 转到应用程序 > metacity > 常规 双击按钮布局,您将看到菜单:最小化、最大化、关闭

您还可以使用 Gnome 调整工具来启用禁用菜单和按钮图标,可在此处使用https://live.gnome.org/GnomeTweakTool

我认为你可以从那里删除你不想要的那些。

要禁用 atl+f4 :在菜单中转至系统 - 首选项 - 个人 - 键盘快捷键禁用您想要的快捷键