获取Emacs Lisp中当前监视器的宽度

时间:2013-05-10 12:13:20

标签: emacs elisp

我有一个双显示器设置(运行Ubuntu)。

Emacs Lisp函数display-pixel-width给出了两个显示器的组合宽度。如何获得当前监视器的宽度(即显示当前帧的监视器)?

2 个答案:

答案 0 :(得分:12)

如果您使用的是24.3或更早版本:

  

display-pixel-width是`frame.el'中编译的Lisp函数。

     

(display-pixel-width& optional DISPLAY)

     

以像素为单位返回DISPLAY屏幕的宽度。对于角色   终端,每个字符都算作一个像素。

此外,如果您使用的是24.4或更高版本:

  

** Multi-monitor support has been added

     

***新功能display-monitor-attributes-listframe-monitor-attributes   可用于获取有关的信息   多显示器设置上的每个物理监视器。

使用外部流程

您还可以解析xwininfoxrandr的输出(使用call-process)。

最大化emacs

最后,您可以最大化emacs(交互式或使用modify-frame-parameters;版本24.4也有toggle-frame-fullscreen and toggle-frame-maximized)并使用frame-pixel-height and frame-pixel-width查询其帧大小。

另见

  1. How do I find the display size of my system in Emacs?
  2. Can I detect the display size/resolution in Emacs?

答案 1 :(得分:1)

display-pixel-width接受一个参数来指定显示。从其文档( C-h f display-pixel-width RET ):

  

(display-pixel-width& optional DISPLAY)

     

以像素为单位返回DISPLAY屏幕的宽度。对于角色   终端,每个字符都算作一个像素。

还有类似的x-display-pixel-width,如果上述情况没有,可能会有效。