Using Multiple Monitors with Different Resolutions on Wayland Linux

Wainaina Gichuhi
4 min readMay 1, 2023

--

Using Multiple Monitors with Different Resolutions on Wayland Linux
Source: https://i.redd.it/oau9gsulp5o41.jpg

This guide details how to configure/use multiple monitors on Wayland for GNOME and KDE desktop environments (DEs).

It is an alternate guide on Using Multiple Monitors with Different Resolutions on Xorg (X11) Linux. Read it here:

1. Before proceeding, ensure that the monitors are connected.

2. The word monitor and display will be used interchangeably in the tutorial.

3. Our reference setup will have two monitors arranged as shown below:

Dual monitor setup
Dual monitor setup

Fractional Scaling

Fractional scaling (FS) makes it easy to use multiple monitors with different resolutions and improves the usability of high-DPI displays on Wayland. FS is not enabled by default on KDE or GNOME due to some potential drawbacks.

GNOME

To enable FS on GNOME, run this command on the terminal

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

The command enables the ‘scale-monitor-framebuffer’ experimental feature.

If you have other experimental feature(s) enabled, include them in the list like [‘scale-monitor-framebuffer’,‘kms-modifiers’] to avoid other features being turned off.

Alternatively, you can launch dconf-editor and navigate to org/gnome/mutter/experimental-features

dconf-editor
dconf-editor

Switch off Use default value and select scale-monitor-framebufferoption on the Custom value dropdown.

Select scale-monitor-framebuffer
Select scale-monitor-framebuffer

Select apply on the bottom right corner and close dconf-editor.

KDE

To enable FS on KDE, run the following command on the terminal

sudo echo "PLASMA_USE_QT_SCALING=1" >> /etc/environment

This command will add the environment variablePLASMA_USE_QT_SCALING=1 to your /etc/environment file

Alternatively, export the environment variable from your login shell configuration file (.zprofile/.zlogin, .bash_profile, or config.fish).

For Zsh (choose one)

(.zprofile)

echo "export PLASMA_USE_QT_SCALING=1" >> ~/.zprofile

(.zlogin)

echo "export PLASMA_USE_QT_SCALING=1" >> ~/.zlogin

For Bash

echo "export PLASMA_USE_QT_SCALING=1" >> ~/.bash_profile

For Fish

echo "set -x PLASMA_USE_QT_SCALING '1'" >> ~/.config/fish/config.fish
source ~/.config/fish/config.fish

You will need to log out and log in again for the Bash and Zsh FS environments changes to take effect.

Configuration

You can configure multiple monitors using the GUI or via the terminal.

1. Using GUI

GNOME

  1. Launch gnome-control-center (gnome settings) and select Displays
GNOME display settings
GNOME display settings

2. Ensure the Join option is selected on Multiple Displays section

3. Ensure your the display arrangement in the virtual space is the same as your physical arrangement. If not, move the virtual displays to match your arrangement.

Our setup has two monitors; 1 and 2. Yours might be different.

4. Select a display from the list 1, 2, 3… The image below shows an example HP Inc. 23" display selected.

Monitor configuration
Monitor configuration

5. For each display, select your preferred resolution, scale, or orientation. As always, try different options to see which combination best fits each display and your setup.

6. Finally, select apply on the top right corner. Use the back arrow on the top left corner to return to the display main menu.

7. Follow the same procedure for the other monitors.

After setting a configuration, the gnome-control-center may give a warning that the changes cannot be applied due to hardware limitations. In this case, log out and log in again or restart the system and try again.

KDE

  1. Navigate to System Settings > Display and Monitor > Display Configuration.
Display Configuration — System Settings
Display Configuration — System Settings

If Display Configuration option is not available, install ksreen.

2. Select a monitor from the Device drop down and set the preferred scale, resolution, refresh rate or orientation. You can try different values to see which combination best fits each individual display and whole setup.

3. Select apply on the bottom right to set the configuration.

4. Follow the same procedure for the other displays.

The display configuration should persist even after a rebooting. However, changing the display server might corrupt these settings (KDE users 👀).

2. Using the Terminal

wlr-randr is an equivalent to xrandr for Wayland which works for wlroots compositors such as Hyprland.

The default compositors for KDE (KWin) and GNOME (Mutter) are not based on wlroots and therefore are NOT compatible.

If you are using a wlroots compositor, check this wlr-randr man page:

That should be it!

Your permanent monitor resolution settings should be working on Wayland.

Remember, you can always edit the configurations to change the resolutions, refresh rates or scaling as you like.

I’d like also to hear from you. Did the tutorial work for you? If not, what are the challenges?

Regards!

--

--