Subject: =?UTF-8?Q?27.0.90; _Cannot_start_with_non-native_toggle-frame-fullscreen_?=on macOS

From: "Michael Sanders" <[email-masked]>
Date: Thu, 05 Mar 2020 02:39:42 +0000

On macOS, it doesn’t seem to be possible to specify an `initial-frame-alist` that starts Emacs in “non-native” fullscreen mode (i.e., without the system animation and taking up a separate Space in Mission Control). To see the difference, use `toggle-frame-fullscreen` which has the desired behavior. This can be compared with clicking the green fullscreen icon on the window, which will use the system fullscreen. On the emacs-mac port by Yamamoto Mitsuharu, it’s possible to specify the following to start in this mode:

```
(setq initial-frame-alist '((fullscreen . fullboth)))
```

However, both this and `(setq initial-frame-alist '((fullscreen . fullscreen)))` do not have this effect on the main build of Emacs. They always use the system fullscreen.

Michael

In GNU Emacs 27.0.90 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version 10.14.6 (Build 18G3020))
 of 2020-03-01 built on mks.local
Repository revision: b42b894d1def7180ab715615116fe6af65b76bd8
Windowing system distributor 'Apple', version 10.3.1671
Recent messages:
Searched 0/1 files
Searched 1/1 files
Wrote /Users/mks/.emacs.d/.local/cache/undo-tree-hist/.!usr!local!Cellar!emacs-plus!HEAD-b42b894!share!emacs!27.0.90!lisp!frame.el.gz.~undo-tree~
evil-line-move: End of buffer [6 times]
Quit [3 times]
user-error: Minibuffer is inactive
Searched 0/1 files
Searched 1/1 files
Quit
Mark activated

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs-plus/HEAD-b42b894/share/info/emacs
 --prefix=/usr/local/Cellar/emacs-plus/HEAD-b42b894 --with-xml2
 --without-dbus --with-gnutls --with-imagemagick --with-json
 --with-modules --with-rsvg --with-ns --disable-ns-self-contained'

Configured features:
RSVG IMAGEMAGICK GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS NS MODULES THREADS JSON PDUMPER LCMS2 GMP

Important settings:
 value of $LC_ALL: en_US.UTF-8
 value of $LANG: en_US.UTF-8
 locale-coding-system: utf-8

Major mode: Org

Minor modes in effect:
 global-evil-mc-mode: t
 evil-mc-mode: t
 eros-mode: t
 git-gutter-mode: t
 whitespace-mode: t
 global-evil-surround-mode: t
 evil-surround-mode: t
 org-bullets-mode: t
 evil-org-mode: t
 vi-tilde-fringe-mode: t
 goto-address-mode: t
 hl-line-mode: t
 display-line-numbers-mode: t
 flycheck-popup-tip-mode: t
 yas-minor-mode: t
 org-indent-mode: t
 global-magit-file-mode: t
 magit-file-mode: t
 diff-auto-refine-mode: t
 recentf-mode: t
 save-place-mode: t
 global-so-long-mode: t
 ws-butler-global-mode: t
 ws-butler-mode: t
 global-git-commit-mode: t
 async-bytecomp-package-mode: t
 global-flycheck-mode: t
 flycheck-mode: t
 editorconfig-mode: t
 smartparens-global-mode: t
 smartparens-mode: t
 projectile-mode: t
 gcmh-mode: t
 better-jumper-mode: t
 better-jumper-local-mode: t
 company-prescient-mode: t
 prescient-persist-mode: t
 global-company-mode: t
 company-mode: t
 ivy-rich-mode: t
 ivy-mode: t
 evil-goggles-mode: t
 evil-escape-mode: t
 evil-snipe-override-mode: t
 evil-snipe-mode: t
 evil-snipe-override-local-mode: t
 evil-snipe-local-mode: t
 which-key-mode: t
 savehist-mode: t
 winner-mode: t
 solaire-global-mode: t
 solaire-mode: t
 persp-mode: t
 global-undo-tree-mode: t
 undo-tree-mode: t
 shell-dirtrack-mode: t
 evil-mode: t
 evil-local-mode: t
 +popup-mode: t
 ns-auto-titlebar-mode: t
 general-override-mode: t
 global-eldoc-mode: t
 eldoc-mode: t
 electric-indent-mode: t
 mouse-wheel-mode: t
 tool-bar-mode: t
 menu-bar-mode: t
 file-name-shadow-mode: t
 global-font-lock-mode: t
 font-lock-mode: t
 window-divider-mode: t
 auto-composition-mode: t
 auto-encryption-mode: t
 auto-compression-mode: t
 size-indication-mode: t
 line-number-mode: t
 auto-fill-function: yas--auto-fill
 transient-mark-mode: t

Load-path shadows:
/Users/mks/.emacs.d/.local/straight/build/let-alist/let-alist hides /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr emacsbug sendmail evil-collection-evil-mc evil-mc
evil-mc-command-execute evil-mc-command-record evil-mc-cursor-make
evil-mc-region evil-mc-cursor-state evil-mc-undo evil-mc-vars
evil-mc-known-commands evil-mc-common elisp-demos flycheck-cask
jka-compr hide-mode-line evil-collection-helpful helpful trace
evil-collection-edebug edebug info-look evil-collection-info info
dash-functional help-fns radix-tree evil-collection-elisp-refs
elisp-refs loop org-capture org-agenda org-refile lv eros
highlight-quoted rainbow-delimiters highlight-numbers parent-mode
evil-collection-elisp-mode elisp-mode git-gutter-fringe fringe-helper
git-gutter evil-collection-vc-git vc-git auto-minor-mode whitespace
org-eldoc evil-embrace evil-surround embrace expand-region
text-mode-expansions the-org-mode-expansions er-basic-expansions
expand-region-core expand-region-custom toc-org org-bullets evil-org
vi-tilde-fringe goto-addr hl-line display-line-numbers doom-snippets
doom-snippets-lib yasnippet flycheck-popup-tip evil-collection-popup
popup org-indent disp-table ol-bibtex bibtex smartparens-org orgit
evil-magit evil-collection-magit-todos magit-todos pcre2el rxt
re-builder hl-todo f github-review ghub-graphql treepy gsexp ghub
url-http tls url-gw nsm url-auth url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap gnutls
evil-collection-magit magit-autoloads magit-submodule magit-obsolete
magit-popup magit-blame magit-stash magit-reflog magit-bisect magit-push
magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
core-packages package url-handlers url-parse auth-source url-vars
magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff
smerge-mode evil-collection-diff-mode diff-mode magit-core
magit-autorevert magit-margin magit-transient magit-process magit-mode
org-yt org-element avl-tree generator org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete
org-list org-faces org-entities evil-collection-outline noutline outline
org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys
org-compat org-macs org-loaddefs evil-collection-calendar cal-menu
calendar cal-loaddefs face-remap paren recentf tree-widget saveplace
so-long ws-butler git-commit with-editor async-bytecomp async transient
magit-git magit-section magit-utils crm evil-collection-log-edit
log-edit message rmc puny format-spec rfc822 mml mml-sec password-cache
evil-collection-epa epa epg epg-config gnus-util rmail rmail-loaddefs
time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils
mailheader pcvs-util add-log evil-collection-flycheck flycheck json map
find-func editorconfig smartparens-config smartparens-text smartparens
dash char-fold cursor-sensor projectile evil-collection-grep grep
ibuffer-vc ibuf-ext evil-collection-ibuffer ibuffer ibuffer-loaddefs amx
s gcmh better-jumper seq company-prescient prescient company-capf
company evil-collection-ivy ivy-rich counsel xdg ivy-xref
evil-collection-xref xref project eieio eieio-core eieio-loaddefs
evil-collection-dired dired dired-loaddefs swiper ivy delsel colir color
ivy-overlay evil-goggles evil-escape evil-snipe
evil-collection-which-key which-key server savehist winner autorevert
filenotify nav-flash evil-collection-compile evil-collection-help
evil-collection-custom cus-edit cus-start cus-load wid-edit
evil-collection-comint evil-collection annalist compile pulse
solaire-mode doom-themes-ext-org doom-themes-ext-treemacs
doom-Iosvkem-theme doom-themes doom-themes-base persp-mode ibuf-macs
evil evil-integration undo-tree diff evil-maps evil-commands reveal
flyspell ispell evil-jumps evil-command-window evil-types evil-search
shell pcomplete comint ansi-color evil-macros evil-repeat evil-states
evil-core byte-opt advice evil-common windmove thingatpt rect
evil-digraphs evil-vars ring easy-mmode all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons memoize let-alist derived
core-editor core-projects core-ui edmacro kmacro ns-auto-titlebar
core-keybinds pp general cl-extra help-mode easymenu cl-seq
use-package-core bytecomp byte-compile cconv rx cl core-modules core
core-lib pcase cl-macs gv subr-x cl-loaddefs cl-lib tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win
ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads kqueue cocoa ns
lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 639534 186415)
 (symbols 48 43669 7)
 (strings 32 153787 39250)
 (string-bytes 1 4570707)
 (vectors 16 68702)
 (vector-slots 8 1649906 251702)
 (floats 8 907 676)
 (intervals 56 3037 605)
 (buffers 1000 23))