Как отключить закрытие окна

Это могло бы звучать смешным, но я хочу предотвратить закрытие окна в Ubuntu. Я хочу предоставить своим пользователям очень безопасную среду без любой настольной среды со всего одним открытым окном. Теперь я хочу удостовериться, что пользователь не может закрыть то окно. Есть ли любой способ бездельничать с compiz так, чтобы не было никакого способа, которым пользователь может закрыть окно. Не путем сурово обращения с кнопкой, не путем нажатия alt+f4 и т.д.?

Я открыт для использования любого менеджера окон среди доступных в 12,04. Любой из compiz, метагорода и других. Я также готов бездельничать с исходным кодом при необходимости.

Править: Просто отключение ALT+F4 от ОС не решает проблему. Это вызвано тем, что некоторые приложения дают близкие команды на нажатии ALT+F4 даже, прежде чем событие будет пузыриться к ОС. Мне нужен путь, которым у способности закрыть окно отнимают само приложение.

5
задан 2 September 2012 в 10:40

2 ответа

Compiz обеспечивает эту функциональность с помощью плагина Правил Окна. Вы указываете, который окна соответствовать (по имени, введите, идентификатор, и т.д.), и затем можно применить правила к тем окнам. Одно из правил состоит в том, чтобы препятствовать тому, чтобы окно закрылось. Я использовал это в течение долгого времени и могу подтвердить, что это работает хорошо и предотвращает сочетания клавиш, близкую кнопку и щелчок правой кнопкой и близко на панели задач. В значительной степени способ низкого уровня препятствовать тому, чтобы окно закрылось.

можно также использовать 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"

Объединенный с определением местоположения окна 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"

Примечание, что, что xprop изменяет вот, позволенные действия для окна, не состояния окна . Таким образом, если Вы хотите препятствовать тому, чтобы окно было минимизировано, удалите _NET_WM_ACTION_MINIMIZE действие и так далее. Если Вы на самом деле хотите изменить состояние окна, использование wmctrl является более легким инструментом для использования для этого.

, Хотя список по умолчанию позволенных действий вероятен то же для всех менеджеров окон, Вы могли бы хотеть работать xprop | grep _NET_WM_ALLOWED_ACTIONS на окне прежде только, чтобы быть уверенными, что Вы сбрасываете все другие действия, которые были там прежде. Кажется, нет способа использовать xprop, чтобы удалить единственное позволенное действие, только удалить все свойство.

С точки зрения того, насколько надежный/безопасный это, это, вероятно, столь хорошо, как можно добраться для единственного окна. Путем удаления _NET_WM_ACTION_CLOSE или другое позволенное действие, это означает, что окну не позволяют получить то действие. Какой метод пользователь мог бы попытаться закрыть окно, окно никогда не будет получать то действие. Очевидно, существует больше компонентов к созданию безопасного рабочего стола, но это должно быть лучшим способом препятствовать тому, чтобы окно закрылось.

Однако, если приложение предложит способ закрыть себя (например, File > Quit), то оно закроется, когда это будет инициировано. Удаление _NET_WM_ACTION_CLOSE препятствует тому, чтобы действие было получено снаружи окна, но не препятствует тому, чтобы окно инициировало само действие.

4
ответ дан 21 October 2019 в 11:39

Как я знаю и поскольку Вы сказали, что существует два способа предотвратить закрытие окна. отключите близкую кнопку и alt+f4

, Чтобы отключить близко, минимизировать, кнопка развертывания окна в Gnome: Alt+F2 Входят: gconf-редактор Go к приложению> метагород> общий Двойной щелчок по макету кнопок, Вы будете видеть menu:minimize, максимизировать, близко

, можно также использовать инструмент тонкой настройки Gnome для включения, отключают меню и значки кнопки, который доступен здесь https://live.gnome.org/GnomeTweakTool

, я думаю, что можно удалить тех, Вы не хотите оттуда.

Для отключения atl+f4: В меню переходят к Системе - Предпочтениям - Персональный - Горячие клавиши отключают ярлыки, которые Вы хотите

0
ответ дан 21 October 2019 в 11:39

Другие вопросы по тегам:

Похожие вопросы: