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/

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:


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:


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