![如何使 nvidia-settings 工具中的更改持久化](https://linux22.com/image/24968/%E5%A6%82%E4%BD%95%E4%BD%BF%20nvidia-settings%20%E5%B7%A5%E5%85%B7%E4%B8%AD%E7%9A%84%E6%9B%B4%E6%94%B9%E6%8C%81%E4%B9%85%E5%8C%96.png)
我想禁用我的 nvidia 显卡的垂直同步(在 nvidia 设置中称为“同步到 VBlank”)。
但只有启动 nvidia-settings 工具,配置才会生效。重新启动系统后,VSync 再次启用,我必须再次启动程序。
我尝试导出并将xorg.conf
其放入/etc/X11/
但没有成功。
所以我的问题是如何才能使 nvidia-settings 工具中的更改持久化?
答案1
查看自述文件有时确实有帮助:)
此行为的目的是让不同的用户有机会拥有自己的设置。
简而言之,nvidia-settings 配置文件存储在其中,~/.nvidia-settings-rc
并且可以通过nvidia-settings --load-config-only
在启动时调用来执行。
有关更多详细信息,请参阅自述文件的相关部分:
4)自动加载设置
NVIDIA X 驱动程序不会在 X 服务器运行之间保留使用 nvidia-settings 设置的值(甚至在使用 xdm、gdm 或 kdm 登录和注销 X 之间)。这是故意的,因为不同的用户可能有不同的偏好,因此这些设置基于每个用户存储在用户主目录中存储的配置文件中。
配置文件名为“~/.nvidia-settings-rc”。您可以使用“--config”命令行选项指定不同的配置文件名。
运行 nvidia-settings 一次并生成配置文件后,您可以运行:
nvidia-settings --load-config-only
将来随时可以再次将这些设置上传到 X 服务器。例如,您可以将上述命令放在 ~/.xinitrc 文件中,以便在登录 X 时自动应用您的设置。
您的 .xinitrc 文件控制当您登录 X(或 startx)时应启动哪些 X 应用程序,可能如下所示:
nvidia-settings --load-config-only & xterm&evilwm
或者:
nvidia-settings --load-config-only 和 gnome-session
如果您还没有 ~/.xinitrc 文件,那么 xinit 很可能正在使用系统范围的 xinitrc 文件。该系统范围的文件通常位于此处:
/etc/X11/xinit/xinitrc
要使用它,而且还要让 nvidia-settings 上传您的设置,您可以创建一个包含以下内容的 ~/.xinitrc :
nvidia-settings --load-config-only & . /etc/X11/xinit/xinitrc
系统管理员可以选择将 nvidia-settings load 命令直接放在系统 xinitrc 脚本中。
有关配置 ~/.xinitrc 文件的更多详细信息,请参阅 xinit(1) 联机帮助页。
答案2
作为之前答案的补充,nvidia-settings 仅在配置文件中记录与 X 屏幕相关的属性。还有一些附加设置可以应用于其他组件;这些都没有保存。
如果你看一下,配置文件中的所有属性都以{host}:0.0
.其他可以设置的属性有GPU相关等。
例如,我使用连接到 NVidia 卡的 HDTV,需要重置过扫描补偿(以减小显示的屏幕尺寸以适合物理屏幕)。这可以通过 GUI 进行调整,但不会存储在配置文件中。从命令行,命令是:
nvidia-settings --assign :0[gpu:0]/OverscanCompensation[DFP-1]=80
请注意,属性名称包含 GPU 规范。
幸运的是,SyncToVBlank
它在配置文件中,因此只需加载它就可以为您设置它。如果执行该命令,nvidia-settings --query all
它将列出所有属性以及应用的目标。
答案3
我使用 dconf 编辑器将 Sync 的值设置为 VBlank