Aller au contenu

Custom Resolutions

Kscreen-Doctor (KDE Images/Desktop Mode only)

Starting with Plasma 6.6, kscreen-doctor allows addition of a custom modeline. If you are on the KDE image, try to use that first!

Guide to add a custom resolution using kscreen-doctor

  1. Run kscreen-doctor -o in the terminal.
  2. Find the ID of the monitor you want to add a mode for. You should see something similar to this:
    Output: 1 eDP-1 a17bb763-cbd3-4b3d-b7d3-7344112e71b7
        enabled
        connected
        priority 1
        Panel
        replication source:0
        Modes:  1:[email protected]!  2:[email protected]*  3:[email protected]...... # output omitted for brevity
    

    For example, if you want to add a custom mode to eDP-1, your ID will be 1. Note this down.
  3. You can now construct the command to add your custom mode, following this format:
    kscreen-doctor output.<ID>.addCustomMode.<Width>.<Height>.<Refresh>.<Scaling>
    

    Replace each of the options with what you want to set. Note that refresh rate is in mHz (millihertz), so a 75Hz refresh rate will correspond to 75000 in <refresh>.
    <Scaling> can be full or reduced. Use full to stretch the resolution to fill the screen, or reduced to add black bars to preserve the aspect ratio.

    For example, the command for adding a custom resolution of 1920x1080@75Hz for display ID 1 that will be stretched to fill the screen would be:

    kscreen-doctor output.1.addCustomMode.1920.1080.75000.full
    

Custom-Resolution-Helper

Custom Resolution Helper Preview|570x500

Remove any custom resolutions if you encounter an unexpected display issue with crh rm all. Any modifications to your device should be done appropriately at your own risk.

Custom resolutions created with this method require a reboot to take effect.

A command-line utility that assists with creating and managing custom resolutions for your Bazzite installation.

Using custom-resolution-helper

Open a host terminal and enter:

custom-resolution-helper

There is also an alias which is less typing for those on handhelds or HTPC setups without a keyboard:

crh

Guide for creating a custom resolution using custom-resolution-helper

  • ModeDB Method: easier to set up, will likely not work with HDMI.
  • EDID Method: more hassle to set up, only use this if ModeDB does not work.

Starting with Plasma 6.6, kscreen-doctor allows addition of a custom modeline. If you are on the KDE image and only need custom resolution in desktop mode, try to use that first!

  1. Run custom-resolution-helper in a terminal.
  2. Verify that you do not have a duplicate resolution.
  3. Choose Add, using arrow keys to navigate and enter to submit.
  4. Select the Display you want to create a custom resolution for. This display should be connected.
  5. Follow the Instructions on-screen in Interactive Mode.
  6. Once you finished selecting the options, you will get a prompt to change the boot configuration. Simply authorize it with your password.
  7. Once the command finishes, you can reboot and select the new resolution in your System Settings.
  1. Run custom-resolution-helper in a terminal.
  2. Choose Dump-EDID and select your display.
  3. The EDID will be placed in /tmp/crh/edid.bin.
  4. You can copy this to either Home, Downloads, or Desktop folder.
  5. We can use the familiar CRU to edit it, however, this will require a wine/proton launcher. You can use Lutris, Faugus launcher, or even Steam to open this.
  6. Once you open CRU, click the import option in the lower lefthand corner. Make sure files of type is set to "all", and "Import complete EDID" is selected.
    CRU Preview|450x500
  7. You can do your modifications to the edid, the same way as on Windows.
  8. Once you finish, save it as a file using the export option.
  9. Move the edited edid file to /tmp/crh/edited/, and select it in crh add-edid. You will get a prompt to change the boot configuration. Simply authorize it with your password.
  10. Once the command finishes, you can reboot and select the new resolution in your System Settings.

Interactive Mode Option Explaination:

  • VESA(TM) Coordinated Video Timings(CVT): Select this if your refresh rate is not currently selectable in System Settings (e.g. you are overclocking your display from 60Hz to 75Hz, but 75Hz is currently not an available refresh rate).
  • Interlaced: This sets the resolution as interlaced, useful for something like a Plasma TV or CRT Display.
  • Margins: This is useful when the margins of the picture are hidden beyond the borders of the screen, as if the picture is zoomed in. Most of the time you would want this to be adjusted in the Monitor/TV instead.

Guide for creating a custom resolution for Sunshine Game Streaming

Let's say you are streaming from your host PC (running Bazzite) to your laptop:

  • Your host desktop PC has a resolution of 1920x1080@144Hz,
  • but your laptop has a resolution of 2560x1600@120Hz.

...and text in the stream looks blurry because of resolution scaling.

You can use custom-resolution-helper to add a virtual display to your host PC (running Bazzite) without a dummy plug!

  • Simply follow the steps for creating a custom resolution, and select the option to make the display always enabled. After rebooting, you can press Super + P to switch multi-monitor modes on KDE. After that, make sure the correct display is selected in Sunshine.
  • Alternatively, you can also add a 2560x1600MR@120 mode to your host PC's main display. This may cause your host PC's monitor to black out and show an unsupported mode dialog, and you will have to change the resolution during game streaming. You can try this method if you don't want to deal with multiple monitors.

Do not disable the main display, as doing that may leave you with no available display out (which may also break streaming).
If you do encounter a black screen that persists after rebooting, you can try going into a tty by pressing ctrl + alt + F2, and edit or remove ~/.config/kwinoutputconfig.json from the command line. Note that this will remove your monitor configurations.
An example command will be mv ~/.config/kwinoutputconfig.json ~/.config/kwinoutputconfig.json.bak

Advanced Usage

This tool adds a kernel argument with video=[RESOLUTION]. The [RESOLUTION] string follows the format <name>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd], as specified in the kernel documentation for modedb.

If you feel confident enough and know what you are doing, you can use the

custom-resolution-helper add [RESOLUTION]

to add a resolution with functionality not included in this script, such as forcing a DVI-I port to use digital output.

You can also manipulate kernel arguments directly via

rpm-ostree kargs --editor

However, please note that any modifications to your device should always be done appropriately at your own risk.