在Emacs中,我如何引用物理屏幕?

7

我有一个多屏幕显示器。在emacs(GNU Emacs 24.2.1(i386-mingw-nt6.1.7601)上的Windows 7)中,如何确定物理屏幕数量,并使不同屏幕上发生的事情?例如,我可能希望在另一个屏幕上打开新框架,或者将Emacs启动的框架移动到另一个屏幕。

2个回答

7
我不确定这些函数是否适用于Windows,但在Linux和Mac OS X上,您可以使用以下函数:
  • x-display-screens:显示器数量
  • x-display-pixel-width:当前屏幕(包含Emacs窗口的屏幕)宽度
  • x-display-pixel-height:当前屏幕高度
  • set-frame-widthset-frame-height:调整大小
  • set-frame-position:移动框架
例如,如果您想在另一个屏幕上创建新的框架,可以执行以下操作:
(when (and (display-graphic-p) (= (display-screens) 2))
  (make-frame)
  (set-frame-position (selected-frame) 1280 0))

其中1280是您第一个屏幕的宽度。


你也可以看一下我的设置 https://github.com/tungd/dotfiles/blob/master/emacs/init.el#L278 - tungd
看起来在我的Windows上的Emacs实现中,x-display-screens不起作用。它返回“1(#o1,#x1)”,而我有三个屏幕。display-screens也返回相同的结果。 - kc2001
x-display-pixel-width是怎么样的?如果它返回类似于您屏幕的总宽度之类的内容,那仍然会很有用。 - tungd
不幸的是,x-display-pixel-width 似乎只提供了 Windows 当前屏幕的宽度。 - kc2001
你尝试过这里的官方二进制文件吗:http://ftp.gnu.org/gnu/emacs/windows/。如果仍然无法工作,那么你可能需要等待24.4版本,因为该版本将添加对此的本地支持(`frame-monitor-attributes`和`display-monitor-attributes-list`)。 - tungd
显示剩余2条评论

2

谢谢你的指针,但我觉得它使用x-display-pixel-width和相关函数来进行屏幕计算。我没有看到任何像是意识到Windows屏幕的东西。 - kc2001
你试过使用它了吗?为什么不先安装和使用它来看看它是否有效呢? - tkf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接