如何用脚本快速切换屏幕亮度

wen 实用脚本 1

本文目录导读:

如何用脚本快速切换屏幕亮度

  1. Windows 系统
  2. macOS 系统
  3. Linux 系统
  4. 快捷切换脚本示例
  5. 使用建议

Windows 系统

PowerShell 脚本

# 获取当前亮度
$monitor = Get-WmiObject -Namespace root/wmi -Class WmiMonitorBrightness
$current = $monitor.CurrentBrightness
# 设置亮度(0-100)
$targetBrightness = 50  # 修改这个值
$monitor.SetBrightness(1, $targetBrightness)
# 或使用快捷切换:在50%和100%之间切换
if ($current -gt 50) {
    $monitor.SetBrightness(1, 30)
} else {
    $monitor.SetBrightness(1, 100)
}

使用第三方工具 (nirsoft)

:: 下载 nircmd.exe
:: 设置亮度为50%
nircmd.exe setbrightness 50
:: 增加亮度 20%
nircmd.exe changebrightness 20
:: 降低亮度 20%
nircmd.exe changebrightness -20

macOS 系统

AppleScript

-- 设置亮度为50%
tell application "System Events"
    repeat 10 times
        key code 107  -- 降低亮度键
    end repeat
end tell
-- 或使用精确值(需要系统偏好设置权限)
do shell script "brightness 0.5"

使用 brightness 工具

# 安装 brightness
brew install brightness
# 设置亮度为50%
brightness 0.5
# 获取当前亮度
brightness -l

Linux 系统

xrandr 方法

#!/bin/bash
# 设置亮度为0.5(50%)
xrandr --output eDP-1 --brightness 0.5
# 获取当前亮度
xrandr --verbose | grep -i brightness

通过 sysfs

#!/bin/bash
# 设置亮度(数值范围取决于硬件)
echo 5000 > /sys/class/backlight/intel_backlight/brightness
# 获取最大亮度
cat /sys/class/backlight/intel_backlight/max_brightness
# 设置50%亮度
MAX=$(cat /sys/class/backlight/intel_backlight/max_brightness)
echo $((MAX / 2)) > /sys/class/backlight/intel_backlight/brightness

快捷切换脚本示例

通用的批处理脚本 (Windows)

@echo off
:: 亮度切换脚本 - 在25%, 50%, 75%, 100%之间循环
setlocal enabledelayedexpansion
:: 获取当前亮度(需要第三方工具)
for /f "tokens=2 delims==" %%a in ('wmic path Win32_Monitor where "MonitorType='LCD'" get CurrentBrightness /format:value') do set current=%%a
:: 循环切换
if %current% leq 25 (
    nircmd.exe setbrightness 50
) else if %current% leq 50 (
    nircmd.exe setbrightness 75
) else if %current% leq 75 (
    nircmd.exe setbrightness 100
) else (
    nircmd.exe setbrightness 25
)

Bash 脚本 (Linux)

#!/bin/bash
# 亮度切换脚本
BRIGHTNESS_FILE="/sys/class/backlight/intel_backlight/brightness"
MAX_BRIGHTNESS=$(cat /sys/class/backlight/intel_backlight/max_brightness)
CURRENT=$(cat $BRIGHTNESS_FILE)
# 定义亮度级别
LEVELS=(0 25 50 75 100)
CURRENT_PERCENT=$((CURRENT * 100 / MAX_BRIGHTNESS))
# 查找当前级别
for i in "${!LEVELS[@]}"; do
    if [ "${LEVELS[$i]}" -gt "$CURRENT_PERCENT" ]; then
        NEXT=${LEVELS[$i]}
        break
    fi
done
# 如果没找到,回到最低
if [ -z "$NEXT" ]; then
    NEXT=25
fi
# 设置亮度
echo $((MAX_BRIGHTNESS * NEXT / 100)) > $BRIGHTNESS_FILE
echo "亮度已设为 $NEXT%"

使用建议

  1. 创建快捷键:将脚本绑定到系统快捷键
  2. 按时间段切换:配合定时任务(cron/task scheduler)
  3. 考虑环境光:如果是笔记本,也可使用内置光传感器
  4. 注意权限:某些系统需要管理员/root权限

需要哪种具体实现?我可以为你提供更详细的版本。

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