ukui桌面默认不提供窗口关闭二次确认功能,因其基于mutter/compiz混合窗口管理器,遵循gnome规范将窗口关闭视为瞬时可撤销操作,gsettings中无相关键值,该功能未实现。

ukui-settings-daemon 默认不提供窗口关闭二次确认开关,麒麟OS(UKUI桌面)原生不支持该功能。
为什么系统没有“关闭窗口前确认”选项
UKUI 基于 Mutter/Compiz 混合窗口管理器,其设计哲学是遵循 GNOME 人机交互规范——窗口关闭属于瞬时、可撤销的轻量操作(误关可通过 Alt+Tab 切回或任务栏重开),因此未集成对话框阻断逻辑。这和 Windows 或部分 KDE 应用的“是否保存?”式确认有本质区别:前者针对文档状态,后者针对窗口生命周期。
gsettings 中查不到相关键值
尝试搜索常见路径如 org.ukui.desktop.wm.preferences、org.mate.window-manager 或 org.gnome.desktop.wm.preferences,均无 confirm-close、ask-before-close 等键。执行以下命令可验证:
gsettings list-recursively | grep -i -E "(close|confirm|quit)"
输出中仅含会话退出(org.ukui.session.confirm-end-session)、电源按钮动作等全局策略,不含单窗口级确认控制。
- 该键在所有已知麒麟OS V10 SP1–SP3 版本中均不存在,非配置遗漏,而是功能未实现
- 第三方工具如
xdotool或wmctrl无法拦截“点击×”事件,只能模拟或查询,不能劫持关闭流程 - 强行修改窗口管理器源码并重编译风险极高,且每次系统更新后失效
真正有效的防误关替代方案
与其强求不存在的确认弹窗,不如用系统已支持的机制降低误操作影响:
- 启用
窗口动画并设为“慢速”:让关闭动作有视觉缓冲,给人 0.3 秒反应时间;可通过控制中心 → 个性化 → 效果设置 → 窗口动画开启,并调高animation-speed值 - 绑定快捷键恢复最近关闭窗口:
Alt+Shift+Esc(默认未启用,需进dconf-editor→org.ukui.wm.keybindings新增restore-last-closed-window绑定) - 对关键应用(如浏览器、终端)启用自身保存/会话恢复:例如 Firefox 设置
browser.startup.page为 3(恢复上次会话),GNOME Terminal 启用“重新连接到之前的会话” - 禁用窗口装饰上的关闭按钮(仅限技术用户):执行
gsettings set org.ukui.desktop.wm.preferences button-layout 'menu:minimize,maximize',去掉close,但会同时失去右键菜单中的“关闭”项
警惕所谓“启用关闭确认”的误导教程
网上部分文章声称通过修改 /usr/share/glib-2.0/schemas/ 下某个 XML 文件可开启该功能,实测无效。那些文件只是只读 schema 定义,不参与运行时行为;即使手动添加键并执行 glib-compile-schemas,UKUI 窗口管理器也不会读取或响应它。
真正的控制点只在会话级退出(锁屏/注销/关机),那是唯一被 org.ukui.session.confirm-end-session 实际生效的场景。窗口 × 按钮,始终是静默、直接、不可拦截的。










