yoshubom 发表于 2016-3-3 08:54

亮度值保存脚本完善补充


借鉴了以下的帖子
https://bbs.pcbeta.com/viewthread-1278275-1-1.html

原帖需要创建backlight.sh 和com.delta.nvram.set.plist 有点繁琐,做了一下合并,只需要backlight.sh 即可。

backlight.sh 内容如下:
#!/bin/bash
if [ "$USER" != 'root' ]; then
    echo 'You must run this script as root'
    echo -e "Try: \033[0;31;1msudo $0 $1\033[0m instead"
    exit 1
fi
if [ "$1" == 'restore' ]; then
    echo 'Deleting script file...'
    rm /Library/Scripts/backlight.sh
    rm /Library/LaunchDaemons/com.delta.nvram.set.plist
    echo 'Deleting login script...'
    defaults delete com.apple.loginwindow LogoutHook
    echo 'Done!'
    exit 1
fi
if [ "$1" != '' ]; then
    echo 'Unknown argument(s)'
    exit 1
fi
echo 'Creating script...'
bash -c "cat > /Library/Scripts/backlight.sh <<EOF
#!/bin/bash
# (c) Slice 2010
nvram -x -p >/Extra/nvram.plist
echo Hello! NVRAM is saved!
EOF
"

cat > com.delta.nvram.set.plist << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.delta.nvram.set</string>
    <key>ProgramArguments</key>
    <array>
      <string>nvram</string>
      <string>-xf</string>
      <string>/Extra/nvram.plist</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
EOF

echo 'Grantng execution privilege...'
mv ./com.delta.nvram.set.plist /Library/LaunchDaemons/
chmod u+x /Library/Scripts/backlight.sh
chmod u+x /Library/LaunchDaemons/com.delta.nvram.set.plist
echo 'Creating login script...'
defaults write com.apple.loginwindow LogoutHook /Library/Scripts/backlight.sh
echo 'Done!'
echo -e "To retore the modify, try: \033

使用方式没变:
chmod +x backlight.sh
sudo ./backlight.sh
还原则使用:
sudo ./backlight.sh restore


原理是将系统nvram 以-x 即xml 的形式保存在/Extra/nvram.plist 中,每次启动时读取。


版权归原作者所有,我只是做了点完善。{:5_285:}





页: [1]
查看完整版本: 亮度值保存脚本完善补充