gnome/nvidia 覆盖 .nvidia-settings.rc

gnome/nvidia 覆盖 .nvidia-settings.rc

我发现很多人在通过 nvidia 设置更改亮度/对比度/伽玛时遇到问题,并且下次登录时设置无法加载。我也遇到了这个问题。

我感觉文件正在被读取因为在登录后,在 shell 加载之前的一瞬间,设置被应用,然后设置被恢复并且 shell 完成加载。

然后,就像其他人遇到的让设置坚持下去的问题一样,我打开 GUI 或在终端中粘贴命令,并且设置应用没有问题。

  • 显卡:Nvidia 9600 GS
  • 司机:331.20
  • 发行版:Ubuntu 12.04
  • Gnome Shell:3.4.1

我尝试过的:

  • 以 root 和用户身份打开 nvidia-settings
  • 为防止发生冲突,将 .nvidia-settings.rc 保存在根文件夹和用户文件夹中
  • 将启动应用程序从 --load-config-only 更改为 -l
  • 在列表末尾添加另一个启动应用程序(包括隐藏项目)
  • 从文件中删除主机名
  • 在设置前添加 0:
  • 删除并重新生成文件
  • 删除并重新生成 Xorg.conf
  • 将 .nvidia-settings.rc 移至 /etc/X11/。

这是我的.nvidia-settings.rc....

RcFileLocale = C
ToolTips = Yes
DisplayStatusBar = Yes
SliderTextEntries = Yes
IncludeDisplayNameInConfigFile = No
ShowQuitDialog = Yes
UpdateRulesOnProfileNameChange = Yes
Timer = Memory_Used_(GPU_0),Yes,3000
Timer = Thermal_Monitor_(GPU_0),Yes,1000
Timer = PowerMizer_Monitor_(GPU_0),Yes,1000

# Attributes:

0/SyncToVBlank=1
0/LogAniso=0
0/FSAA=0
0/TextureSharpen=0
0/TextureClamping=1
0/FXAA=0
0/AllowFlipping=1
0/FSAAAppControlled=1
0/LogAnisoAppControlled=1
0/OpenGLImageSettings=1
0/FSAAAppEnhanced=0
0/XVideoSyncToDisplayID=DVI-I-0
[DPY:DVI-I-0]/Dithering=0
[DPY:DVI-I-0]/DitheringMode=0
[DPY:DVI-I-0]/DitheringDepth=0
[DPY:DVI-I-0]/SynchronousPaletteUpdates=0
[DPY:VGA-0]/RedBrightness=-0.767654
[DPY:VGA-0]/GreenBrightness=-0.767654
[DPY:VGA-0]/BlueBrightness=-0.767654
[DPY:VGA-0]/RedContrast=0.034169
[DPY:VGA-0]/GreenContrast=0.034169
[DPY:VGA-0]/BlueContrast=0.034169
[DPY:VGA-0]/RedGamma=1.633485
[DPY:VGA-0]/GreenGamma=1.633485
[DPY:VGA-0]/BlueGamma=1.633485
[DPY:VGA-0]/Dithering=0
[DPY:VGA-0]/DitheringMode=0
[DPY:VGA-0]/DitheringDepth=0
[DPY:VGA-0]/DigitalVibrance=96
[DPY:VGA-0]/SynchronousPaletteUpdates=0
[DPY:DVI-I-1]/RedBrightness=0.000000
[DPY:DVI-I-1]/GreenBrightness=0.000000
[DPY:DVI-I-1]/BlueBrightness=0.000000
[DPY:DVI-I-1]/RedContrast=0.000000
[DPY:DVI-I-1]/GreenContrast=0.000000
[DPY:DVI-I-1]/BlueContrast=0.000000
[DPY:DVI-I-1]/RedGamma=1.000000
[DPY:DVI-I-1]/GreenGamma=1.000000
[DPY:DVI-I-1]/BlueGamma=1.000000
[DPY:DVI-I-1]/Dithering=0
[DPY:DVI-I-1]/DitheringMode=0
[DPY:DVI-I-1]/DitheringDepth=0
[DPY:DVI-I-1]/DigitalVibrance=0
[DPY:DVI-I-1]/ColorSpace=0
[DPY:DVI-I-1]/ColorRange=0
[DPY:DVI-I-1]/SynchronousPaletteUpdates=0
[DPY:HDMI-0]/Dithering=0
[DPY:HDMI-0]/DitheringMode=0
[DPY:HDMI-0]/DitheringDepth=0
[DPY:HDMI-0]/SynchronousPaletteUpdates=0

答案1

我也遇到了同样的问题。我已通过以下步骤解决了该问题:

  1. 打开 nvidia-settings 并更改亮度设置。关闭它而不明确保存;
  2. 再次打开nvidia-settings,检查之前的修改是否保存;
  3. 如果修改未保存,请删除.nvidia-settings.rc;

    sudo rm ~/.nvidia-settings-rc

  4. 重复步骤1和2;

  5. 当设置在会话之间持续存在时,尝试重新启动 PC;
  6. 如果重启后设置未自动应用,请将下一个命令添加到启动应用程序:

    sh /usr/local/bin/nvidia_starter

  7. 重新启动并检查用户登录时设置是否应用;

顺便说一句。上述修复方法并未涵盖另一种情况。当您已登录并切换到其他用户后再返回时,启动应用程序将不会运行。要涵盖此情况,请使用以下步骤:

  • 在 /usr/local/bin/ 文件夹中创建 nvidia_watcher 脚本并向其中添加 +x 标志;

#!/bin/bash
debug=false
log_file="/var/log/nvidia_settings.log"
log () {
    if $debug ; then
    echo "`date "+%d/%m/%y %H:%M:%S"` :: $@" >> $log_file
    fi
}
dbus-monitor --sesion 
"type='signal',interface='com.canonical.Unity.Session',member='Unlocked'" | while  read line ; do 
    if [[ "$line" == *member=Unlocked* ]] 
    then
        log "$line"
        sh /usr/local/bin/nvidia_starter &
    fi
done
  • 每次执行‘切换用户’操作时,它都会运行 nvidia_starter 脚本;

  • 在 /usr/local/bin/ 文件夹中创建 nvidia_starter 脚本并向其中添加 +x 标志;


#!/bin/bash
debug=false
log_file="/var/log/nvidia_settings.log"
log () {
if $debug ; then
    echo "`date "+%d/%m/%y %H:%M:%S"` :: $@" >> $log_file
fi
}
sleep 4
log "initializing nvidia settings."
nvidia-settings -l >> $log_file
log "nvidia settings initialized."
  • 最后将 nvidia_watcher 添加到启动应用程序中。

相关内容