How to Enable Fractional Scaling in Wayland on Arch Linux

How to Enable Fractional Scaling in Wayland on Arch Linux

With the increasing popularity of high-resolution displays, users often find themselves dealing with display scaling issues—particularly when the default 100% or 200% scaling options are either too small or too large. This is where fractional scaling comes in, allowing you to set scaling values like 125%, 150%, or 175% for a more comfortable desktop experience.

In this article, we’ll explore how to enable fractional scaling in Wayland on Arch Linux, primarily focusing on GNOME and KDE Plasma, the two most popular Wayland-compatible desktop environments.


🧠 What Is Fractional Scaling?

Fractional scaling refers to the ability to scale the graphical user interface by non-integer values. Traditional scaling options usually allow only integer-based scaling factors like 1x (100%), 2x (200%), and so on. However, these don’t always suit users with high-DPI displays, as 100% might be too small and 200% might be too large.

Fractional scaling fills the gap by allowing values like 1.25x, 1.5x, etc., to provide better readability and UI comfort.


🖥️ Why Use Wayland?

Wayland is a modern display server protocol designed to replace the aging X11 system. It offers better performance, security, and smoother graphical rendering. One of its standout features is native support for high-DPI displays, and with some tweaks, it supports fractional scaling too.

However, support for fractional scaling is still evolving and may vary slightly depending on the desktop environment and hardware.


📋 Prerequisites

Before we begin, ensure you have:

  • A running Arch Linux installation.

  • A Wayland-compatible desktop environment, like GNOME or KDE Plasma.

  • An updated system:

    sudo pacman -Syu
    

🧰 Option 1: Enabling Fractional Scaling in GNOME (Wayland)

GNOME on Wayland provides a more user-friendly approach to fractional scaling.

🔍 Step 1: Check if You’re Using Wayland

By default, GNOME should use Wayland unless your system or GPU configuration prevents it. To verify:

  1. Open a terminal.

  2. Run:

    echo $XDG_SESSION_TYPE
    

    If the result is wayland, you’re good to go.

If it’s x11, make sure to log out and select the GNOME (Wayland) session from the login screen.


⚙️ Step 2: Enable Fractional Scaling

  1. Open GNOME Settings.
  2. Go to Displays.
  3. Toggle Fractional Scaling ON.
  4. Choose from the available options like 125%, 150%, 175%, or 200%.
  5. Click Apply.

GNOME will scale all UI elements according to the selected factor. You might be prompted to log out and log back in for changes to take full effect.


⚠️ Note on Performance

GNOME’s fractional scaling works by scaling up the display and then downscaling the content, which can cause blurriness and higher power consumption, especially on lower-end GPUs or when using multiple monitors.


🛠️ Optional: Enable Hidden Fractions via CLI

If you want custom scaling values not listed in the GUI, you can use the gsettings tool:

gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

Afterward, you can restart GNOME or log out and back in.

To manually set a scaling factor (e.g., 1.5):

gsettings set org.gnome.desktop.interface text-scaling-factor 1.5

Note: This affects only text scaling and not overall window scaling.


🧰 Option 2: Enabling Fractional Scaling in KDE Plasma (Wayland)

KDE Plasma offers much better native fractional scaling support under Wayland than under X11.

🔍 Step 1: Verify You’re on Wayland

From a terminal:

echo $XDG_SESSION_TYPE

You should see wayland. If not, log out and choose Plasma (Wayland) from your login manager (SDDM or GDM).


⚙️ Step 2: Set Fractional Scaling via System Settings

  1. Open System Settings.
  2. Navigate to Display and Monitor > Display Configuration.
  3. Under Scale, move the slider to the desired fractional value (e.g., 125%, 150%, etc.).
  4. Click Apply.
  5. Restart the session if prompted.

KDE handles fractional scaling more cleanly than GNOME by applying it per-display and avoiding blurry rendering in most cases.


🛠️ Step 3: Tweak Qt and GTK Applications

Some applications (especially those written in GTK) might not scale correctly in KDE due to toolkit differences.

You can export environment variables to improve compatibility:

Add to ~/.config/environment.d/envvars.conf

QT_AUTO_SCREEN_SCALE_FACTOR=1
QT_SCALE_FACTOR_ROUNDING_POLICY=Round
GDK_SCALE=1
GDK_DPI_SCALE=1.5  # Adjust based on your scaling needs

Then reload the environment or restart your session.


🧪 Experimental Support for Per-Display Scaling

KDE has begun supporting per-display scaling, which is very useful if you use monitors with different DPI values. This feature is still under development and may require newer Plasma versions (e.g., 6.x and later).


🧼 Cleaning Up: Disable Fractional Scaling (if needed)

To disable fractional scaling in GNOME:

gsettings reset org.gnome.mutter experimental-features

In KDE, just return the scaling factor to 100% via System Settings.


🪛 Troubleshooting Tips

🧊 Problem: Blurry Fonts or UI

  • In GNOME, this is unfortunately expected due to the framebuffer scaling trick.
  • In KDE, make sure your environment variables are correctly set.

🧊 Problem: Poor Performance

  • Use fractional scaling only on higher-end GPUs.
  • Consider using integer scaling with increased font and icon sizes as a workaround.

🧊 Problem: App-specific Scaling Issues

  • Try launching the app with environment overrides, e.g.:

    GDK_SCALE=1.5 gnome-calculator
    

📦 Bonus: Using wlroots Compositors (e.g., Sway, Hyprland)

If you use a more minimal Wayland environment like Sway or Hyprland, fractional scaling support depends on the compositor.

For Sway, fractional scaling is not supported by default but can be emulated by:

output <name> scale 1.5

However, this may lead to rendering issues. Hyprland, on the other hand, does support fractional scaling better with its monitor configuration options.

Example for ~/.config/hypr/hyprland.conf:

monitor=eDP-1,1920x1080@60,0x0,1.5

Then reload the config with:

hyprctl reload

✅ Conclusion

Enabling fractional scaling on Arch Linux under Wayland is increasingly accessible, thanks to improvements in GNOME and KDE Plasma. While not perfect, especially under GNOME due to its framebuffer-based scaling, it provides a more flexible and usable experience for those with high-DPI displays.

Here’s a quick comparison:

Desktop EnvironmentWayland SupportGUI ScalingCLI ScalingNotes
GNOMEExcellentYesYesMay cause blurriness
KDE PlasmaExcellentYesYesCleaner scaling
Sway/HyprlandVariesNo GUIYesDepends on config

Remember, display settings can be deeply tied to GPU drivers, hardware capabilities, and your compositor’s maturity. Always test changes carefully, and keep backups of configuration files before making significant changes.


If you’re using a different compositor or have a unique multi-monitor setup, feel free to reach out or explore the Arch Wiki for the most up-to-date tricks and solutions.