Re: SDL terminal type
Po Lu <[email protected]>
| Newsgroups | gmane.emacs.devel |
|---|---|
| Message-ID | <[email protected]> |
Alcor <[email protected]> writes: > Even this minimal level of maintenance is unlikely to last for a long > time, especially after Gtk5 is released. > > The Gtk UI toolkit is a moving target, and, with it being actively > developed, will continue to have new major releases in the future, so > any reduction of coupling between Emacs and the UI toolkit > implementation will be useful in easing future migrations. > > Cheers, Speaking as a person who has ported Emacs to GTK 4, I would strenuously recommend against it. GTK 4.x was designed with even less regard than was its predecessors for the requirements of programs, such as Emacs, which make use of GUI libraries in a not merely superficial fashion. One good illustration of this is that the GtkMenu* widgets were deleted upon some trumpery pretext with vague allusions to the obsolescence of X11, and replaced with a declarative system which is supposed to be used by defining menus in XML. It requires a new menu bar widget to be created whenever the menu bar is altered, does not provide for some of the button types capable of being defined by Emacs, and is cumbersome to invoke in order to create menus manually. This is antithetical to Emacs's approach of only generating a menu when the menu bar itself is activated. GTK has already proved to have no promise as a long-term expedient for supporting Wayland, and I suggest pursuing a terminal backend using the Wayland APIs directly instead. I have always intended to do so, but there is a project at work preventing me from improving Emacs on Unix systems. Moreover, SDL generally supports keyboard input, input devices, and input method editors poorly, as was discovered by Luanti when they adopted it: https://github.com/luanti-org/luanti/issues/14545 And at least one of these modalities is the prop and stay of Emacs, limitations in which are much less acceptable here than in a video game. (GTK 3.x itself has a similar problem preventing `C-S-u' and `C->' from registering which has been reported repeatedly.)