unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#57939: 29.0.50; Fixing raise-frame on Sway
@ 2022-09-19 16:21 Sean Whitton
  2022-09-20  1:30 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: Sean Whitton @ 2022-09-19 16:21 UTC (permalink / raw)
  To: 57939

Under Sway, with pgtk, raise-frame doesn't work.  We could make it work
by using Sway's IPC to send a request to "focus" the frame.  This can be
done without invoking any external processes, but here is a hack using
swaymsg(1) just as a demonstration:

    (defun spw/sway-raise-frame (orig-fun &optional frame)
      (unless frame (setq frame (selected-frame)))
      (if (member "XDG_CURRENT_DESKTOP=sway"
                  (frame-parameter frame 'environment))
          (call-process "swaymsg" nil nil nil
    		    (format "[title=\"%s\"]"
                            (frame-parameter frame 'name))
    		    "focus")
        (funcall orig-fun frame)))
    (advice-add 'raise-frame :around #'spw/sway-raise-frame)

On the one hand, Sway is one of the more popular Wayland compositors, so
it would be nice to support this.  On the other hand, this isn't a
generic wlroots mechanism -- it will work only for Sway.  (I suppose
it's possible that some other compositors will adopt Sway's IPC.)

Would this be an appropriate thing to add to raise-frame?  Or is it
better left as a piece of advice?  The IPC protocol is documented here:
<https://manpages.debian.org/sway-ipc>.

-- 
Sean Whitton





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#57939: 29.0.50; Fixing raise-frame on Sway
  2022-09-19 16:21 bug#57939: 29.0.50; Fixing raise-frame on Sway Sean Whitton
@ 2022-09-20  1:30 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-20  5:32   ` Sean Whitton
  0 siblings, 1 reply; 5+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-20  1:30 UTC (permalink / raw)
  To: Sean Whitton; +Cc: 57939

Sean Whitton <spwhitton@spwhitton.name> writes:

> Under Sway, with pgtk, raise-frame doesn't work.  We could make it work
> by using Sway's IPC to send a request to "focus" the frame.  This can be
> done without invoking any external processes, but here is a hack using
> swaymsg(1) just as a demonstration:
>
>     (defun spw/sway-raise-frame (orig-fun &optional frame)
>       (unless frame (setq frame (selected-frame)))
>       (if (member "XDG_CURRENT_DESKTOP=sway"
>                   (frame-parameter frame 'environment))
>           (call-process "swaymsg" nil nil nil
>     		    (format "[title=\"%s\"]"
>                             (frame-parameter frame 'name))
>     		    "focus")
>         (funcall orig-fun frame)))
>     (advice-add 'raise-frame :around #'spw/sway-raise-frame)

> On the one hand, Sway is one of the more popular Wayland compositors, so
> it would be nice to support this.  On the other hand, this isn't a
> generic wlroots mechanism -- it will work only for Sway.  (I suppose
> it's possible that some other compositors will adopt Sway's IPC.)

If there's anything I've learned in over 2 decades of dealing with
windowing on GNU/Linux, it's that these mechanisms tend to be yanked
from underneath our feet.  It sounds very risky to add support for that
to such a basic function in Emacs.

In addition, raise-frame is not really supposed to focus the frame.  But
I guess that's unavoidable here.

And what if there are multiple frames with the same name? What frame is
raised in that case?

So thanks, but this is not really the right thing for Emacs.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#57939: 29.0.50; Fixing raise-frame on Sway
  2022-09-20  1:30 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-20  5:32   ` Sean Whitton
  2022-09-20  6:12     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: Sean Whitton @ 2022-09-20  5:32 UTC (permalink / raw)
  To: Po Lu, 57939

Hello,

On Tue 20 Sep 2022 at 09:30AM +08, Po Lu wrote:

> If there's anything I've learned in over 2 decades of dealing with
> windowing on GNU/Linux, it's that these mechanisms tend to be yanked
> from underneath our feet.  It sounds very risky to add support for that
> to such a basic function in Emacs.

Sway is pretty committed to interface stability, but it's a valid concern.

> And what if there are multiple frames with the same name? What frame is
> raised in that case?

Yeah, we'd need to make a more precise IPC query to get some sort of
unique handle.

-- 
Sean Whitton





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#57939: 29.0.50; Fixing raise-frame on Sway
  2022-09-20  5:32   ` Sean Whitton
@ 2022-09-20  6:12     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-20 10:12       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-20  6:12 UTC (permalink / raw)
  To: Sean Whitton; +Cc: 57939

Sean Whitton <spwhitton@spwhitton.name> writes:

> Sway is pretty committed to interface stability, but it's a valid concern.

I'm not worried about whether or not Sway keeps the interface stable,
the problem is whether or not Sway will still be a thing in 2, 5, 10, or
20 years.

Not to mention that Sway is still a niche compositor, compared to the
likes of GNOME Shell or Kwin.

If we take the route of supporting non-standard interfaces provided by
all "popular" Wayland compositors at any given time, then we will
quickly fall into the rabbit hole of constantly keeping up with changes
to that status quo.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#57939: 29.0.50; Fixing raise-frame on Sway
  2022-09-20  6:12     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-20 10:12       ` Lars Ingebrigtsen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-20 10:12 UTC (permalink / raw)
  To: Sean Whitton; +Cc: Po Lu, 57939

Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <bug-gnu-emacs@gnu.org> writes:

> I'm not worried about whether or not Sway keeps the interface stable,
> the problem is whether or not Sway will still be a thing in 2, 5, 10, or
> 20 years.

That is indeed a worry.

> Not to mention that Sway is still a niche compositor, compared to the
> likes of GNOME Shell or Kwin.
>
> If we take the route of supporting non-standard interfaces provided by
> all "popular" Wayland compositors at any given time, then we will
> quickly fall into the rabbit hole of constantly keeping up with changes
> to that status quo.

There's no set rules for any of this -- but we want Emacs to be as
usable as possible across as large a number of systems as possible.
This means that we have a lot of special purpose code in Emacs to work
around oddities in systems, and to interact with specific systems and
libraries.

Sway seems to be one of the major players in the Wayland world, so I'd
welcome code to make Emacs work better under Sway.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-09-20 10:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-19 16:21 bug#57939: 29.0.50; Fixing raise-frame on Sway Sean Whitton
2022-09-20  1:30 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-20  5:32   ` Sean Whitton
2022-09-20  6:12     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-20 10:12       ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).