macos下如何让emacs启动就全屏

wiki 查到 (set-frame-parameter nil 'fullscreen 'fullboth)

设置了,会全屏,但是是从小窗口放大来的,有个明显的缩放过程

有没有直接启动就全屏的办法

1 个赞

直接全屏,可能不行 ~ 不过可以压缩这个闪现的过程,变得自然顺滑:来自大佬 @seagle0128 的配置:

;; Inhibit resizing Puremacs frame
(setq frame-inhibit-implied-resize t)

;; To suppress flashing at startup
(setq-default inhibit-redisplay t
              inhibit-message t)
(add-hook 'window-setup-hook
          (lambda ()
            (setq-default inhibit-redisplay nil
                          inhibit-message nil)
            (redisplay)))

3 个赞

我用 hammerspoon 实现 Emacs 启动时最大化全屏,这样还能看见系统的状态栏。同时 hammerspoon 还实现了简单的平铺界面切换。

1 个赞

放到early-init.el里面就行了

(add-hook 'window-setup-hook #'toggle-frame-maximized t)

这个方案有个缺陷:如果启动过程失败,整个窗口变得不可用,必须执行以下snippet才能恢复。

(setq-default inhibit-redisplay nil
              inhibit-message nil)
(redisplay)

还需要加一些异常处理才能完善。

更新如下:

(setq-default inhibit-redisplay t
              inhibit-message t)
(defun reset-inhibit-vars ()
  (setq-default inhibit-redisplay nil
                inhibit-message nil)
  (redraw-frame))
(add-hook 'window-setup-hook #'reset-inhibit-vars)
(define-advice startup--load-user-init-file (:after (&rest _) reset-inhibit-vars)
  (and init-file-had-error (reset-inhibit-vars)))
2 个赞

:+1: :+1:

谢谢大佬!这个更好的处理还通用于不同的操作系统 ~

也学到了从外部的系统直接让 Emacs 最大化 @aqua0210

此话题已在最后回复的 730 天后被自动关闭。不再允许新回复。