Icons and text appearing tiny on a 2K or 4K monitor often signal display scaling issues on Linux desktops. HiDPI (High Dots Per Inch) screens pack more pixels into the same physical space, which improves sharpness but can make interface elements difficult to see. Fractional scaling addresses this by letting you set display scaling to values like 125% or 150%, instead of just 100% or 200%. This flexibility helps you find the right balance between readability and screen real estate, especially if integer scaling makes things too large or too small.
Enabling Fractional Scaling Using Display Settings
Step 1: Open the system settings by pressing the Super
(Windows) key and searching for Settings. Select the gear icon to launch the settings application.
Step 2: In the settings window, click on the Displays section in the sidebar. This area manages your screen resolution, orientation, and scaling.
Step 3: Locate the Fractional Scaling toggle in the display settings. Switch it on to unlock additional scaling options between 100% and 200%. This feature is especially useful for 2K and 4K screens, where 200% scaling might make everything too large, and 100% is too small.
Step 4: Select your preferred scaling percentage from the available options, such as 125%, 150%, or 175%. Click Apply to preview the changes. If the scaling looks correct and improves readability, confirm by selecting Keep Changes. If not, revert and try a different value.
Fractional scaling may trigger a warning about increased power usage or reduced display sharpness. This occurs because the system must render graphics at non-integer scales, which requires extra processing and can sometimes cause slight blurriness or performance drops on less powerful hardware.
Using Command-Line Tools for Advanced Fractional Scaling
Some Linux setups or older distributions might not offer robust fractional scaling through the graphical interface. In these cases, command-line methods provide more precise control and additional scaling values.
Enable Experimental Fractional Scaling via Terminal
Step 1: Open a terminal window using Ctrl+Alt+T
.
Step 2: For X11 sessions (the default for many distributions), run:
gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"
Step 3: For Wayland sessions (increasingly the default, especially on Ubuntu 24.04+), run:
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
Step 4: Log out and log back in to activate the new scaling options. Once enabled, return to display settings to select a fractional scaling value.
Manual Scaling with xrandr
for Custom Setups
Step 1: Identify your display name by running:
xrandr --listmonitors
Step 2: Apply custom scaling using a command like:
xrandr --output eDP-1 --scale 0.8x0.8
Replace eDP-1
with your display identifier. The scaling factor 0.8x0.8
corresponds to 125% scaling (1/0.8 = 1.25). Adjust the numbers to suit your needs, such as 0.75x0.75
for 133% or 0.67x0.67
for 150%.
Step 3: To make this scaling persistent, add the xrandr
command to your startup applications. Open the Startup Applications tool, add a new entry, and paste your command there.
Optimizing Multi-Monitor HiDPI Setups
Running a HiDPI laptop screen alongside standard-resolution external monitors can cause inconsistent scaling. The best approach is to set the HiDPI display to 200% scaling and the external monitors to 100%. For smoother results, use a Wayland session, which supports independent scaling per monitor more reliably than X11.
Step 1: At the login screen, select a Wayland session if available (often labeled as Ubuntu rather than Ubuntu on Xorg).
Step 2: Enable fractional scaling in display settings, even if you only use 100% and 200% for different monitors. This ensures proper scaling across all connected displays.
Step 3: Set each monitor’s scaling individually in the display settings. If scaling reverts after reboot or doesn’t work as expected, create a custom script using xrandr
commands for each display, then add the script to your startup applications.
Troubleshooting Common Fractional Scaling Issues
- Blurry Applications: Some apps, especially those using older frameworks, may look blurry. For Electron-based apps, append
--force-device-scale-factor=1.5
to the launch command. For Java apps, set environment variables:export GDK_SCALE=2
andexport GDK_DPI_SCALE=0.5
. - Scaling Resets After Reboot: Ensure your scaling commands or scripts are set to run at startup. Double-check that you’re using the correct display server for your chosen scaling method.
- Performance Drops: Fractional scaling increases GPU and CPU load. If you notice lag, consider using integer scaling (100% or 200%) and adjust font sizes as needed, or update your graphics drivers.
- Snap and Flatpak Apps: Some packaged applications may not respect system-wide scaling. Check for updates or alternative versions if you encounter persistent issues.
Fine-tuning fractional scaling on Linux HiDPI setups improves readability and comfort without sacrificing display sharpness. Experiment with scaling values and methods to match your workflow and hardware, and revisit your settings after system updates for the best results.
Member discussion