Changing Refresh Rate in SDDM

I’m using Manjaro KDE.
Whenever I log in or out, the screen flashes for a bit due to the refresh rate changing. I have a 144Hz display, but it runs at 60Hz before logging in / after logging out.
Is there a way to change the refresh rate for SDDM so the flashing doesn’t happen?

There no ‘1280x720’ and ‘60’ in the example you posted ^^’

There’s not. It was the wrong example; sorry about that. :blush:

Basically, you need to set a consistent display mode and refresh rate for both the login screen and the desktop.

One way to do this uses the following procedure. Keep in mind this is all from memory, and you should confirm this information with appropriate research, or by asking other forum members for additional input.

To change the Xorg refresh rate in Manjaro KDE; and hopefully avoid the screen flashing, adjust the display settings:

Use xrandr to identify supported display modes and refresh rates:

xrandr

… Look for your primary monitor, and note available modes and refresh rates.

Create an Xorg Configuration File:

sudo nano /etc/sddm.conf.d/display.conf

Note: This is an example only, and should reflect details of your own devices. With that in mind, add the following lines to that file; replacing ‘1920x1080’ and ‘60’ with the desired resolution and refresh rate, and other details as needed (example only):

Section "Monitor"
    Identifier "Monitor0"
    Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
    Option "PreferredMode" "1920x1080_60.00"
EndSection

Section "Screen"
    Identifier "Screen0"
    Monitor "Monitor0"
    DefaultDepth 24
    SubSection "Display"
        Modes "1920x1080"
    EndSubSection
EndSection

Save and exit the text editor, and restart SDDM:

sudo systemctl restart sddm

Reboot, and see if any magic happens. Cheers.

No difference, unfortunately. The login screen doesn’t even run at 144Hz.

This is what I tried:

Section "Monitor"
    Identifier "Monitor0"
    Modeline "2560x1440_143.86" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
    Option "PreferredMode" "2560x1440_143.86"
EndSection

Section "Screen"
    Identifier "Screen0"
    Monitor "Monitor0"
    DefaultDepth 24
    SubSection "Display"
        Modes "2560x1440"
    EndSubSection
EndSection

I also tried 2560x1440_144.00, but that didn’t work either.

Black screen?

Take it back to 60Hz, and try again. If that works, there should only be scaling left to focus on, via Manjaro Settings. If it doesn’t work, just delete the created file and reboot to restore previous settings.

I’ve seen a few posts, however, with possibly related issues using higher resolutions. It might pay to search the forum for those, and possible clues. Cheers.

Well, when using 60Hz, there’s no flashing. But I actually want to use the high refresh rate, so it wouldn’t make much sense.

Try an acceptable compromise somewhere between 60Hz and your preference; starting at 60Hz and working up from there. Find a balance.

I have no idea what you’re talking about. If I’m running the system at 60Hz, there’s no flashing, because the login screen runs at 60Hz too. Any other refresh rate causes flashing!

Then change both, otherwise 60Hz is your only option; until a better one is found.

However, as you have no idea what I’m talking about… Have a nice life.

Well that’s what I’ve been trying to do this whole time! I want both the login screen and my desktop to run at 144Hz! What I don’t get is your talk about scaling. I don’t need to change anything scaling related - both SDDM and the desktop run at the same (and correct resolution).

There have been people with issues on larger resolution (read: 2560x1440) monitors, related to scaling; ‘icons too big, or icons too small’ – Search the forum, and you will find those threads.

The only time I mentioned scaling was in relation to that. There was no need to elaborate as it wasn’t relevant (yet) for you.

Yes. That was the expected outcome of my suggestion to use 60Hz.

… and my response, expanded a little for clarity:

This means, try different supported refresh rates between 60Hz and your preferred 144Hz, and see if you can find a compromise; for example, 90Hz, 120Hz, whatever, until you find a refresh rate that does not make your screen flash. Yes, that means both SDDM and the Desktop.

… and your response:

I have no idea what was so difficult to understand.

Run xrandr to find the name of the connected output. It will be something like DisplayPort-0 or HDMI-A-0 depending on what is connected.

Add xrandr --output OUTPUT_NAME --rate 144 --mode 2560x1440 to ~/.xprofile (replacing OUTPUT_NAME with the name you got from step 1) and make sure it is executable. E.g.

echo "xrandr --output HDMI-A-0 --rate 144 --mode 2560x1440" >> ~/.xprofile"
chmod +x ~/.xprofile

Reboot. If that doesn’t work remove the xrandr command from ~/.xprofile and try putting it in /usr/share/sddm/scripts/Xsetup instead.

Oh wow, I just found the solution by myself and it’s the Xsetup one ^^

Found it here:
https://www.reddit.com/r/kde/comments/xdfe7y/how_can_i_change_the_refresh_rate_of_my_sign_in/

Important: In my case
–rate only didn’t work, I had to use

xrandr --output DP-2 --mode 2560x1440 --rate 144

Glad it worked out. Cheers. :clap:

Yeah, ~/.xprofile should work too, the difference is that’s a per-user setting and /usr/share/sddm/scripts/Xsetup is system-wide (which is probably what you want, just don’t forget what you’ve done if you ever change your monitor :slight_smile: ).

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.