Signal-Desktop icon indicating copy to clipboard operation
Signal-Desktop copied to clipboard

signal-desktop does not support fractional scaling on wayland

Open cuu508 opened this issue 1 year ago • 6 comments

Using a supported version?

  • [X] I have searched searched open and closed issues for duplicates.
  • [X] I am using Signal-Desktop as provided by the Signal team, not a 3rd-party package.

Overall summary

I am using Ubuntu 24.04, GNOME 46, Wayland windowing system, Intel integrated graphics.

I'm using fractional scaling with 150% scale.

I've installed signal-desktop 7.12.0 from Signal's apt repository. When I launch signal-desktop, the app runs and UI elements have reasonable size, but all of the UI slightly blurry.

There are tips floating around to use signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland and also how to put together ~/.local/share/applications/signal-desktop.desktop with the same flags.

When I use this workaround I get sharp UI, but I also see several new issues:

  • the app does not launch on the first launch (the process starts and outputs stuff to console, but no UI shows up). I have to start the second instance of the app for the UI window to appear
  • the app uses a generic icon in the Alt+Tab dialog, and in the app overview (Win key)

Steps to reproduce

  1. install signal-desktop on a system using GNOME, Wayland and fractional scaling
  2. launch signal-desktop

Expected result

Sharp UI

Actual result

Blurry UI

Screenshots

Blurry UI (with GNOME Settings app on top for comparison):

image

Generic icon when using --enable-features=UseOzonePlatform --ozone-platform=wayland

image

Signal version

7.12.0

Operating system

Ubuntu 24.04

Version of Signal on your phone

No response

Link to debug log

No response

cuu508 avatar Jun 14 '24 10:06 cuu508

@cuu508 can you run an Electron Fiddle and see if you can reproduce the issue? Thanks!

trevor-signal avatar Jun 14 '24 18:06 trevor-signal

I installed electron-fiddle_0.36.3_amd64.deb. Running it with no arguments, I get blurry UI (Electron Fiddle on top, GNOME Terminal below as comparison):

Screenshot from 2024-06-14 21-58-32

If I run it with --enable-features=UseOzonePlatform --ozone-platform=wayland arguments, I get sharp UI:

Screenshot from 2024-06-14 21-59-09

Unlike signal-desktop, the UI shows up on the first launch, and the app icon is correct in Alt+Tab and app overview views.

cuu508 avatar Jun 14 '24 19:06 cuu508

@cuu508 thanks for that. The window not opening is a known issue; we're tracking it here: https://github.com/signalapp/Signal-Desktop/issues/6368.

trevor-signal avatar Jun 18 '24 17:06 trevor-signal

Same issue on Fedora Workstation 40 (wayland and using 150% fractional scaling). This seems to be an issue on flatpaks that don't support Wayland natively and rely on XWayland (source).

@cuu508 I managed to get rid of this issue by editing my signal-desktop flatpak to run with the following flags: --enable-features=UseOzonePlatform --ozone-platform=wayland. To do so, I had to edit /var/lib/flatpak/exports/share/applications/org.signal.Signal.desktop, more specifically the flatpak run command to include those flags. Not blurry anymore for me. (see #5719)

Really wish this was the default for Wayland environments until Wayland is not supported natively.

Update: It was becoming a nightmare updating these run options on a per-app basis so the temporary solution I've found is to tweak the scaling factor on gnome-tweaks to 1.25 and keep the resolution scale at 100% on gnome-settings. Apps are not blurry anymore.

RelicCornhusk avatar Jun 29 '24 20:06 RelicCornhusk

Same issue on Fedora Workstation 40 (wayland and using 150% fractional scaling). This seems to be an issue on flatpaks that don't support Wayland natively and rely on XWayland (source).

@cuu508 I managed to get rid of this issue by editing my signal-desktop flatpak to run with the following flags: --enable-features=UseOzonePlatform --ozone-platform=wayland. To do so, I had to edit /var/lib/flatpak/exports/share/applications/org.signal.Signal.desktop, more specifically the flatpak run command to include those flags. Not blurry anymore for me. (see #5719)

Really wish this was the default for Wayland environments until Wayland is not supported natively.

Update: It was becoming a nightmare updating these run options on a per-app basis so the temporary solution I've found is to tweak the scaling factor on gnome-tweaks to 1.25 and keep the resolution scale at 100% on gnome-settings. Apps are not blurry anymore.

The Flatpak maintainers already did all that work. This is from the Readme:

Wayland support can also be enabled on the command line: flatpak override --user --env=SIGNAL_USE_WAYLAND=1 org.signal.Signal

RayJW avatar Jul 03 '24 13:07 RayJW

hi, Ive come across this issue which bothers me as well, and it seems its's stale. just bumping up

michondr avatar Aug 29 '24 07:08 michondr

The Flatpak maintainers already did all that work. This is from the Readme:

Wayland support can also be enabled on the command line: flatpak override --user --env=SIGNAL_USE_WAYLAND=1 org.signal.Signal

The flag generally works, thanks! But I have the problem that I cannot resize the Signal window with that set, because the window borders don’t act as resize handles anymore. So this does not seem to be ready for prime time yet.

frederik-elwert avatar Oct 01 '24 13:10 frederik-elwert

Nothing I've tried works - --enable-features=UseOzonePlatform --ozone-platform=wayland just causes Signal to refuse to open up a window. Maybe this is only when not using Flatpak?

devraza avatar Dec 02 '24 14:12 devraza

Yeah, it doesn't bring up a window. Using signal-desktop --use-tray-icon --enable-features=UseOzonePlatform --ozone-platform=wayland and clicking on the tray bar icon works for me.

Edit: Using ELECTRON_OZONE_PLATFORM_HINT=auto environment variable works as well.

Edit: signal-desktop & sleep 1; signal-desktop is a better workaround. No need for the tray icon.

ghost avatar Dec 22 '24 11:12 ghost

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Mar 23 '25 06:03 stale[bot]

I'm currently using signal-desktop 7.47.0 on Ubuntu 24.04, and am using 150% fractional scaling. The issue is still present as originally described.

cuu508 avatar Mar 23 '25 06:03 cuu508

Echoing the same. Running 7.52.0 on a fresh ubuntu 24.04 and it's still blurry. I was able to fix all the other electron apps by adding --enable-features=UseOzonePlatform --ozone-platform=wayland in the .desktop files and every one worked except Signal

For anyone who comes here for reference:

cp /usr/share/applications/[APPLICATION_NAME].desktop ~/.local/share/applications
# for snap applications, look in the /snap folder 
# add the following in the `Exec` field 
-enable-features=UseOzonePlatform -ozone-platform=wayland
e.g. 
Exec=/usr/share/discord/Discord 
becomes
Exec=/usr/share/discord/Discord -enable-features=UseOzonePlatform -ozone-platform=wayland 

Launch the application from Tray icon and it works.

Tried the same approach with Signal and it was leaving a blurry trail on the window and scroll bar was flickering, although the text blurriness was gone. I am assuming Signal is not up-to-date with the latest electron version. (just a guess)

I'll sticky the blurry version for now but it might nice to get that crisp text on a 4K screen (my monitor is more expensive than my PC 😛 )

jashanbhullar avatar Apr 25 '25 13:04 jashanbhullar

I can confirm that this is resolved on 7.54.0, Ubuntu 25.04.

argoneus avatar May 25 '25 03:05 argoneus

I can confirm that this is resolved on 7.54.0, Ubuntu 25.04.

Do you mean it's good by default now, or --enable-features=UseOzonePlatform --ozone-platform=wayland still needs to be added?

ngocphamm avatar May 25 '25 12:05 ngocphamm

Well, I thought it was resolved, but apparently was mistaken. It's still requiring the --enable-features=UseOzonePlatform --ozone-platform=wayland

argoneus avatar May 26 '25 04:05 argoneus

I installed 7.55.0 to test. The UI is sharp if I run it as

signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland

But, same as before,

  • the app does not launch on the first launch (the process starts and outputs stuff to console, but no UI shows up). I have to start the second instance of the app for the UI window to appear
  • the app uses a generic icon in the Alt+Tab dialog, and in the app overview (Win key)

cuu508 avatar May 26 '25 17:05 cuu508

I also have the issue of no window showing up on launch.
It took a lot of digging to find the workaround in this issue so I made a dedicated one: #7363.

IIUC, this one can be closed now?

ThinkChaos avatar Jun 01 '25 17:06 ThinkChaos

So I have came across some weird situation with my setup with Ubuntu 25.04. I thought I was having blurry Signal, but I guess probably not (even though to my eyes, it's still very slightly not-as-sharp as other apps).

What I experienced is for some reason, the box glitched (I really don't know the reason) with my screen turned off, for a couple minutes. When it came back most things look okay, but after a while I noticed my GPU is doing harder than normal. It's an X11org process (I don't remember exactly if it's x11, or xorg as the process name, taxign my GPU ~20%. It's odd as I thought I I was running Wayland. Sure enough $XDG_SESSION_TYPE is X11.

After restarting the box, it's Wayland again. However, now I see that all chrome-based app I have is blurry. This is really blurry and not just slightly like I always thought Signal was before. It happened to Vivaldi, Obsidian, so I figured it's probably the issues I have seen elsewhere about Electron/Chrome-based apps. But... why I didn't have this before? Vivaldi and Obsidian were perfectly fine, and only Signal was ever slightly not-as-sharp.

Starting the journey trying to figure this out, I came across this https://old.reddit.com/r/Fedora/comments/1fqo8kr/blurred_ui_in_flatpaks/lp7kvg4/. I ran the gsettings get org.gnome.mutter experimental-features command first, and it returns ['scale-monitor-framebuffer, 'x11-randr-fractional-scaling']. The reddit posts says xwayland-native-scaling, so something is off. I reset the setting with gsettings reset org.gnome.mutter experimental-features, and my screens resolutions are quite off. After going to Settings > Display to set the scale to 150% like I have always had before, EVERYTHING is fine! gsettings set org.gnome.mutter experimental-features now returns xwayland-native-scaling. Vivaldi, Obsidian, Signal are now back to normal.

So maybe this is the issue for at least some of us? For anyone in a newer OS versions, at the very least Ubuntu 25.04 like I do, check that setting and if possible try to set it to xwayland-native-scaling.

I'm not taking any responsibility, though 😅 I don't really understand any of this!

ngocphamm avatar Jun 01 '25 19:06 ngocphamm

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Aug 30 '25 19:08 stale[bot]

I'm currently using signal-desktop 7.68.0 on Ubuntu 24.04, and am using 150% fractional scaling. The issue is still present:

  • If I install and launch signal-desktop, the UI is not sharp
  • If I launch signal-desktop with ELECTRON_OZONE_PLATFORM_HINT=wayland then the UI is sharp but the app uses a generic icon

One thing that is fixed is that signal-desktop UI appears on the first launch, I do not need to launch it twice any more.

cuu508 avatar Aug 30 '25 19:08 cuu508

I am also experiencing this issue on Signal v7.69.0 on Arch with Linux 6.16.5-arch1-1 under Wayland (Hyprland). Launching with this command offered me a successful workaround for the issue: signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland.

geekmdtravis avatar Sep 06 '25 21:09 geekmdtravis

As of v7.72.1/snap, the old workaround of --ozone-platform=auto no longer works. Thank you @geekmdtravis for this new workaround! Works on Ubuntu 25.04

phoenix-frozen avatar Sep 27 '25 04:09 phoenix-frozen

For people on Ubuntu, creating a ~/.local/share/applications/signal-desktop.desktop like this

[Desktop Entry]
Name=Signal
Exec=env XDG_SESSION_TYPE=wayland /opt/Signal/signal-desktop --ozone-platform=wayland %U
Terminal=false
Type=Application
Icon=signal-desktop
StartupWMClass=signal
Comment=Private messaging from your desktop
MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha;
Categories=Network;InstantMessaging;Chat;

2 key points, because Signal moved to use Electron 38

  • --ozone-platform=wayland
  • StartupWMClass=signal. It's lowercase signal compared to the original file being Signal. This is to help with no icon on window.

env XDG_SESSION_TYPE=wayland is supposed to work by itself, but doesn't, yet because of this bug below from Electron https://github.com/electron/electron/issues/48298

ngocphamm avatar Sep 27 '25 11:09 ngocphamm

Signal on wayland works fine for me on displays with fractional scaling >= 100% but for values < 100% it's smaller that it is supposed to be and doesn't maximize. I recorded an example on 90% fractional scaling in KDE Plasma 6:

https://github.com/user-attachments/assets/01746baf-1583-473f-92bf-414d0830c6d1

tibequadorian avatar Oct 03 '25 13:10 tibequadorian

I am on Manjaro (kernel 6.12.48-1-MANJARO) with KDE Plasma (v6.3.6) using Wayland as the graphics platform. I have two monitors with different scaling settings to produce approximately similar-sized UI elements on either screen (due to resolution/screen size/distance factors):

  • My laptop screen itself is 2560x1600 at 150% scaling. When the Signal desktop window is on this screen, it displays perfectly fine.
  • I have an external monitor HDMI'd into the laptop that is 1920x1080 at 80% scaling. If I move the window to this monitor, suddenly it experiences the same issue shown in the video posted by @tibequadorian , where the window shrinks and refuses to maximize. I could learn to live with this, but additionally I am having cursor alignment issues where my mouse clicks are not registering where the cursor is positioned. Also, if I click out of the window, it randomly sizes down. 🤷

https://github.com/user-attachments/assets/e50f65cd-a1f9-4290-8129-4290a78bbdd6

While OS/KDE visual elements display completely fine with my display scaling settings—and many apps like Firefox work without any issues—I have run into plenty of issues with electron/chromium-based apps. For Chrome itself, I had to resort to a hacky workaround of using google-chrome-stable --disable-features=WaylandFractionalScaleV1, which simply tells the app to ignore the Wayland scaling. However, this same flag does nothing if I pass it into the signal-desktop executable.

I have tried running Signal as signal-desktop --ozone-platform=wayland, signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland, and signal-desktop --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto --ozone-platform=wayland, all exhibiting the same behavior on my external monitor. I also attempted to install the AUR package signal-desktop-blur-me-not, which similarly did nothing (even after a system restart). Currently, I cannot figure out a way to get around this issue, which makes the app clunky to use by only being functional on the monitor that is further away from me.

EDIT: After messing around more, including a system reboot, it seems as though signal-desktop --disable-features=WaylandFractionalScaleV1 does indeed work (not sure why it didn't work last time, perhaps just a typo, or something else that cleared up after the reboot). To permanently implement this launch option, I added it to the Exec line in /usr/share/applications/signal-desktop.desktop. Unfortunately, it does not seem as though there is a way to cascade this to all electron apps on my system so I wouldn't have to edit each app individually, but at least now I know this seems to work for more than just Chrome. I still wish that the apps worked properly out of the box, but hopefully this will help others in the future.

oniondip420 avatar Oct 14 '25 20:10 oniondip420