从spacemacs迁移到DOOM;company-childframe by @tumashu

弄了个完美的版本:

(setq ns-use-native-fullscreen nil)
(setq ns-use-fullscreen-animation nil)
(run-at-time "5sec" nil
             (lambda ()
               (let ((fullscreen (frame-parameter (selected-frame) 'fullscreen)))
                 ;; If emacs has in fullscreen status, maximized window first, drag from Mac's single space.
                 (when (memq fullscreen '(fullscreen fullboth))
                   (set-frame-parameter (selected-frame) 'fullscreen 'maximized))
                 ;; Manipulating a frame without waiting for the fullscreen
                 ;; animation to complete can cause a crash, or other unexpected
                 ;; behavior, on macOS (bug#28496).
                 (when (featurep 'cocoa) (sleep-for 0.5))
                 ;; Call `toggle-frame-fullscreen' to fullscreen emacs.
                 (toggle-frame-fullscreen))))
  1. 先设置不准用Mac原生全屏窗口
  2. 5秒以后, 先检测是不是已经被 Mac 窗口管理器自助主张全屏了,如果已经全屏了,先最大化把Emacs从独立工作区拉回来, 如果Mac没有自作主张就不管窗口状态
  3. 窗口正常状态后, 调用 toggle-frame-fullscreen 进入全屏状态, 这样以后再调用命令 toggle-frame-fullscreen 也不会出错了.
2 个赞