是否可以在 elisp 函数中检查当前 emacs 框架是 X 窗口还是终端?
我有一个最大化窗口的函数,并且它设置为在创建新框架时运行。但是,当我打开仅终端 session 时,每当创建新框架时,我都会收到错误消息。
我希望该函数检查它是否是 X 窗口,否则不执行任何操作。这可能吗?
郑重声明,以下是当前函数:
(defun fullscreen (&optional f)
(interactive) ;if called interactively, use current frame
(if f (select-frame f)) ;if called as hook, use new frame
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
)
最佳答案
您可以查看window-system
函数。它接受一个帧可选参数(默认为当前帧)。或者,display-graphic-p
是更新的(根据文档),并且允许检查包含多个帧的整个显示。在您的示例中,您可以只写:
(if (display-graphic-p) ...)
关于emacs - 检查当前帧是否不是 X 窗口的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10195621/