TIL:另外一个调整启动时窗口大小的函数

我觉得这个函数比较简单方便,工作原理是以屏幕分辨率的相对比例来确定。

frame-widthframe-height 调节窗口的大小。相对分辨率宽度/高度的几分之几。 left-offsettop-offset 则是调节窗口的位置。相对距离屏幕左边/上边的距离是分别是屏幕分辨率宽度/高度的几分之几。

(defun set-frame-size-according-to-display ()
  "Set the size of the frame according to the size of the primary display."
  (interactive)
  (when (eq system-type 'darwin)
    (let* ((display-width (display-pixel-width))
           (display-height (display-pixel-height))
           (frame-width (floor (* 0.7 display-width)))
           (frame-height (floor (* 0.9 display-height)))
           (left-offset (floor (* 0.1 display-width)))
           (top-offset (floor (* 0.05 display-height))))
      (set-frame-position (selected-frame) left-offset top-offset)
      (set-frame-size (selected-frame) frame-width frame-height t))))
3 个赞

不过很奇怪,不同版本 build 的 emacs 会不一样的表现,总之推荐大家用 emacs-plus 此函数在这个版本 emacs 上表现稳定。

我自用的另外一个编译包则只能固定地方,但大小表现比较奇怪。暂时来说还可忍受。

尝试了一下,display-pixel-width/height返回的结果似乎不太对,我也用的emacs-plus

还有点奇怪,有几次位置摆放得刚刚好,得再测试一下