From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: David Hedlund Newsgroups: gmane.emacs.devel Subject: Re: Solution to a proposed FAQ, how to maximize emacs quickly (like `emacs --maximize`) for GNU/Linux - Improved solution by Chad: ~/.emacs.d/early-init.el Date: Fri, 29 Sep 2023 00:39:40 +0200 Message-ID: References: <19e53542-bfb0-4e48-8845-01fd34d93dbb@beloved.name> <87zg19ja6k.fsf@thaodan.de> <87lecsd0ob.fsf@dataswamp.org> <17c5289f-2549-48b6-a1ef-9497a375ee5e@beloved.name> <08e27ad4-f7b6-4177-9b34-6412122812c1@beloved.name> <87v8bviw8p.fsf@dataswamp.org> <84ec22ac-299e-4849-adaf-e604d20218a6@beloved.name> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="------------IpIl5A1gy0LAJh0OfKIs9ti9" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12645"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird To: emacs-devel@gnu.org, corwin@bru.st Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 29 00:40:31 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qlzgM-0002zu-8e for ged-emacs-devel@m.gmane-mx.org; Fri, 29 Sep 2023 00:40:30 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qlzfi-0007QO-Te; Thu, 28 Sep 2023 18:39:50 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qlzfh-0007Q9-Cw for emacs-devel@gnu.org; Thu, 28 Sep 2023 18:39:49 -0400 Original-Received: from relay9-d.mail.gandi.net ([217.70.183.199]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qlzfe-0007mm-9Y for emacs-devel@gnu.org; Thu, 28 Sep 2023 18:39:49 -0400 Original-Received: by mail.gandi.net (Postfix) with ESMTPSA id 6BFDDFF806; Thu, 28 Sep 2023 22:39:41 +0000 (UTC) Content-Language: en-US In-Reply-To: X-GND-Sasl: public@beloved.name Received-SPF: pass client-ip=217.70.183.199; envelope-from=public@beloved.name; helo=relay9-d.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:311135 Archived-At: This is a multi-part message in MIME format. --------------IpIl5A1gy0LAJh0OfKIs9ti9 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 * 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: * 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. * ~/.emacs.d/early-init.el prevents the the visually distracting effect is (add-to-list 'default-frame-alist '(fullscreen . maximized)) * Works for GNU/Linux (X11, Wayland), [Windows], [macOS], [BSD] --------------IpIl5A1gy0LAJh0OfKIs9ti9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


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

* 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:

* 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.

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

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


--------------IpIl5A1gy0LAJh0OfKIs9ti9--