Moving another thread here as a guide.
Hi all,
This is a little tip for people using fractional scaling on the Wayland variant of GNOME who have noticed that VSCodium has blurry text. It’s due to some issues with Electron and font rendering whilst using fractional scaling on Wayland.
The following command works for me on Fedora 35 to resolve this:
codium --enable-features=UseOzonePlatform --ozone-platform=wayland --log debug --log debug
Sources:
You can try editing your codium.desktop
to use this command instead of the default, not sure how it fairs across updates. I imagine this issue will be fixed in future. Side effect: this removes the title bar from the GUI (not an issue for me personally).
This is a super old post, but I had a question!
Does your vscode (and other electron apps) have odd window borders when maximized? I was unable to capture it via screen recorder(s), but it looks like a multi-colored artifacting happening between the top border and the window decorations. This happens in a few different electron apps (vscode, slack, signal) but not in Discord for whatever reason.
Thanks for moving this!
However, I am already running code using the appropriate flags. The issue in describing actually occurs with the flags, not without.
I have noticed one line of missing pixel between wayland window decoration and the actual window on electron app on Fedora 39 Beta Gnome.
For vscode in particular, you can set window title bar to custom instead of native in the vscode setting.
This worked! Now if only I could pass similar arguments to slack and other electron apps (except discord?).
You should be able to as long as the way it’s packaged allows you to passthrough flags. It’s built into Electron as of v12, which has existed for a few years now so as long as the application has been updated recently it should support it. I’ve done this for beeper and some other electron apps before.
Edit: looking online it looks like Electron should automatically set the ozone platform as of Electron v20, or you only need to passthrough --ozone-platform-hint=auto
and it will figure out if you’re using X11 or Wayland.
I’m presently running slack like this:
slack --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer --enable-features=WaylandWindowDecorations --ozone-platform=wayland -s %U
However, replacing the last flag with --ozone-platform-hint=auto does not make much of a difference (there is still a 1 pixel border between the titlebar and the window).
It is super distracting - everytime I type, it flickers!
Thanks for the reply!
Oh sorry, I missed that was about the pixel border issue. My bad!
I’m kinda guessing this is specific to Mutter, Gnome’s compositor. There are similar issues with KDE’s compositor Kwin, though I think those are fixed. There isn’t anything blanket Electron side that can be done, since the electron app would need to implement a custom window decoration.
No update in three years.
This might be the biggest hammer possible for this issue, but ChromeOS devs developed a compositor called sommelier for Wayland/X11 interop that includes fractional scaling support and guest/host support? I haven’t tried it myself, but it seems like it’s been kept up to date, anyways.
This works great on Ubuntu - just make sure to install code as a deb, not a snap.
If you’d like to have this as a launcher in the Applications menu, save this as .local/share/applications/vscode-wayland-launcher.desktop
:
[Desktop Entry]
Version=1.0
Type=Application
Name=VSCode (Wayland)
Comment=Code Editing. Redefined.
Exec=/usr/bin/code --enable-features=UseOzonePlatform --ozone-platform=wayland %F
Icon=vscode
Categories=TextEditor;Development;IDE;
Keywords=vscode;
StartupNotify=true
StartupWMClass=Code
Actions=new-empty-window;
MimeType=text/plain;inode/directory;
[Desktop Action new-empty-window]
Name=New Empty Window
Exec=/usr/bin/code --enable-features=UseOzonePlatform --ozone-platform=wayland --new-window %F
Icon=com.visualstudio.code
It will then appear like this: