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 19:18:21 +0200 Message-ID: <8e8ddc25-c4c7-48dc-a7e1-c84472387053@beloved.name> 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="------------n9HdmQ01SPMcvkZwCbic2UTQ" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31595"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 29 19:19:23 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 1qmH98-0007xN-US for ged-emacs-devel@m.gmane-mx.org; Fri, 29 Sep 2023 19:19:23 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qmH8X-0001cm-Qz; Fri, 29 Sep 2023 13:18:45 -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 1qmH8U-0001cV-8R for emacs-devel@gnu.org; Fri, 29 Sep 2023 13:18:42 -0400 Original-Received: from relay7-d.mail.gandi.net ([2001:4b98:dc4:8::227]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qmH8E-0003zG-KI for emacs-devel@gnu.org; Fri, 29 Sep 2023 13:18:42 -0400 Original-Received: by mail.gandi.net (Postfix) with ESMTPSA id 1C8FF20005 for ; Fri, 29 Sep 2023 17:18:21 +0000 (UTC) Content-Language: en-US In-Reply-To: X-GND-Sasl: public@beloved.name Received-SPF: pass client-ip=2001:4b98:dc4:8::227; envelope-from=public@beloved.name; helo=relay7-d.mail.gandi.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, T_SPF_TEMPERROR=0.01 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:311177 Archived-At: This is a multi-part message in MIME format. --------------n9HdmQ01SPMcvkZwCbic2UTQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 > > * 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. > ---------------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] > > --------------n9HdmQ01SPMcvkZwCbic2UTQ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


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

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

---------------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]


--------------n9HdmQ01SPMcvkZwCbic2UTQ--