On 9/29/23 19:54, David Hedlund wrote:


On 9/29/23 19:18, David Hedlund wrote:


On 9/29/23 00:39, David Hedlund wrote:


On 9/28/23 22:05, chad wrote:
Apologies for joining late, and perhaps you have already tried and discounted this approach, but: Have you tried adding:

(push '(fullscreen . maximized) default-frame-alist)

or perhaps

(push '(fullscreen . maximized) initial-frame-alist) 

to early-init? I put the first above line in ~/.emacs.d/early-init.el, and got an initially maximized window under an odd Wayland+XWayland system as well as Win 11. I don't have reasonable access to either a more typical X11, Wayland, or macOS system right now.

The key is to put it in early-init.el, which is consulted before emacs makes any windows in any window system. Also worth noting: if you end up with conflicting elisp settings and X resources, there are a variety of ways for the latter to silently override the former. You can check this with "xrdb -query" (you might want to run this in a shell buffer or pipe it to a pager).

Hope this helps,
~Chad

Today is a good day. This is working like a charm! I tried default-frame-alist, and initial-frame-alist, in upgraded virtual machines right now:

* X11:

** Trisquel 11: Working

** Ubuntu MATE 22.04: Working

** Ubuntu 23.04: Working

* Wayland

** Ubuntu 22.04: Working

** Ubuntu 23.04: Working

This is the only solution so far that relies 100% on Emacs Lisp. I think this can be documented in https://www.gnu.org/software/emacs/manual/html_node/efaq/Fullscreen-mode-on-GNU-Linux.htm

Your solution effectively replaces my devilspie2 solution, Chad. Thank you very, very much!


REQUEST: Can anyone please try Chad's solution and confirm if it is working for

* Windows 11

It works in Windows 11 too. I just tested this in Win11_22H2_EnglishInternational_x64v2.iso Home edition, upgraded.

"(push '(fullscreen . maximized) default-frame-alist)" is added to .emacs.d/early-init.el it expanded the buffer equally quickly like when this was added to a .emacs file (with 100 lines):

(add-hook 'emacs-startup-hook 'toggle-frame-maximized)

(setq frame-resize-pixelwise t)
(set-frame-position nil 0 0)
(set-frame-size nil (display-pixel-width) (display-pixel-height) t)


For GNU/Linux adding this to .emacs (same file size as for the Windows 11 experiment) caused a delay:

(add-hook 'emacs-startup-hook 'toggle-frame-maximized)


So for Windows, there are two methods that can be used, but for GNU/Linux only one solution works (adding "(push '(fullscreen . maximized) default-frame-alist)" to .emacs.d/early-init.el)


With this said, the OS independent solution is to add "(push '(fullscreen . maximized) default-frame-alist)" to .emacs.d/early-init.el which can be documented in a new page, https://www.gnu.org/software/emacs/manual/html_node/efaq/Fullscreen-mode.htm



* macOS

* BSD


If it is working for all of them, perhaps it's better to add a basic section (e.g. https://www.gnu.org/software/emacs/manual/html_node/efaq/Fullscreen-mode.htm) and document that the solution:


* The only reason why I suggested the file name https://www.gnu.org/software/emacs/manual/html_node/efaq/Fullscreen-mode-on-GNU-Linux.html, or https://www.gnu.org/software/emacs/manual/html_node/efaq/Fullscreen-mode, is to make it consistent with https://www.gnu.org/software/emacs/manual/html_node/efaq/Fullscreen-mode-on-MS_002dWindows.html that is describing both fullscreen mode, but also maximized mode.

* Perhaps it's better to use the file name https://www.gnu.org/software/emacs/manual/html_node/efaq/Fullscreen-maximize-mode.html to avoid confusion.

Eli said: "

"Fullscreen" is widely accepted terminology for what is discussed
there.  Moreover, typing "i maximized RET" and "i fullscreen RET" in
both the ELisp and the Emacs user manuals brings you to the same text,
so we already have the two equivalent terms covered, and renaming the
node is not necessary IMO."



* Will quickly maximize emacs (like `emacs -mm`) by using ~/.emacs.d/early-init.el, to avoid the slightly distracting visual effect of Emacs starting with its default frame size and then growing to fullscreen. Adding  "(add-to-list 'default-frame-alist '(fullscreen . maximized))" to the top of ~/.emacs will is cause the distracting visual effect if additionally typically configurations are added in ~/.emacs.

* Only requires Emacs lisp and works out of the box.

* Will be executed automatically when emacs starts.

---------------8<-----------------------

Just to avoid confusion, this line was added by mistake:

* ~/.emacs.d/early-init.el prevents the the visually distracting effect is (add-to-list 'default-frame-alist '(fullscreen . maximized))

Of course, I meant that it should be what Chad suggested: (push '(fullscreen . maximized) default-frame-alist)


End, this line was added by mistake

---------------8<-----------------------


* Works for GNU/Linux (X11, Wayland), [Windows], [macOS], [BSD]