ELI5 nvidia-settings with cinnamon

I’ve tried setting my nvidia settings without sudo and I can’t save them.

But when I use it with sudo and choose merge with xorg.conf the changes still don’t persist through to the next boot.

I’m trying to change my refresh rate to 120 Hz.

xorg.conf i snot used at archlinux anymore you need a file under /etc/X11/xorg.conf.d/ directory
most likely you have one there already: /etc/X11/xorg.conf.d/20-nvidia.conf you can add what you have inside xorg.conf file inside this one to make it work.
or run nvidia-settings as root and do change file to the right one:
Bildschirmfoto_2020-05-14_16-25-34

1 Like

First tried copying my edited xorg.conf into the location you said, but still nothing. ( glxgears limited to 60 fps )

Tried sudo nvidia-settings but when I went to save it I got ERROR: Unable to open X config file ' /etc/X11/xorg.conf.d/20-nvidia.conf' for writing. both if I had no file or an empty file.

can you show the file?

cat /etc/X11/xorg.conf.d/20-nvidia.conf

I just copied my xorg.conf and renamed it… I could save it this time but after a reboot I’m back down to 60Hz

The cat command still gives the same result before and after the reboot:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 440.82


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer Z35P"
    HorizSync       73.0 - 180.0
    VertRefresh     30.0 - 120.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce RTX 2070 SUPER"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-3"
    Option         "metamodes" "3440x1440_120 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

But I have this in nvidia settings:
gscreenshot_2020-05-15-183406

and glxgears maxes out at 60fps

i do have this:

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Option “metamodes” “nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }”

Bildschirmfoto_2020-05-15_17-35-17

bumping to see if anyone knows how to get

/etc/X11/xorg.conf.d/20-nvidia.conf

used at boot.

It’s driving me nuts as I need access to the overscan options as xrandr just doesn’t cut it for swapping to my TV :frowning:

do you have

/etc/X11/xorg.conf

still there or is it removed? may xorg is seeing it but ignores it and use defaults and not the file under xorg.conf.d …

also possible that your

/etc/X11/xorg.conf.d/20-nvidia.conf

can only hold the parts you need to set as this is enaugh for this files it do not need to have a complete xorg configuration

you could also give boot log and xorg log to see if it shows the issue…
https://endeavouros.com/docs/forum/how-to-include-systemlogs-in-your-post/

cat /var/log/Xorg.0.log > log.txt && journalctl -b -0 >> log.txt && cat log.txt | curl -F 'f:1=<-' ix.io
1 Like

As @joekamprad already pointed out, xorg.conf is obsolete. Just run nvidia-settings as user and simply apply the changes (don’t save to file). That should be all you need. I never had to edit any config file manually.

xorg.conf causes more problems than it solves.

@joekamprad
Sorry for interfering. :wink:

1 Like

To load the ~/.nvidia-settings-rc for the current user:

$ nvidia-settings --load-config-only

is what archwiki say about… so to reload the config on login you need to have this somehow running on login, or you need to have settings inside

/etc/X11/xorg.conf.d/20-nvidia.conf

to apply it systemwide

http://ix.io/2mcH

It is using the .conf and it seems to be trying to set a refresh rate of 120… but no idea why it’s not sticking.

I’m going to see what happens if I play around with multi-monitors to get some more info.

May 16 16:15:31 arch systemd-coredump[2072]: Process 2026 (teams) of user 1000 dumped core.
                                             
                                             Stack trace of thread 2070:
                                             #0  0x000055d0de198f92 n/a (teams + 0x48bef92)
                                             #1  0x000055d0de19ce26 n/a (teams + 0x48c2e26)
                                             #2  0x00007f6a7e61e960 __restore_rt (libpthread.so.0 + 0x14960)
                                             #3  0x00007f6a7d02e501 clock_nanosleep@@GLIBC_2.17 (libc.so.6 + 0xc7501)
                                             #4  0x00007f6a7d033e17 __nanosleep (libc.so.6 + 0xcce17)
                                             #5  0x00007f6a7d05ed29 usleep (libc.so.6 + 0xf7d29)
                                             #6  0x00007f6a7922df3b n/a (libnvidia-glcore.so.440.82 + 0xe54f3b)
                                             #7  0x00007f6a7926f5d0 n/a (libnvidia-glcore.so.440.82 + 0xe965d0)
                                             #8  0x00007f6a79271156 n/a (libnvidia-glcore.so.440.82 + 0xe98156)
                                             #9  0x00007f6a7a3d2d9f n/a (libGLX_nvidia.so.0 + 0x7fd9f)
                                             #10 0x00007f6a7a6d93cf __glDispatchCheckMultithreaded (libGLdispatch.so.0 + 0x413cf)
                                             #11 0x00007f6a7a67e567 n/a (libGLX.so.0 + 0x19567)
                                             #12 0x00007f6a7a67f9c6 glXGetFBConfigs (libGLX.so.0 + 0x1a9c6)

looks related :wink:

Unfortunately that goes way over my head. :grimacing:

I just tried setting it up for multi-monitor and it completely threw the settings out the window.
the cat results for the .conf file are:

[duncanm@arch ~]$ cat /etc/X11/xorg.conf.d/20-nvidia.conf
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 440.82

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer Z35P"
    HorizSync       73.0 - 180.0
    VertRefresh     30.0 - 120.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce RTX 2070 SUPER"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-3"
    Option         "metamodes" "DP-2: 3440x1440_120 +0+0 {AllowGSYNC=Off}, HDMI-0: 3840x2160_60 +3440+0 {viewportout=3756x2112+42+23}; DP-2: nvidia-auto-select +0+0, HDMI-0: nvidia-auto-select +0+0; DP-2: 3440x1440_100 +0+0, HDMI-0: nvidia-auto-select +0+0; DP-2: 3440x1440_85 +0+0, HDMI-0: nvidia-auto-select +0+0; DP-2: 3440x1440_50 +0+0, HDMI-0: nvidia-auto-select +0+0; DP-2: 1024x768 +0+0, HDMI-0: nvidia-auto-select +0+0; DP-2: 800x600 +0+0, HDMI-0: nvidia-auto-select +0+0; DP-2: 640x480 +0+0, HDMI-0: nvidia-auto-select +0+0; DP-2: nvidia-auto-select +0+0 {viewportout=2560x1440+440+0}, HDMI-0: nvidia-auto-select +0+0; DP-2: nvidia-auto-select +0+0 {viewportin=1920x1200, viewportout=2304x1440+568+0}, HDMI-0: nvidia-auto-select +0+0; DP-2: nvidia-auto-select +0+0 {viewportin=1920x1080, viewportout=2560x1440+440+0}, HDMI-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

The logfiles are here: http://ix.io/2mcL

I’m going to just use xandr statements at boot to switch off the TV and set the monitor to 120Hz, then manually change the settings when I want to game on the TV.

Will also have to live with the login screen coming up on the TV :zipper_mouth_face:

Edit: slick greeter for some reason uses the display port \o/

i do use xrandr command here too, and lightdm can use xrandr command too for setting up displays:
https://wiki.archlinux.org/index.php/LightDM#LightDM_displaying_in_wrong_monitor

in some cases the command needs tobe a file as it seems that it can be lightdm do not use a commandline and can handle only a executable like:

display-setup-script=/etc/lightdm/displaysetup.sh

displaysetup.sh:

#bin/sh
xrandr --output HDMI1 --primary

so simple including your xrandr command to setup displays…

arandr program can be used for setup, and can save the command you can use for this then…
2020-05-16_15-18

arandr fatally crashed cinnamon.

Now as a bonus whenever I turn on my AVR the nvidia drivers decide to turn on the hdmi and make it primary. ( I didn’t have the HDMI plugged in earlier from installation ) but that was while I was figuring out other stuff now I want to be able to switch between the TV and the monitor for gaming I seem to be getting completely shafted.

absolutely sucks

i do never get used to cinnamon at all, it could be something related to cinnamon settings also, as every DE have also Display setting tools…

And also your settings inside 20-nvidia.conf are interfering… Xorg can run without any config files needed… so only put inside what you need and remove all common stuff as it will be done automatic…

2 Likes

This made me dig into nvidia settings on cinnamon which I now realise I should have done as a first thing.

Turns out that the cinnamon screen settings take precedence over the nvidia settings, and playing around with those got me up and running. Now it ignores my TV and starts at 120Hz.

Thank you so much for your patience.

I did discover that I really don’t like gnome… and kde would be a huge time sync.

Cinnamon ftw.

1 Like