Using Multiple Monitors with Different Resolutions on Wayland Linux
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:
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
Switch off Use default value
and select scale-monitor-framebuffer
option on the Custom value
dropdown.
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
- Launch
gnome-control-center
(gnome settings) and selectDisplays
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.
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
- Navigate to
System Settings
>Display and Monitor
>Display Configuration
.
If
Display Configuration
option is not available, installksreen
.
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!