30.4.3.8 窗口管理参数

以下框架参数控制框架与窗口管理器或窗口系统交互的各个方面。它们在文本终端上无效。

visibility

框架的可见状态。共有三种可能:nil 表示不可见,t 表示可见,icon 表示最小化为图标。See 框架的可见性

auto-raise

若为非 nil,Emacs 会在选中该框架时自动将其置顶。部分窗口管理器不支持此行为。

auto-lower

若为非 nil,Emacs 会在取消选中该框架时自动将其置底。部分窗口管理器不支持此行为。

icon-type

本框架使用的图标类型。若值为字符串,指定存放位图图标的文件;nil 表示不指定图标(由窗口管理器决定显示内容);其他非 nil 值使用 Emacs 默认图标。

icon-name

框架图标(在显示时)使用的名称。若为 nil,则使用框架标题

window-id

图形显示系统为该框架分配的 ID 号。Emacs 在框架创建时设置该参数,修改此参数不会改变实际 ID 号。

outer-window-id

承载该框架的最外层窗口系统窗口的 ID 号。与 window-id 相同,修改此参数无实际效果。

wait-for-wm

若为非 nil,告知 Xt 等待窗口管理器确认几何布局变更。部分窗口管理器(包括某些版本的 Fvwm2 和 KDE)不会发送确认,导致 Xt 挂起。将其设为 nil 可避免在这些窗口管理器下出现挂起。

sticky

若为非 nil,该框架在支持虚拟桌面的系统上会在所有虚拟桌面中可见。

shaded

若为非 nil,告知窗口管理器以仅显示标题栏、隐藏内容的方式展示该框架。

use-frame-synchronization

若为非 nil,将框架重绘与显示器刷新率同步,避免画面撕裂。目前该功能仅在 Haiku 系统以及无工具集、X 工具集编译版本的 X 窗口系统中实现,与工具集滚动条配合时可能工作异常,且需要支持对应显示同步协议的合成管理器。同时必须将 X 资源 synchronizeResize 设为字符串 "extended"

inhibit-double-buffering

若为非 nil,框架绘制到屏幕时不使用双缓冲。Emacs 通常会在可用时启用双缓冲以减少闪烁;但在双缓冲导致显示异常,或部分用户怀念早期 Emacs 闪烁效果的场景下,可使用该参数。

skip-taskbar

若为非 nil,告知窗口管理器从显示器对应的任务栏中移除该框架的图标,并禁止通过 Alt-TAB 切换到该框架窗口。在 MS-Windows 上,此类框架最小化时会“收拢”到桌面底部。部分窗口管理器可能不支持该参数。

no-focus-on-map

若为非 nil,表示该框架在显示时(see 框架的可见性)不希望获取输入焦点。部分窗口管理器可能不支持该参数。

no-accept-focus

若为非 nil,表示该框架不希望通过鼠标点击、或鼠标移入(focus-follows-mouse,see 输入焦点)、mouse-autoselect-window(see 鼠标窗口自动选择)等方式获取输入焦点。这可能导致无法用鼠标滚动未选中框架的窗口。部分窗口管理器可能不支持该参数。在 Haiku 系统上,该参数还会导致窗口无法接收任何键盘输入,即使通过 Alt-TAB 切换到该框架也无效。

undecorated

若为非 nil,该框架的窗口系统窗口将不显示装饰,如标题、最小化/最大化按钮和外边框。这通常意味着无法用鼠标拖动、调整大小、最小化、最大化或关闭窗口。若为 nil,框架窗口通常会显示上述所有装饰,除非在窗口管理器设置中已禁用。

在 X 系统下,Emacs 使用 Motif 窗口管理器提示关闭装饰。部分窗口管理器可能不支持这些提示。

macOS 版本会将工具栏视为装饰,因此在无装饰框架上会隐藏工具栏。

override-redirect

若为非 nil,表示该框架为覆盖重定向(override redirect)框架——即 X 系统下不由窗口管理器管理的框架。覆盖重定向框架无窗口管理器装饰,仅可通过 Emacs 自身的定位和缩放函数调整位置与大小,且通常显示在所有其他框架之上。修改该参数在 MS-Windows 上无效。

ns-appearance

仅在 macOS 可用。若设为 dark,框架窗口使用 “活力深色(vibrant dark)” 主题;设为 light 则使用 “aqua” 主题;否则使用系统默认主题。使用深色背景的 Emacs 主题时,可通过 “活力深色(vibrant dark)” 主题将工具栏和滚动条设为深色样式。

ns-transparent-titlebar

仅在 macOS 可用。若为非 nil,将标题栏和工具栏设为透明,使其背景色与 Emacs 背景色一致。