用脚本调整显示器刷新率

wen 实用脚本 2

本文目录导读:

用脚本调整显示器刷新率

  1. Windows系统
  2. Linux系统
  3. macOS系统
  4. 跨平台解决方案
  5. 注意事项

Windows系统

方法1:使用PowerShell脚本

# 设置显示器刷新率为144Hz
$monitor = Get-WmiObject -Namespace root\wmi -Class WmiMonitorListedSupportedSourceModes
$mode = $monitor | Where-Object {$_.Frequency -eq 144}
if ($mode) {
    $mode.SetMonitorMode()
    Write-Host "刷新率已设置为144Hz"
} else {
    Write-Host "未找到144Hz模式"
}

方法2:使用QRes工具

首先下载QRes工具,然后创建批处理脚本:

@echo off
REM 设置分辨率为1920x1080,刷新率为144Hz
QRes.exe /x:1920 /y:1080 /r:144

方法3:使用DisplayChanger

@echo off
REM 使用DisplayChanger命令行工具
dc64.exe -width 1920 -height 1080 -refresh 144

Linux系统

方法1:使用xrandr(X11)

#!/bin/bash
# 设置刷新率为144Hz
xrandr --output HDMI-1 --mode 1920x1080 --rate 144

方法2:动态检测并设置

#!/bin/bash
# 检测所有显示器并设置最高刷新率
for output in $(xrandr | grep " connected" | cut -d" " -f1); do
    # 获取该显示器支持的最高刷新率
    max_rate=$(xrandr | grep -A 100 "^$output" | grep -oP '\d+\.\d+\*' | head -1 | sed 's/\*//')
    if [ ! -z "$max_rate" ]; then
        xrandr --output "$output" --rate "$max_rate"
        echo "已设置 $output 刷新率为 ${max_rate}Hz"
    fi
done

方法3:使用nvidia-settings(NVIDIA显卡)

#!/bin/bash
# 设置NVIDIA显卡输出刷新率
nvidia-settings -a CurrentMetaMode="DPY-1: 1920x1080_144 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0}"

方法4:使用Wayland(wlr-randr)

#!/bin/bash
# 检查是否安装wlr-randr
if ! command -v wlr-randr &> /dev/null; then
    echo "请安装wlr-randr"
    exit 1
fi
# 设置刷新率
wlr-randr --output HDMI-A-1 --mode 1920x1080@144Hz

macOS系统

使用系统命令

#!/bin/bash
# 获取显示器信息
system_profiler SPDisplaysDataType | grep "Resolution"
# 使用SwitchResX的CLI工具(需安装)
/Applications/SwitchResX.app/Contents/MacOS/set_monitor -r 144

跨平台解决方案

Python脚本(使用pyautogui + screeninfo)

import screeninfo
import subprocess
import platform
def set_refresh_rate(refresh_rate=144):
    system = platform.system()
    if system == "Windows":
        subprocess.run([
            "powershell", 
            f"(Get-WmiObject -Namespace root/wmi -Class WmiMonitorListedSupportedSourceModes | Where-Object {{$_.Frequency -eq {refresh_rate}}}).SetMonitorMode()"
        ])
    elif system == "Linux":
        # 获取当前激活的显示器
        monitors = screeninfo.get_monitors()
        for monitor in monitors:
            subprocess.run([
                "xrandr",
                "--output", monitor.name,
                "--rate", str(refresh_rate)
            ])
    elif system == "Darwin":
        print("macOS需使用第三方工具SwitchResX")
set_refresh_rate(144)

注意事项

  1. 权限问题:部分方法需要管理员/root权限
  2. 显示器兼容性:确保显示器支持目标刷新率
  3. 连接线缆:HDMI 1.4最高支持120Hz@1080p,DisplayPort 1.2支持144Hz@1080p
  4. 显卡驱动:确保显卡驱动已正确安装

建议先用系统显示设置检查支持的刷新率范围,再使用脚本进行设置。

抱歉,评论功能暂时关闭!