I have rebuilt Emacs 29 with PGTK in order to get Emacs running natively and to fix the fonts, and i already have another emacs 29 build (Lucid) installed with i use On X.
I was surprised to see Emacs on wayland was running slower than its counterpart on Xwayland. Also the fonts issue was not fixed.
While zooming in makes the fonts look better. On X i don’t have this issue.
Below is screenshots of fonts on Wayland - Xwayland and X
All the screenshots look blurry to me.
Btw, if you are upscaling XWayland windows, have you tried disabling that and then using a higher font size in Emacs?
Recently I was reading #emacs and saw that some claim pgtk, or native wayland, is bodged and not feature complete. Is that right? If so, which is the best toolkit to compile from source with to run under XWayland?
It’s feature complete but limited because Wayland is limited.
For example there’s no way for Emacs to know which frames are currently visible.
The author of the emacs pgtk code says that no one who has X installed should use pgtk – he’s stated on several occasions that if you have X at all then you should use a supported X toolkit in Emacs for best results.
I’ve seen counter-arguments that pgtk is still beneficial if you happen to have a “high DPI display”, but I believe that’s the only argument I’ve ever seen for using pgtk under X.
I always build
--with-x-toolkit=lucid
myself, and can happily vouch for that one. I don’t use Wayland, though.The issue is that the pure GTK port doesn’t have those functions that are based on Xlib such as frame properties that come from X11. Some feature specific to X11 that can be implemented purely with GTK are not implemented such as outer window id’s (I have a patch for that). So in theory the pure GTK windowing system could replace the GTK with X11 calls if it optionally allows the call of functions that depend on X11 if requested.
Pure GTK also allows the use of GTK input methods besides the better high dpi scaling.
From my own experience I’ve found no issues using pgtk on Wayland.
If you’re not on a high DPI display, then all I can think is that some font hinting/autoaliasing settings must be out of wack.
i think i am, like you said its probably a font hinting/autoaliasing issue.
Do you know of any solutions i could try?
While you might not notice the difference between the screenshots. If you download the full resolution images (X and Wayland or Xwayland) You’ll see the difference.
its like its cut and not drawn properly. This issue is only on Emacs.I use pgtk on Arch Linux Swaywm.
Fonts are looking good for meWhat’s your font config? Using any anti aliasing or hinting?
Here you can find it
I like the vertical bars outlining the function structures - how is that done?
I’m using highlight-indent-guides
(use-package! highlight-indent-guides :init (add-hook 'prog-mode-hook 'highlight-indent-guides-mode) (setq highlight-indent-guides-method 'character highlight-indent-guides-delay 0 highlight-indent-guides-responsive 'stack highlight-indent-guides-auto-enabled nil))
I recommend using https://github.com/jdtsmith/indent-bars it’s a good deal faster than any of the other indent-bar solutions. AFAIK Emacs 29 is required and some caveats do apply.
Having had a hidpi monitor for ages, PGTK has been so great and so incredibly better at rendering fonts, menus, bars, etc, tan any X toolkit, and managing scaling correctly, that I switched while still was an alpha version in someone’s github. The worst problem is that pixmaps are shown 1:1, pixel by pixel (being impossible to distinguish on a high dpi display), while the text is properly scaled, it’s unusable.
Never looked back. Well, no, I’ve tried the X version a few times and it sucked, as I remembered.
As there seems to be quite a lot of hate for Wayland and PGTK I too can confess that all reasons of u/noi-gai are also my experiences for using Emacs on Linux. If there wouldn’t be Wayland scaling support with PGTK I wont use Emacs GUI any longer, as everyting would be blurry.
Now I do not know what I miss by not using X as I do not wander back and forth but stick to Wayland since years. Oh I do miss proper GTK integration, but this is only ever going to happen with multithreading-support.
I have a NVIDIA graphics card (GTX 1080), and a 4K monitor which I’d like to use with 150% fractional scaling. My experience is:
- GNOME worked, but the fractional scaling made the fonts blurry. 100% or 200% looks sharp, but 150% is bad.
- KDE, and various tiling wm compositors I tried, looked ok but had issues with flickering. I’d type something, and the cursor would often “move backwards” and look like I’ve deleted a bunch of characters, and then jump back forward.
- Hyprland was the only one where Emacs worked perfectly. But then I got flickering in games.
So I’m just sticking to X, probably until I get another PC.BTW, WSL uses Wayland as well, and I couldn’t run Emacs on that either. Input lag when I maximize the window, as in this, but the workarounds there didn’t solve it. I ended running it in XWayland in WSL and that worked fine.
Hyprland works perfectly on my laptop, but on my PC the mouse cursor doesn’t show up :/
Same. Clipboard sharing with other apps won’t work either. I think it’s better to build emacs without pgtk. There are no benefits.