Wayland native Emacs

Emacs has a pure gtk build option that can run on wayland without xwayland. However that doesn’t seem to be in fedora repositories at the moment.

I found this copr: bhavin192/emacs-pretest Copr which builds it, however it had no aarch64 builds so I forked it and submitted a aarch64 build which succeeded (see rahguzar/emacs-pretest Copr) and it is what I am using now. However I wanted to ask if there are any upcoming plans to provide pgtk-emacs in the official repos?

For current rawhide and Fedora 40 the regular Emacs package is complied with --with-pgtk, so this will be the default once Fedora 40 is released (2233581 – Build Emacs with support for HiDPI and Tree Sitter)

That is great to know. I basically ran the build for Fedora 40 on Fedora 39 to get Emacs 29.2 so it is good to know that these packaging shenanigans (which I don’t understand at all) won’t be necessary soon.

By the way: is it possible to prevent some stuff from ending up in site-lisp? E.g. desktop-entry-mode mode which is quite bad compared to the built-in conf-desktop-mode.

Those files are part of the desktop-file-utils package so you would need to report a bug for that package if you think it should be removed.

$ rpm -qf /usr/share/emacs/site-lisp/desktop-file-utils/
desktop-file-utils-0.26-9.fc39.x86_64

I’ve been having problems with the Xwayland emacs on fedora 39 (asahi), it has lots of screen tearing and things displayed in the wrong place (screen corruption). Thanks to this thread, I got the pure wayland emacs from fedora 40 working and it has none of those problems.

I installed fedora:40 in distrobox from fedora 39 (asahi):

distrobox create --image fedora:40 --name fedora40
distrobox enter fedora40

Inside I installed regular emacs from fedora repos, which like @bkhl said, it now supports pure wayland. (You can verify this with the xlsclients which should show empty.)

From my fedora 39 (asahi) host, I created this script in /usr/local/bin/emacs:

#!/bin/bash

distrobox enter fedora40 -- emacs $@

and then chmod a+x /usr/local/bin/emacs

When running emacs, I use the internal shell a lot, and so now it opens the fedora:40 shell by default (because emacs is running there), so if I want to get back into the host shell (39) I can run this from the container:

distrobox-host-exec bash

(I do have some issues left to deal with regarding keyboard shortcuts. Some bindings (Meta_L) are not being interpreted by emacs in distrobox, although it seems like wev shows it just fine?)

@rahguzar I wasnt able to find your forked emacs-pretest, but only the copr page. I couldn’t install it because the latest version 29.2 from fedora repos masks your older version. Anyway I’m moderately happy with using distrobox and not having to deal with a copr, but just letting you know.

Here’s a COPR with a new build of Emacs with PGTK which can be layered on Fedora 39: stevenlin/emacs-pgtk-nativecomp Copr

1 Like

Thats great @bkhl , except I need a aarch64 build for asahi.

This is probably just as well since I don’t know anything about Fedora packaging. I mucked around and it is working from me but I can’t say I knew what I was doing.

However the version I have installed from COPR is now 29.2.

I see that, but its showing as version 1:29.2-1 which is older than the latest version in the fedora repos, which is 1:29.2-2.fc39, so its masked for me.

Though I probably know less about fedora packaging than you do. I was trying to figure out how do I trust this COPR thing? Or how to fork yours and make my own? I am more familiar with how do this on Arch Linux with the AUR, but I can’t see any way to see the actual source code that your COPR is based upon, it seems just as a binary download only. No big deal. Anyway, its just what I’m starting to research about now.

I’m sorry, I just need to be logged in. Now I see the fork button.

OK, that was pretty easy actually. Here’s a new build for aarch64 asahi:

https://copr.fedorainfracloud.org/coprs/enigm-a/emacs-pgtk-nativecomp/

Thanks to both of you, I think I finally get it now!