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:54:42 +0200 Message-ID: <6a7034f0-db9d-433d-9b86-2769356ed513@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> <8e8ddc25-c4c7-48dc-a7e1-c84472387053@beloved.name> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="------------q75PPXGrXsgdZUep01v0kkaA" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22616"; 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:55:57 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 1qmHiX-0005ZN-4u for ged-emacs-devel@m.gmane-mx.org; Fri, 29 Sep 2023 19:55:57 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qmHhW-0000jS-St; Fri, 29 Sep 2023 13:54:55 -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 1qmHhU-0000jI-Tf for emacs-devel@gnu.org; Fri, 29 Sep 2023 13:54:52 -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 1qmHhP-0003xs-HW for emacs-devel@gnu.org; Fri, 29 Sep 2023 13:54:52 -0400 Original-Received: by mail.gandi.net (Postfix) with ESMTPSA id 8ECD420005 for ; Fri, 29 Sep 2023 17:54:43 +0000 (UTC) Content-Language: en-US In-Reply-To: <8e8ddc25-c4c7-48dc-a7e1-c84472387053@beloved.name> 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: -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, 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:311187 Archived-At: This is a multi-part message in MIME format. --------------q75PPXGrXsgdZUep01v0kkaA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 >> >> * 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. >> * 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] >> >> --------------q75PPXGrXsgdZUep01v0kkaA Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


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

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


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


--------------q75PPXGrXsgdZUep01v0kkaA--