add english readme, more functions
This commit is contained in:
parent
6a487ffb03
commit
43b1281ef6
7 changed files with 403 additions and 93 deletions
48
README-zh.md
Normal file
48
README-zh.md
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
# 一键开启 macOS HiDPI
|
||||||
|
|
||||||
|
## 说明
|
||||||
|
|
||||||
|
[English](README.md) | [中文](README-zh.md)
|
||||||
|
|
||||||
|
此脚本的目的是为中低分辨率的屏幕开启 HiDPI 选项,并且具有原生的 HiDPI 设置,不需要 RDM 软件即可在系统显示器设置中设置
|
||||||
|
|
||||||
|
macOS 的 DPI 机制和 Windows 下不一样,比如 1080p 的屏幕在 Windows 下有 125%、150% 这样的缩放选项,而同样的屏幕在 macOS 下,缩放选项里只是单纯的调节分辨率,这就使得在默认分辨率下字体和UI看起来很小,降低分辨率又显得模糊
|
||||||
|
|
||||||
|
同时,此脚本也可以通过注入修补后的 EDID 修复闪屏,或者睡眠唤醒后的闪屏问题,当然这个修复因人而异
|
||||||
|
|
||||||
|
开机的第二阶段 logo 总是会稍微放大,因为分辨率是仿冒的
|
||||||
|
|
||||||
|
设置:
|
||||||
|
|
||||||
|
![设置](./img/preferences.jpg)
|
||||||
|
|
||||||
|
## 使用方法
|
||||||
|
|
||||||
|
在终端输入以下命令回车即可
|
||||||
|
|
||||||
|
```
|
||||||
|
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi-zh.sh)"
|
||||||
|
```
|
||||||
|
|
||||||
|
![运行](./img/run-zh.jpg)
|
||||||
|
|
||||||
|
## 恢复
|
||||||
|
|
||||||
|
如果使用此脚本后,开机无法进入系统,请到恢复模式中或使用 clover `-x` 安全模式进入系统 ,使用终端删除 `/System/Library/Displays/Contents/Resources/Overrides` 下删除显示器 VendorID 对应的文件夹,并把 backup 文件夹中的备份复制出来。
|
||||||
|
|
||||||
|
具体命令如下:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd /Volumes/你的系统盘/System/Library/Displays/Contents/Resources/Overrides
|
||||||
|
$ VendorID=$(ioreg -l | grep "DisplayVendorID" | awk '{print $8}')
|
||||||
|
$ Vid=$(echo "obase=16;$VendorID" | bc | tr 'A-Z' 'a-z')
|
||||||
|
$ rm -rf ./DisplayVendorID-$Vid
|
||||||
|
$ cp -r ./backup/* ./
|
||||||
|
```
|
||||||
|
|
||||||
|
## 从以下得到启发
|
||||||
|
|
||||||
|
https://www.tonymacx86.com/threads/solved-black-screen-with-gtx-1070-lg-ultrafine-5k-sierra-10-12-4.219872/page-4#post-1644805
|
||||||
|
|
||||||
|
https://github.com/syscl/Enable-HiDPI-OSX
|
||||||
|
|
35
README.md
35
README.md
|
@ -1,38 +1,45 @@
|
||||||
# 一键开启MacOS HIDPI
|
# Enable macOS HiDPI
|
||||||
|
|
||||||
### 说明
|
## Explanation
|
||||||
|
|
||||||
此脚本的目的是为中低分辨率的屏幕开启 HIDPI 选项,并且具有原生的 HIDPI 设置,不需要 RDM 软件即可在系统显示器设置中设置
|
[English](README.md) | [中文](README-zh.md)
|
||||||
|
|
||||||
MacOS 的 dpi 机制和 win 下不一样,比如 1080p 的屏幕在 win 下有 125%、150% 这样的缩放选项,而同样的屏幕在 MacOS 下,缩放选项里只是单纯的调节分辨率,这就使得在默认分辨率下字体和UI看起来很小,降低分辨率又显得模糊。
|
This script can simulate macOS HiDPI on a non-retina display, and have a "Native" Scaled in System Preferences.
|
||||||
|
|
||||||
同时,此脚本也可以通过注入修补后的 EDID 修复闪屏,或者睡眠唤醒后的闪屏问题,当然这个修复因人而异
|
Some device have wake-up issue, script's second option may help, it inject a patched EDID, but another problem may exists here.
|
||||||
|
|
||||||
效果:
|
Logo scaling up may not be resolved, cuz the higher resolution is faked.
|
||||||
|
|
||||||
![HIDPI效果.png](https://i.loli.net/2017/10/26/59f199e85deb7.png)
|
System Preferences
|
||||||
|
|
||||||
### 使用方法
|
![Preferences](./img/preferences.jpg)
|
||||||
|
|
||||||
在终端输入以下命令回车即可
|
## Usage
|
||||||
|
|
||||||
|
Run script in Terminal
|
||||||
|
|
||||||
```
|
```
|
||||||
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi.sh)"
|
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi.sh)"
|
||||||
```
|
```
|
||||||
|
|
||||||
![运行](https://i.loli.net/2018/04/03/5ac2963c7b26b.png)
|
![RUN](./img/run.jpg)
|
||||||
|
|
||||||
### 恢复
|
## Recovery
|
||||||
|
|
||||||
如果使用此脚本后,开机无法进入系统,请到恢复模式中,使用终端删除 `/System/Library/Displays/Contents/Resources/Overrides` 下删除显示器VendorID对应的文件夹,并把backup文件夹中的备份复制出来。
|
If you cant boot into system, or get any another issues, you can use clover `-x ` reboot or into Recovery mode, remove your display's DisplayVendorID folder under `/System/Library/Displays/Contents/Resources/Overrides` , and move backup files
|
||||||
|
|
||||||
|
In Terminal:
|
||||||
|
|
||||||
具体命令如下:
|
|
||||||
```
|
```
|
||||||
$ cd /Volumes/你的系统盘/System/Library/Displays/Contents/Resources/Overrides
|
$ cd /Volumes/"Your System Disk Part"/System/Library/Displays/Contents/Resources/Overrides
|
||||||
$ VendorID=$(ioreg -l | grep "DisplayVendorID" | awk '{print $8}')
|
$ VendorID=$(ioreg -l | grep "DisplayVendorID" | awk '{print $8}')
|
||||||
$ Vid=$(echo "obase=16;$VendorID" | bc | tr 'A-Z' 'a-z')
|
$ Vid=$(echo "obase=16;$VendorID" | bc | tr 'A-Z' 'a-z')
|
||||||
$ rm -rf ./DisplayVendorID-$Vid
|
$ rm -rf ./DisplayVendorID-$Vid
|
||||||
$ cp -r ./backup/* ./
|
$ cp -r ./backup/* ./
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Inspired
|
||||||
|
|
||||||
|
https://www.tonymacx86.com/threads/solved-black-screen-with-gtx-1070-lg-ultrafine-5k-sierra-10-12-4.219872/page-4#post-1644805
|
||||||
|
|
||||||
|
https://github.com/syscl/Enable-HiDPI-OSX
|
||||||
|
|
256
hidpi-zh.sh
Executable file
256
hidpi-zh.sh
Executable file
|
@ -0,0 +1,256 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 初始化
|
||||||
|
function init()
|
||||||
|
{
|
||||||
|
#
|
||||||
|
cat << EEF
|
||||||
|
|
||||||
|
_ _ _____ _____ _____ _____
|
||||||
|
| | | | |_ _| | __ \ | __ \ |_ _|
|
||||||
|
| |__| | | | | | | | | |__) | | |
|
||||||
|
| __ | | | | | | | | ___/ | |
|
||||||
|
| | | | _| |_ | |__| | | | _| |_
|
||||||
|
|_| |_| |_____| |_____/ |_| |_____|
|
||||||
|
|
||||||
|
============================================
|
||||||
|
EEF
|
||||||
|
#
|
||||||
|
VendorID=$(ioreg -l | grep "DisplayVendorID" | awk '{print $8}')
|
||||||
|
ProductID=$(ioreg -l | grep "DisplayProductID" | awk '{print $8}')
|
||||||
|
EDID=$(ioreg -l | grep "IODisplayEDID" | awk '{print $8}' | sed -e 's/.$//' -e 's/^.//')
|
||||||
|
|
||||||
|
Vid=$(echo "obase=16;$VendorID" | bc | tr 'A-Z' 'a-z')
|
||||||
|
Pid=$(echo "obase=16;$ProductID" | bc | tr 'A-Z' 'a-z')
|
||||||
|
|
||||||
|
edID=$(echo $EDID | sed 's/../b5/21')
|
||||||
|
EDid=$(echo $edID | xxd -r -p | base64)
|
||||||
|
|
||||||
|
thisDir=$(dirname $0)
|
||||||
|
thatDir="/System/Library/Displays/Contents/Resources/Overrides"
|
||||||
|
Overrides="\/System\/Library\/Displays\/Contents\/Resources\/Overrides\/"
|
||||||
|
|
||||||
|
DICON="com\.apple\.cinema-display"
|
||||||
|
imacicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a032.tiff"
|
||||||
|
mbpicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a030-e1e1df.tiff"
|
||||||
|
mbicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a028-9d9da0.tiff"
|
||||||
|
lgicon=${Overrides}"DisplayVendorID-1e6d\/DisplayProductID-5b11.tiff"
|
||||||
|
|
||||||
|
if [[ ! -d $thatDir/backup ]]; then
|
||||||
|
echo "正在备份"
|
||||||
|
sudo mkdir -p $thatDir/backup
|
||||||
|
sudo cp $thatDir/Icons.plist $thatDir/backup/
|
||||||
|
if [[ -d $thatDir/DisplayVendorID-$Vid ]]; then
|
||||||
|
sudo cp -r $thatDir/DisplayVendorID-$Vid $thatDir/backup/
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# 选择ICON
|
||||||
|
function choose_icon()
|
||||||
|
{
|
||||||
|
#
|
||||||
|
rm -rf $thisDir/tmp/
|
||||||
|
mkdir -p $thisDir/tmp/
|
||||||
|
curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/Icons.plist -o $thisDir/tmp/Icons.plist
|
||||||
|
# curl -fsSL http://127.0.0.1:8080/Icons.plist -o $thisDir/tmp/Icons.plist
|
||||||
|
|
||||||
|
#
|
||||||
|
cat << EOF
|
||||||
|
----------------------------------------
|
||||||
|
|********** 选择要显示的ICON ***********|
|
||||||
|
----------------------------------------
|
||||||
|
(1) iMac
|
||||||
|
(2) MacBook
|
||||||
|
(3) MacBook Pro
|
||||||
|
(4) LG 显示器
|
||||||
|
(5) 保持原样
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
read -p "输入你的选择[1~5]: " logo
|
||||||
|
case $logo in
|
||||||
|
1) Picon=$imacicon
|
||||||
|
RP=("33" "68" "160" "90")
|
||||||
|
;;
|
||||||
|
2) Picon=$mbicon
|
||||||
|
RP=("52" "66" "122" "76")
|
||||||
|
;;
|
||||||
|
3) Picon=$mbpicon
|
||||||
|
RP=("40" "62" "147" "92")
|
||||||
|
;;
|
||||||
|
4) Picon=$lgicon
|
||||||
|
RP=("11" "47" "202" "114")
|
||||||
|
DICON=${Overrides}"DisplayVendorID-1e6d\/DisplayProductID-5b11.icns"
|
||||||
|
;;
|
||||||
|
5) rm -rf $thisDir/tmp/Icons.plist
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
|
||||||
|
echo "输入错误,拜拜";
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ $Picon ]]; then
|
||||||
|
sed -i '' "s/VID/$Vid/g" $thisDir/tmp/Icons.plist
|
||||||
|
sed -i '' "s/PID/$Pid/g" $thisDir/tmp/Icons.plist
|
||||||
|
sed -i '' "s/RPX/${RP[0]}/g" $thisDir/tmp/Icons.plist
|
||||||
|
sed -i '' "s/RPY/${RP[1]}/g" $thisDir/tmp/Icons.plist
|
||||||
|
sed -i '' "s/RPW/${RP[2]}/g" $thisDir/tmp/Icons.plist
|
||||||
|
sed -i '' "s/RPH/${RP[3]}/g" $thisDir/tmp/Icons.plist
|
||||||
|
sed -i '' "s/PICON/$Picon/g" $thisDir/tmp/Icons.plist
|
||||||
|
sed -i '' "s/DICON/$DICON/g" $thisDir/tmp/Icons.plist
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# 主函数
|
||||||
|
function main()
|
||||||
|
{
|
||||||
|
sudo mkdir -p $thisDir/tmp/DisplayVendorID-$Vid
|
||||||
|
dpiFile=$thisDir/tmp/DisplayVendorID-$Vid/DisplayProductID-$Pid
|
||||||
|
sudo chmod -R 777 $thisDir/tmp/
|
||||||
|
|
||||||
|
#
|
||||||
|
cat > "$dpiFile" <<-\CCC
|
||||||
|
<?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>DisplayProductID</key>
|
||||||
|
<integer>PID</integer>
|
||||||
|
<key>DisplayVendorID</key>
|
||||||
|
<integer>VID</integer>
|
||||||
|
<key>IODisplayEDID</key>
|
||||||
|
<data>EDid</data>
|
||||||
|
<key>scale-resolutions</key>
|
||||||
|
<array>
|
||||||
|
CCC
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
--------------------------------------
|
||||||
|
|********** 选择分辨率配置 ***********|
|
||||||
|
--------------------------------------
|
||||||
|
(1) 1080P 显示屏
|
||||||
|
(2) 2K 显示屏
|
||||||
|
(3) 手动输入分辨率
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
read -p "选择你想要的配置: " res
|
||||||
|
case $res in
|
||||||
|
1 ) create_res 1680x945 1600x900 1440x810;;
|
||||||
|
2 ) create_res 2048x1152 1920x1080 1840x1035 1760x990;;
|
||||||
|
3 ) custom_res;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
create_res 1280x720 1024x576 960x540 640x360
|
||||||
|
|
||||||
|
cat >> "$dpiFile" <<-\FFF
|
||||||
|
</array>
|
||||||
|
<key>target-default-ppmm</key>
|
||||||
|
<real>10.0699301</real>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
FFF
|
||||||
|
|
||||||
|
sed -i '' "s/VID/$VendorID/g" $dpiFile
|
||||||
|
sed -i '' "s/PID/$ProductID/g" $dpiFile
|
||||||
|
}
|
||||||
|
|
||||||
|
# 擦屁股
|
||||||
|
function end()
|
||||||
|
{
|
||||||
|
sudo cp -r $thisDir/tmp/* $thatDir/
|
||||||
|
sudo rm -rf $thisDir/tmp
|
||||||
|
echo "开启成功,重启生效"
|
||||||
|
echo "首次重启开机logo会变得巨大,之后就不会了"
|
||||||
|
say "妖怪,哪里跑"
|
||||||
|
}
|
||||||
|
|
||||||
|
#自定义分辨率
|
||||||
|
function custom_res()
|
||||||
|
{
|
||||||
|
echo "输入想要开启的 HIDPI 分辨率,用空格隔开,就像这样:1680x945 1600x900 1440x810"
|
||||||
|
read -p ":" res
|
||||||
|
create_res $res
|
||||||
|
}
|
||||||
|
|
||||||
|
# 创建分辨率配置
|
||||||
|
function create_res()
|
||||||
|
{
|
||||||
|
for res in $@; do
|
||||||
|
width=$(echo $res | cut -d x -f 1)
|
||||||
|
height=$(echo $res | cut -d x -f 2)
|
||||||
|
hidpi=$(printf '%08x %08x' $(($width*2)) $(($height*2)) | xxd -r -p | base64)
|
||||||
|
#
|
||||||
|
cat << OOO >> $dpiFile
|
||||||
|
<!-- $res -->
|
||||||
|
<data>${hidpi:0:11}A</data>
|
||||||
|
<data>${hidpi:0:11}AAAABACAAAA==</data>
|
||||||
|
<data>${hidpi:0:11}AAAAJAKAAAA==</data>
|
||||||
|
|
||||||
|
OOO
|
||||||
|
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# 开
|
||||||
|
function enable_hidpi()
|
||||||
|
{
|
||||||
|
choose_icon
|
||||||
|
main
|
||||||
|
sed -i "" "/.*IODisplayEDID/d" $dpiFile
|
||||||
|
sed -i "" "/.*EDid/d" $dpiFile
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
# 开挂
|
||||||
|
function enable_hidpi_with_patch()
|
||||||
|
{
|
||||||
|
choose_icon
|
||||||
|
main
|
||||||
|
sed -i '' "s:EDid:${EDid}:g" $dpiFile
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
# 关
|
||||||
|
function disable()
|
||||||
|
{
|
||||||
|
sudo rm -rf $thatDir/DisplayVendorID-$Vid
|
||||||
|
sudo rm -rf $thatDir/Icons.plist
|
||||||
|
sudo cp -r $thatDir/backup/* $thatDir/
|
||||||
|
sudo rm -rf $thatDir/backup
|
||||||
|
echo "已关闭,重启生效"
|
||||||
|
}
|
||||||
|
|
||||||
|
function start()
|
||||||
|
{
|
||||||
|
init
|
||||||
|
#
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
(1) 开启HIDPI
|
||||||
|
(2) 开启HIDPI(同时注入花屏补丁)
|
||||||
|
(3) 关闭HIDPI
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
read -p "输入你的选择[1~3]: " input
|
||||||
|
case $input in
|
||||||
|
1) enable_hidpi
|
||||||
|
;;
|
||||||
|
2) enable_hidpi_with_patch
|
||||||
|
;;
|
||||||
|
3) disable
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
|
||||||
|
echo "输入错误,拜拜";
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
155
hidpi.sh
155
hidpi.sh
|
@ -1,13 +1,19 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# 初始化
|
# init
|
||||||
function init()
|
function init()
|
||||||
{
|
{
|
||||||
#
|
#
|
||||||
cat << EEF
|
cat << EEF
|
||||||
----------------------------------------
|
|
||||||
|*************** HIDPI ****************|
|
_ _ _____ _____ _____ _____
|
||||||
----------------------------------------
|
| | | | |_ _| | __ \ | __ \ |_ _|
|
||||||
|
| |__| | | | | | | | | |__) | | |
|
||||||
|
| __ | | | | | | | | ___/ | |
|
||||||
|
| | | | _| |_ | |__| | | | _| |_
|
||||||
|
|_| |_| |_____| |_____/ |_| |_____|
|
||||||
|
|
||||||
|
============================================
|
||||||
EEF
|
EEF
|
||||||
#
|
#
|
||||||
VendorID=$(ioreg -l | grep "DisplayVendorID" | awk '{print $8}')
|
VendorID=$(ioreg -l | grep "DisplayVendorID" | awk '{print $8}')
|
||||||
|
@ -18,25 +24,20 @@ EEF
|
||||||
Pid=$(echo "obase=16;$ProductID" | bc | tr 'A-Z' 'a-z')
|
Pid=$(echo "obase=16;$ProductID" | bc | tr 'A-Z' 'a-z')
|
||||||
|
|
||||||
edID=$(echo $EDID | sed 's/../b5/21')
|
edID=$(echo $EDID | sed 's/../b5/21')
|
||||||
|
|
||||||
EDid=$(echo $edID | xxd -r -p | base64)
|
EDid=$(echo $edID | xxd -r -p | base64)
|
||||||
|
|
||||||
thisDir=$(dirname $0)
|
thisDir=$(dirname $0)
|
||||||
thatDir="/System/Library/Displays/Contents/Resources/Overrides"
|
thatDir="/System/Library/Displays/Contents/Resources/Overrides"
|
||||||
|
|
||||||
Overrides="\/System\/Library\/Displays\/Contents\/Resources\/Overrides\/"
|
Overrides="\/System\/Library\/Displays\/Contents\/Resources\/Overrides\/"
|
||||||
|
|
||||||
DICON="com\.apple\.cinema-display"
|
DICON="com\.apple\.cinema-display"
|
||||||
|
|
||||||
imacicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a032.tiff"
|
imacicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a032.tiff"
|
||||||
|
|
||||||
mbpicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a030-e1e1df.tiff"
|
mbpicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a030-e1e1df.tiff"
|
||||||
|
|
||||||
mbicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a028-9d9da0.tiff"
|
mbicon=${Overrides}"DisplayVendorID-610\/DisplayProductID-a028-9d9da0.tiff"
|
||||||
|
|
||||||
lgicon=${Overrides}"DisplayVendorID-1e6d\/DisplayProductID-5b11.tiff"
|
lgicon=${Overrides}"DisplayVendorID-1e6d\/DisplayProductID-5b11.tiff"
|
||||||
|
|
||||||
if [[ ! -d $thatDir/backup ]]; then
|
if [[ ! -d $thatDir/backup ]]; then
|
||||||
echo "正在备份"
|
echo "Backing up..."
|
||||||
sudo mkdir -p $thatDir/backup
|
sudo mkdir -p $thatDir/backup
|
||||||
sudo cp $thatDir/Icons.plist $thatDir/backup/
|
sudo cp $thatDir/Icons.plist $thatDir/backup/
|
||||||
if [[ -d $thatDir/DisplayVendorID-$Vid ]]; then
|
if [[ -d $thatDir/DisplayVendorID-$Vid ]]; then
|
||||||
|
@ -45,7 +46,7 @@ EEF
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# 选择ICON
|
# choose_icon
|
||||||
function choose_icon()
|
function choose_icon()
|
||||||
{
|
{
|
||||||
#
|
#
|
||||||
|
@ -56,18 +57,18 @@ function choose_icon()
|
||||||
|
|
||||||
#
|
#
|
||||||
cat << EOF
|
cat << EOF
|
||||||
----------------------------------------
|
------------------------------------
|
||||||
|********** 选择要显示的ICON ***********|
|
|********** Choose Icon ***********|
|
||||||
----------------------------------------
|
------------------------------------
|
||||||
(1) iMac
|
(1) iMac
|
||||||
(2) MacBook
|
(2) MacBook
|
||||||
(3) MacBook Pro
|
(3) MacBook Pro
|
||||||
(4) LG 显示器
|
(4) LG Display
|
||||||
(5) 保持原样
|
(5) Remain as it is
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
read -p "输入你的选择[1~5]: " logo
|
read -p "Enter your choice [1~5]: " logo
|
||||||
case $logo in
|
case $logo in
|
||||||
1) Picon=$imacicon
|
1) Picon=$imacicon
|
||||||
RP=("33" "68" "160" "90")
|
RP=("33" "68" "160" "90")
|
||||||
|
@ -84,9 +85,7 @@ DICON=${Overrides}"DisplayVendorID-1e6d\/DisplayProductID-5b11.icns"
|
||||||
;;
|
;;
|
||||||
5) rm -rf $thisDir/tmp/Icons.plist
|
5) rm -rf $thisDir/tmp/Icons.plist
|
||||||
;;
|
;;
|
||||||
*)
|
*) echo "Enter error, bye";
|
||||||
|
|
||||||
echo "输入错误,拜拜";
|
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -104,7 +103,7 @@ fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 主函数
|
# mian
|
||||||
function main()
|
function main()
|
||||||
{
|
{
|
||||||
sudo mkdir -p $thisDir/tmp/DisplayVendorID-$Vid
|
sudo mkdir -p $thisDir/tmp/DisplayVendorID-$Vid
|
||||||
|
@ -112,7 +111,7 @@ function main()
|
||||||
sudo chmod -R 777 $thisDir/tmp/
|
sudo chmod -R 777 $thisDir/tmp/
|
||||||
|
|
||||||
#
|
#
|
||||||
cat > "$dpiFile" <<-\HIDPI
|
cat > "$dpiFile" <<-\CCC
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
|
@ -125,73 +124,77 @@ cat > "$dpiFile" <<-\HIDPI
|
||||||
<data>EDid</data>
|
<data>EDid</data>
|
||||||
<key>scale-resolutions</key>
|
<key>scale-resolutions</key>
|
||||||
<array>
|
<array>
|
||||||
<!-- 1840x1035 -->
|
CCC
|
||||||
<!-- <data>AAAOYAAACBYA</data> -->
|
|
||||||
<!-- <data>AAAOYAAACBYAAAABACAAAA==</data> -->
|
|
||||||
<!-- <data>AAAOYAAACBYAAAAJAKAAAA==</data> -->
|
|
||||||
|
|
||||||
<!-- 1760x990 -->
|
cat << EOF
|
||||||
<!-- <data>AAANwAAAB7wA</data> -->
|
------------------------------------------
|
||||||
<!-- <data>AAANwAAAB7wAAAABACAAAA==</data> -->
|
|********** resolution config ***********|
|
||||||
<!-- <data>AAANwAAAB7wAAAAJAKAAAA==</data> -->
|
------------------------------------------
|
||||||
|
(1) 1080P Display
|
||||||
|
(2) 2K Display
|
||||||
|
(3) Manual input resolution
|
||||||
|
|
||||||
<!-- 1680x945 -->
|
EOF
|
||||||
<data>AAANIAAAB2IA</data>
|
|
||||||
<data>AAANIAAAB2IAAAABACAAAA==</data>
|
|
||||||
<data>AAANIAAAB2IAAAAJAKAAAA==</data>
|
|
||||||
|
|
||||||
<!-- 1440x810 -->
|
read -p "Enter your choice: " res
|
||||||
<data>AAALQAAABlQA</data>
|
case $res in
|
||||||
<data>AAALQAAABlQAAAABACAAAA==</data>
|
1 ) create_res 1680x945 1600x900 1440x810;;
|
||||||
<data>AAALQAAABlQAAAAJAKAAAA==</data>
|
2 ) create_res 2048x1152 1920x1080 1840x1035 1760x990;;
|
||||||
|
3 ) custom_res;;
|
||||||
|
esac
|
||||||
|
|
||||||
<!-- 1280x720 -->
|
create_res 1280x720 1024x576 960x540 640x360
|
||||||
<data>AAAKAAAABaAA</data>
|
|
||||||
<data>AAAKAAAABaAAAAABACAAAA==</data>
|
|
||||||
<data>AAAKAAAABaAAAAAJAKAAAA==</data>
|
|
||||||
|
|
||||||
<!-- 1024x576 -->
|
cat >> "$dpiFile" <<-\FFF
|
||||||
<data>AAAIAAAABIAA</data>
|
|
||||||
<data>AAAIAAAABIAAAAABACAAAA==</data>
|
|
||||||
<data>AAAIAAAABIAAAAAJAKAAAA==</data>
|
|
||||||
|
|
||||||
<!-- 960x540 -->
|
|
||||||
<data>AAAHgAAABDgA</data>
|
|
||||||
<data>AAAHgAAABDgAAAABACAAAA==</data>
|
|
||||||
<data>AAAHgAAABDgAAAAJAKAAAA==</data>
|
|
||||||
|
|
||||||
<!-- 640x360 -->
|
|
||||||
<data>AAAFAAAAAWgA</data>
|
|
||||||
<data>AAAFAAAAAWgAAAABACAAAA==</data>
|
|
||||||
<data>AAAFAAAAAWgAAAAJAKAAAA==</data>
|
|
||||||
</array>
|
</array>
|
||||||
<key>target-default-ppmm</key>
|
<key>target-default-ppmm</key>
|
||||||
<real>10.0699301</real>
|
<real>10.0699301</real>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
HIDPI
|
FFF
|
||||||
|
|
||||||
sed -i '' "s/VID/$VendorID/g" $dpiFile
|
sed -i '' "s/VID/$VendorID/g" $dpiFile
|
||||||
sed -i '' "s/PID/$ProductID/g" $dpiFile
|
sed -i '' "s/PID/$ProductID/g" $dpiFile
|
||||||
}
|
}
|
||||||
|
|
||||||
# 擦屁股
|
# end
|
||||||
function end()
|
function end()
|
||||||
{
|
{
|
||||||
sudo cp -r $thisDir/tmp/* $thatDir/
|
sudo cp -r $thisDir/tmp/* $thatDir/
|
||||||
sudo rm -rf $thisDir/tmp
|
sudo rm -rf $thisDir/tmp
|
||||||
echo "开启成功,重启生效"
|
echo "Enabled, please reboot."
|
||||||
echo "首次重启开机logo会变得巨大,之后就不会了"
|
echo "Rebooting the logo for the first time will become huge, then it will not be."
|
||||||
say "妖怪,哪里跑"
|
say "Good"
|
||||||
}
|
}
|
||||||
|
|
||||||
#自定义分辨率
|
# custom resolution
|
||||||
#hi = $(printf '%08x %08x' $((1920*2)) $((1080*2)))
|
function custom_res()
|
||||||
#encode_hi = $(echo $hi | xxd -r -p | base64)
|
{
|
||||||
|
echo "Enter the HIDPI resolution, separated by a space,like this: 1680x945 1600x900 1440x810"
|
||||||
|
read -p ":" res
|
||||||
|
create_res $res
|
||||||
|
}
|
||||||
|
|
||||||
|
# create resolution
|
||||||
|
function create_res()
|
||||||
|
{
|
||||||
|
for res in $@; do
|
||||||
|
width=$(echo $res | cut -d x -f 1)
|
||||||
|
height=$(echo $res | cut -d x -f 2)
|
||||||
|
hidpi=$(printf '%08x %08x' $(($width*2)) $(($height*2)) | xxd -r -p | base64)
|
||||||
|
#
|
||||||
|
cat << OOO >> $dpiFile
|
||||||
|
<!-- $res -->
|
||||||
|
<data>${hidpi:0:11}A</data>
|
||||||
|
<data>${hidpi:0:11}AAAABACAAAA==</data>
|
||||||
|
<data>${hidpi:0:11}AAAAJAKAAAA==</data>
|
||||||
|
|
||||||
|
OOO
|
||||||
|
|
||||||
# 开
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# enable
|
||||||
function enable_hidpi()
|
function enable_hidpi()
|
||||||
{
|
{
|
||||||
choose_icon
|
choose_icon
|
||||||
|
@ -201,7 +204,7 @@ function enable_hidpi()
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
# 开挂
|
# patch
|
||||||
function enable_hidpi_with_patch()
|
function enable_hidpi_with_patch()
|
||||||
{
|
{
|
||||||
choose_icon
|
choose_icon
|
||||||
|
@ -210,17 +213,14 @@ function enable_hidpi_with_patch()
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
# 关
|
# disable
|
||||||
function disable()
|
function disable()
|
||||||
{
|
{
|
||||||
sudo rm -rf $thatDir/DisplayVendorID-$Vid
|
sudo rm -rf $thatDir/DisplayVendorID-$Vid
|
||||||
sudo rm -rf $thatDir/Icons.plist
|
sudo rm -rf $thatDir/Icons.plist
|
||||||
|
|
||||||
sudo cp -r $thatDir/backup/* $thatDir/
|
sudo cp -r $thatDir/backup/* $thatDir/
|
||||||
|
|
||||||
sudo rm -rf $thatDir/backup
|
sudo rm -rf $thatDir/backup
|
||||||
|
echo "Disabled, restart takes effect"
|
||||||
echo "已关闭,重启生效"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function start()
|
function start()
|
||||||
|
@ -229,13 +229,13 @@ function start()
|
||||||
#
|
#
|
||||||
cat << EOF
|
cat << EOF
|
||||||
|
|
||||||
(1) 开启HIDPI
|
(1) Enable HIDPI
|
||||||
(2) 开启HIDPI(同时注入花屏补丁)
|
(2) Enable HIDPI (with patch)
|
||||||
(3) 关闭HIDPI
|
(3) Disable HIDPI
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
read -p "输入你的选择[1~3]: " input
|
read -p "Enter your choice [1~3]: " input
|
||||||
case $input in
|
case $input in
|
||||||
1) enable_hidpi
|
1) enable_hidpi
|
||||||
;;
|
;;
|
||||||
|
@ -244,8 +244,7 @@ case $input in
|
||||||
3) disable
|
3) disable
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
echo "Enter error, bye";
|
||||||
echo "输入错误,拜拜";
|
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
BIN
img/preferences.jpg
Normal file
BIN
img/preferences.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 112 KiB |
BIN
img/run-zh.jpg
Normal file
BIN
img/run-zh.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 130 KiB |
BIN
img/run.jpg
Normal file
BIN
img/run.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 143 KiB |
Loading…
Reference in a new issue