diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..94d1d66
Binary files /dev/null and b/.DS_Store differ
diff --git a/Icons.plist b/Icons.plist
old mode 100644
new mode 100755
index 15fe8ea..328574f
--- a/Icons.plist
+++ b/Icons.plist
@@ -1004,11 +1004,269 @@
resolution-preview-height
114
+ ae21
+
+ display-resolution-preview-icon
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x
+ 5
+ resolution-preview-y
+ 45
+ resolution-preview-width
+ 216
+ resolution-preview-height
+ 121
+ display-resolution-preview-icon-90
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-90
+ 60
+ resolution-preview-y-90
+ 30
+ resolution-preview-width-90
+ 106
+ resolution-preview-height-90
+ 189
+ display-resolution-preview-icon-180
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x-180
+ 5
+ resolution-preview-y-180
+ 45
+ resolution-preview-width-180
+ 216
+ resolution-preview-height-180
+ 121
+ display-resolution-preview-icon-270
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-270
+ 60
+ resolution-preview-y-270
+ 30
+ resolution-preview-width-270
+ 106
+ resolution-preview-height-270
+ 189
+
+ ae22
+
+ display-resolution-preview-icon
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x
+ 5
+ resolution-preview-y
+ 45
+ resolution-preview-width
+ 216
+ resolution-preview-height
+ 121
+ display-resolution-preview-icon-90
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-90
+ 60
+ resolution-preview-y-90
+ 30
+ resolution-preview-width-90
+ 106
+ resolution-preview-height-90
+ 189
+ display-resolution-preview-icon-180
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x-180
+ 5
+ resolution-preview-y-180
+ 45
+ resolution-preview-width-180
+ 216
+ resolution-preview-height-180
+ 121
+ display-resolution-preview-icon-270
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-270
+ 60
+ resolution-preview-y-270
+ 30
+ resolution-preview-width-270
+ 106
+ resolution-preview-height-270
+ 189
+
+ ae23
+
+ display-resolution-preview-icon
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x
+ 5
+ resolution-preview-y
+ 45
+ resolution-preview-width
+ 216
+ resolution-preview-height
+ 121
+ display-resolution-preview-icon-90
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-90
+ 60
+ resolution-preview-y-90
+ 30
+ resolution-preview-width-90
+ 106
+ resolution-preview-height-90
+ 189
+ display-resolution-preview-icon-180
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x-180
+ 5
+ resolution-preview-y-180
+ 45
+ resolution-preview-width-180
+ 216
+ resolution-preview-height-180
+ 121
+ display-resolution-preview-icon-270
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-270
+ 60
+ resolution-preview-y-270
+ 30
+ resolution-preview-width-270
+ 106
+ resolution-preview-height-270
+ 189
+
+ ae2d
+
+ display-resolution-preview-icon
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x
+ 5
+ resolution-preview-y
+ 45
+ resolution-preview-width
+ 216
+ resolution-preview-height
+ 121
+ display-resolution-preview-icon-90
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-90
+ 60
+ resolution-preview-y-90
+ 30
+ resolution-preview-width-90
+ 106
+ resolution-preview-height-90
+ 189
+ display-resolution-preview-icon-180
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x-180
+ 5
+ resolution-preview-y-180
+ 45
+ resolution-preview-width-180
+ 216
+ resolution-preview-height-180
+ 121
+ display-resolution-preview-icon-270
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-270
+ 60
+ resolution-preview-y-270
+ 30
+ resolution-preview-width-270
+ 106
+ resolution-preview-height-270
+ 189
+
+ ae2e
+
+ display-resolution-preview-icon
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x
+ 5
+ resolution-preview-y
+ 45
+ resolution-preview-width
+ 216
+ resolution-preview-height
+ 121
+ display-resolution-preview-icon-90
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-90
+ 60
+ resolution-preview-y-90
+ 30
+ resolution-preview-width-90
+ 106
+ resolution-preview-height-90
+ 189
+ display-resolution-preview-icon-180
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x-180
+ 5
+ resolution-preview-y-180
+ 45
+ resolution-preview-width-180
+ 216
+ resolution-preview-height-180
+ 121
+ display-resolution-preview-icon-270
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-270
+ 60
+ resolution-preview-y-270
+ 30
+ resolution-preview-width-270
+ 106
+ resolution-preview-height-270
+ 189
+
+ ae2f
+
+ display-resolution-preview-icon
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x
+ 5
+ resolution-preview-y
+ 45
+ resolution-preview-width
+ 216
+ resolution-preview-height
+ 121
+ display-resolution-preview-icon-90
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-90
+ 60
+ resolution-preview-y-90
+ 30
+ resolution-preview-width-90
+ 106
+ resolution-preview-height-90
+ 189
+ display-resolution-preview-icon-180
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff
+ resolution-preview-x-180
+ 5
+ resolution-preview-y-180
+ 45
+ resolution-preview-width-180
+ 216
+ resolution-preview-height-180
+ 121
+ display-resolution-preview-icon-270
+ /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-ae2f_Potrait.tiff
+ resolution-preview-x-270
+ 60
+ resolution-preview-y-270
+ 30
+ resolution-preview-width-270
+ 106
+ resolution-preview-height-270
+ 189
+
display-icon
com.apple.cinema-display
- VID
+ VID
products
diff --git a/README-zh.md b/README-zh.md
old mode 100644
new mode 100755
index 96a21e6..31531f9
--- a/README-zh.md
+++ b/README-zh.md
@@ -23,7 +23,7 @@ macOS 的 DPI 机制和 Windows 下不一样,比如 1080p 的屏幕在 Windows
在终端输入以下命令回车即可
```bash
-sh -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi-zh.sh)"
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/dev/hidpi.sh)"
```
![运行](./img/run-zh.jpg)
diff --git a/README.md b/README.md
index ea4b938..abb00e8 100755
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@ System Preferences
Run this script in Terminal
```bash
-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/dev/hidpi.sh)"
```
![RUN](./img/run.jpg)
diff --git a/displayIcons/MacBook.icns b/displayIcons/MacBook.icns
new file mode 100644
index 0000000..b0ac924
Binary files /dev/null and b/displayIcons/MacBook.icns differ
diff --git a/displayIcons/MacBookPro.icns b/displayIcons/MacBookPro.icns
new file mode 100644
index 0000000..f397e41
Binary files /dev/null and b/displayIcons/MacBookPro.icns differ
diff --git a/displayIcons/ProDisplayXDR.icns b/displayIcons/ProDisplayXDR.icns
new file mode 100644
index 0000000..844dd6c
Binary files /dev/null and b/displayIcons/ProDisplayXDR.icns differ
diff --git a/displayIcons/ProDisplayXDR.tiff b/displayIcons/ProDisplayXDR.tiff
new file mode 100755
index 0000000..4384216
Binary files /dev/null and b/displayIcons/ProDisplayXDR.tiff differ
diff --git a/displayIcons/iMac.icns b/displayIcons/iMac.icns
new file mode 100644
index 0000000..1842397
Binary files /dev/null and b/displayIcons/iMac.icns differ
diff --git a/hidpi-zh.sh b/hidpi-zh.sh
deleted file mode 100755
index 2755ebc..0000000
--- a/hidpi-zh.sh
+++ /dev/null
@@ -1,492 +0,0 @@
-#!/bin/sh
-
-function get_edid()
-{
- local index=0
- local selection=0
-
- gDisplayInf=($(ioreg -lw0 | grep -i "IODisplayEDID" | sed -e "/[^<]*//"))
-
- if [[ "${#gDisplayInf[@]}" -ge 2 ]]; then
-
- # Multi monitors detected. Choose target monitor.
- echo ''
- echo ' 显示器列表 '
- echo '------------------------------------'
- echo ' 序号 | VendorID | ProductID '
- echo '------------------------------------'
-
- # Show monitors.
- for display in "${gDisplayInf[@]}"
- do
- let index++
- printf " %d | ${display:16:4} | ${display:20:4}\n" $index
- done
-
- echo '------------------------------------'
-
- # Let user make a selection.
-
- read -p "选择显示器序号: " selection
- case $selection in
- [[:digit:]]* )
- # Lower selection (arrays start at zero).
- if ((selection < 1 || selection > index)); then
- echo "输入错误,拜拜";
- exit 0
- fi
- let selection-=1
- gMonitor=${gDisplayInf[$selection]}
- ;;
-
- * )
- echo "输入错误,拜拜";
- exit 0
- ;;
- esac
- else
- gMonitor=${gDisplayInf}
- fi
-
- if [[ ${gMonitor:16:1} == 0 ]]; then
- # get rid of the prefix 0
- gDisplayVendorID_RAW=${gMonitor:17:3}
- else
- gDisplayVendorID_RAW=${gMonitor:16:4}
- fi
-
- # convert from hex to dec
- gDisplayVendorID=$((0x$gDisplayVendorID_RAW))
- gDisplayProductID_RAW=${gMonitor:20:4}
-
- # Exchange two bytes
- # Fix an issue that will cause wrong name of DisplayProductID
-
- if [[ ${gDisplayProductID_RAW:2:1} == 0 ]]; then
- # get rid of the prefix 0
- gDisplayProduct_pr=${gDisplayProductID_RAW:3:1}
- else
- gDisplayProduct_pr=${gDisplayProductID_RAW:2:2}
- fi
- gDisplayProduct_st=${gDisplayProductID_RAW:0:2}
- gDisplayProductID_reverse="${gDisplayProduct_pr}${gDisplayProduct_st}"
- gDisplayProductID=$((0x$gDisplayProduct_pr$gDisplayProduct_st))
-
- EDID=$gMonitor
- VendorID=$gDisplayVendorID
- ProductID=$gDisplayProductID
- Vid=$gDisplayVendorID_RAW
- Pid=$gDisplayProductID_reverse
- # echo $Vid
- # echo $Pid
- # echo $EDID
-}
-
-# 初始化
-function init()
-{
-#
-cat << EEF
- _ _ _____ _____ _____ _____
- | | | | |_ _| | __ \ | __ \ |_ _|
- | |__| | | | | | | | | |__) | | |
- | __ | | | | | | | | ___/ | |
- | | | | _| |_ | |__| | | | _| |_
- |_| |_| |_____| |_____/ |_| |_____|
-
-============================================
-EEF
- #
- get_edid
-
- 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 [[ ! -f $thatDir/HIDPI/disable ]]; then
- echo "正在备份"
- sudo mkdir -p $thatDir/HIDPI/backup
- sudo cp $thatDir/Icons.plist $thatDir/HIDPI/backup/
- if [[ -d $thatDir/DisplayVendorID-$Vid ]]; then
- sudo cp -r $thatDir/DisplayVendorID-$Vid $thatDir/HIDPI/backup/
- fi
- fi
-
- if [[ ! -f $thatDir/HIDPI/disable ]]; then
- generate_restore_cmd
- fi
-}
-
-#
-function generate_restore_cmd()
-{
-#
-rm -rf $thisDir/tmp/
-mkdir -p $thisDir/tmp/
-cat > "$thisDir/tmp/disable" <<-\CCC
-function get_edid()
-{
- local index=0
- local selection=0
-
- gDisplayInf=($(ioreg -lw0 | grep -i "IODisplayEDID" | sed -e "/[^<]*//"))
-
- if [[ "${#gDisplayInf[@]}" -ge 2 ]]; then
-
- echo ' Monitors '
- echo '------------------------------------'
- echo ' Index | VendorID | ProductID '
- echo '------------------------------------'
-
- for display in "${gDisplayInf[@]}"
- do
- let index++
- printf " %d | ${display:16:4} | ${display:20:4}\n" $index
- done
-
- echo '------------------------------------'
-
- read -p "Choose the display: " selection
- case $selection in
- [[:digit:]]* )
- if ((selection < 1 || selection > index)); then
- echo "Enter error, bye";
- exit 0
- fi
- let selection-=1
- gMonitor=${gDisplayInf[$selection]}
- ;;
-
- * )
- echo "Enter error, bye";
- exit 0
- ;;
- esac
- else
- gMonitor=${gDisplayInf}
- fi
-
- if [[ ${gMonitor:16:1} == 0 ]]; then
- gDisplayVendorID_RAW=${gMonitor:17:3}
- else
- gDisplayVendorID_RAW=${gMonitor:16:4}
- fi
-
- gDisplayVendorID=$((0x$gDisplayVendorID_RAW))
- gDisplayProductID_RAW=${gMonitor:20:4}
-
- if [[ ${gDisplayProductID_RAW:2:1} == 0 ]]; then
- gDisplayProduct_pr=${gDisplayProductID_RAW:3:1}
- else
- gDisplayProduct_pr=${gDisplayProductID_RAW:2:2}
- fi
-
- gDisplayProduct_st=${gDisplayProductID_RAW:0:2}
- gDisplayProductID_reverse="${gDisplayProduct_pr}${gDisplayProduct_st}"
- gDisplayProductID=$((0x$gDisplayProduct_pr$gDisplayProduct_st))
-
- EDID=$gMonitor
- Vid=$gDisplayVendorID_RAW
- Pid=$gDisplayProductID_reverse
- # echo $Vid
- # echo $Pid
- # echo $EDID
-}
-
-get_edid
-
-if [[ -d ../DisplayVendorID-$Vid ]]; then
- rm -rf ../DisplayVendorID-$Vid
-fi
-
-rm -rf ../Icons.plist
-cp -r ./backup/* ../
-rm -rf ./disable
-echo "HIDPI Disabled"
-CCC
-
-sudo mv $thisDir/tmp/disable $thatDir/HIDPI/
-sudo chmod +x $thatDir/HIDPI/disable
-
-}
-
-# 选择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
- /usr/bin/sed -i "" "s/VID/$Vid/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/PID/$Pid/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/RPX/${RP[0]}/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/RPY/${RP[1]}/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/RPW/${RP[2]}/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/RPH/${RP[3]}/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/PICON/$Picon/g" $thisDir/tmp/Icons.plist
- /usr/bin/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
-
-
-
-
- DisplayProductID
- PID
- DisplayVendorID
- VID
- IODisplayEDID
- EDid
- scale-resolutions
-
-CCC
-
-cat << EOF
---------------------------------------
-|********** 选择分辨率配置 ***********|
---------------------------------------
-(1) 1080P 显示屏
-(2) 2K 显示屏
-(3) 手动输入分辨率
-
-EOF
-
-read -p "选择你想要的配置: " res
-case $res in
- 1 ) create_res_1 1680x944 1440x810 1280x720 1024x576
- ;;
- 2 ) create_res_1 2048x1152 1920x1080 1680x944 1440x810 1280x720
- create_res_2 1024x576
- create_res_3 960x540
- create_res_4 2048x1152 1920x1080
- ;;
- 3 ) custom_res;;
-esac
-
-create_res_2 1280x800 1280x720 960x600 960x540 640x360
-create_res_3 840x472 800x450 720x405 640x360 576x324 512x288 420x234 400x225 320x180
-create_res_4 1680x944 1440x810 1280x720 1024x576 960x540 840x472 800x450 640x360
-
-cat >> "$dpiFile" <<-\FFF
-
- target-default-ppmm
- 10.0699301
-
-
-FFF
-
- /usr/bin/sed -i "" "s/VID/$VendorID/g" $dpiFile
- /usr/bin/sed -i "" "s/PID/$ProductID/g" $dpiFile
-}
-
-# 擦屁股
-function end()
-{
- sudo cp -r $thisDir/tmp/* $thatDir/
- sudo rm -rf $thisDir/tmp
- echo "开启成功,重启生效"
- echo "首次重启开机logo会变得巨大,之后就不会了"
-}
-
-#自定义分辨率
-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
- ${hidpi:0:11}AAAAB
- ${hidpi:0:11}AAAABACAAAA==
-OOO
-done
-}
-
-function create_res_1()
-{
- 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
- ${hidpi:0:11}A
-OOO
-done
-}
-
-function create_res_2()
-{
- 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
- ${hidpi:0:11}AAAABACAAAA==
-OOO
-done
-}
-
-function create_res_3()
-{
- 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
- ${hidpi:0:11}AAAAB
-OOO
-done
-}
-
-function create_res_4()
-{
- 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
- ${hidpi:0:11}AAAAJAKAAAA==
-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
-
- version=${EDID:38:2}
- basicparams=${EDID:40:2}
- checksum=${EDID:254:2}
- newchecksum=$(printf '%x' $((0x$checksum + 0x$version +0x$basicparams - 0x04 - 0x90)) | tail -c 2)
- newedid=${EDID:0:38}0490${EDID:42:212}${newchecksum}
- EDid=$(printf $newedid | xxd -r -p | base64)
-
- /usr/bin/sed -i "" "s:EDid:${EDid}:g" $dpiFile
- end
-}
-
-# 关
-function disable()
-{
- if [[ -d $thatDir/DisplayVendorID-$Vid ]]; then
- sudo rm -rf $thatDir/DisplayVendorID-$Vid
- fi
-
- sudo rm -rf $thatDir/Icons.plist
- sudo cp -r $thatDir/HIDPI/backup/* $thatDir/
- sudo rm -rf $thatDir/HIDPI/disable
- echo "已关闭,重启生效"
-}
-
-#
-function start()
-{
- init
-#
-cat << EOF
-
-(1) 开启HIDPI
-(2) 开启HIDPI(同时注入EDID)
-(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
diff --git a/hidpi.sh b/hidpi.sh
index 47d3deb..1ea0f60 100755
--- a/hidpi.sh
+++ b/hidpi.sh
@@ -1,5 +1,71 @@
#!/bin/sh
+systemVersion=($(sw_vers -productVersion | cut -d "." -f 2))
+systemLanguage=($(locale | grep LANG | sed s/'LANG='// | tr -d '"' | cut -d "." -f 1))
+
+langDisplay="Display"
+langMonitors="Monitors"
+langIndex="Index"
+langVendorID="VendorID"
+langProductID="ProductID"
+langMonitorName="MonitorName"
+langChooseDis="Choose the display"
+langInputChoice="Enter your choice"
+langEnterError="Enter error, bye"
+langBackingUp="Backing up..."
+langEnabled="Enabled, please reboot."
+langDisabled="Disabled, restart takes effect"
+langEnabledLog="Rebooting the logo for the first time will become huge, then it will not be."
+langCustomRes="Enter the HIDPI resolution, separated by a space,like this: 1680x945 1600x900 1440x810"
+
+langChooseIcon="Display Icon"
+langNotChange="Do not change"
+
+langEnableOp1="(1) Enable HIDPI"
+langEnableOp2="(2) Enable HIDPI (with EDID)"
+langEnableOp3="(3) Disable HIDPI"
+
+langChooseRes="resolution config"
+langChooseResOp1="(1) 1080P Display"
+langChooseResOp2="(2) 2K Display"
+langChooseResOp3="(3) Manual input resolution"
+
+if [[ "${systemLanguage}" == "zh_CN" ]]; then
+ langDisplay="显示器"
+ langMonitors="显示器"
+ langIndex="序号"
+ langVendorID="供应商ID"
+ langProductID="产品ID"
+ langMonitorName="显示器名称"
+ langChooseDis="选择显示器"
+ langInputChoice="输入你的选择"
+ langEnterError="输入错误,再见了您嘞!"
+ langBackingUp="正在备份(怎么还原请看说明)..."
+ langEnabled="开启成功,重启生效"
+ langDisabled="关闭成功,重启生效"
+ langEnabledLog="首次重启开机logo会变得巨大,之后就不会了"
+ langCustomRes="输入想要开启的 HIDPI 分辨率,用空格隔开,就像这样:1680x945 1600x900 1440x810"
+
+ langChooseIcon="选择显示器ICON"
+ langNotChange="保持原样"
+
+ langEnableOp1="(1) 开启HIDPI"
+ langEnableOp2="(2) 开启HIDPI(同时注入EDID)"
+ langEnableOp3="(3) 关闭HIDPI"
+
+ langChooseRes="选择分辨率配置"
+ langChooseResOp1="(1) 1080P 显示屏"
+ langChooseResOp2="(2) 2K 显示屏"
+ langChooseResOp3="(3) 手动输入分辨率"
+fi
+
+downloadHost="https://raw.githubusercontent.com/xzhih/one-key-hidpi/dev"
+# downloadHost="http://127.0.0.1:8080"
+
+if [[ "${systemVersion}" -ge "15" ]]; then
+ sudo mount -uw / && killall Finder
+fi
+
function get_edid()
{
local index=0
@@ -10,29 +76,41 @@ function get_edid()
if [[ "${#gDisplayInf[@]}" -ge 2 ]]; then
# Multi monitors detected. Choose target monitor.
- echo ''
- echo ' Monitors '
- echo '------------------------------------'
- echo ' Index | VendorID | ProductID '
- echo '------------------------------------'
+ echo ""
+ echo " "${langMonitors}" "
+ echo "--------------------------------------------------------"
+ echo " "${langIndex}" | "${langVendorID}" | "${langProductID}" | "${langMonitorName}" "
+ echo "--------------------------------------------------------"
# Show monitors.
for display in "${gDisplayInf[@]}"
do
let index++
- printf " %d | ${display:16:4} | ${display:20:4}\n" $index
+ MonitorName=("$(echo ${display:190:24} | xxd -p -r)")
+ VendorID=${display:16:4}
+ ProductID=${display:20:4}
+
+ if [[ $VendorID == 0610 ]]; then
+ MonitorName="Apple Display"
+ fi
+
+ if [[ $VendorID == 1e6d ]]; then
+ MonitorName="LG Display"
+ fi
+
+ printf " %d | ${VendorID} | ${ProductID} | ${MonitorName}\n" ${index}
done
- echo '------------------------------------'
+ echo "--------------------------------------------------------"
# Let user make a selection.
- read -p "Choose the display: " selection
+ read -p "${langChooseDis}: " selection
case $selection in
[[:digit:]]* )
# Lower selection (arrays start at zero).
if ((selection < 1 || selection > index)); then
- echo "Enter error, bye";
+ echo "${langEnterError}";
exit 0
fi
let selection-=1
@@ -40,7 +118,7 @@ function get_edid()
;;
* )
- echo "Enter error, bye";
+ echo "${langEnterError}";
exit 0
;;
esac
@@ -77,8 +155,8 @@ function get_edid()
ProductID=$gDisplayProductID
Vid=$gDisplayVendorID_RAW
Pid=$gDisplayProductID_reverse
- # echo $Vid
- # echo $Pid
+ # echo ${Vid}
+ # echo ${Pid}
# echo $EDID
}
@@ -101,24 +179,25 @@ EEF
thisDir=$(dirname $0)
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"
- 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"
+ 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"
+ proxdricon=${Overrides}"\/DisplayVendorID\-610\/DisplayProductID\-ae2f\_Landscape\.tiff"
- if [[ ! -d $thatDir/HIDPI/backup ]]; then
- echo "Backing up..."
- sudo mkdir -p $thatDir/HIDPI/backup
- sudo cp $thatDir/Icons.plist $thatDir/HIDPI/backup/
- if [[ -d $thatDir/DisplayVendorID-$Vid ]]; then
- sudo cp -r $thatDir/DisplayVendorID-$Vid $thatDir/HIDPI/backup/
+ if [[ ! -d ${thatDir}/HIDPI/backup ]]; then
+ echo "${langBackingUp}"
+ sudo mkdir -p ${thatDir}/HIDPI/backup
+ sudo cp ${thatDir}/Icons.plist ${thatDir}/HIDPI/backup/
+ if [[ -d ${thatDir}/DisplayVendorID-${Vid} ]]; then
+ sudo cp -r ${thatDir}/DisplayVendorID-${Vid} ${thatDir}/HIDPI/backup/
fi
fi
- if [[ ! -f $thatDir/HIDPI/disable ]]; then
+ if [[ ! -f ${thatDir}/HIDPI/disable ]]; then
generate_restore_cmd
fi
}
@@ -127,9 +206,9 @@ EEF
function generate_restore_cmd()
{
#
-rm -rf $thisDir/tmp/
-mkdir -p $thisDir/tmp/
-cat > "$thisDir/tmp/disable" <<-\CCC
+rm -rf ${thisDir}/tmp/
+mkdir -p ${thisDir}/tmp/
+cat > "${thisDir}/tmp/disable" <<-\CCC
function get_edid()
{
local index=0
@@ -139,24 +218,38 @@ function get_edid()
if [[ "${#gDisplayInf[@]}" -ge 2 ]]; then
- echo ' Monitors '
- echo '------------------------------------'
- echo ' Index | VendorID | ProductID '
- echo '------------------------------------'
+ # Multi monitors detected. Choose target monitor.
+ echo ''
+ echo ' Monitors '
+ echo '----------------------------------------------------'
+ echo ' Index | VendorID | ProductID | MonitorName '
+ echo '----------------------------------------------------'
for display in "${gDisplayInf[@]}"
do
let index++
- printf " %d | ${display:16:4} | ${display:20:4}\n" $index
+ MonitorName=("$(echo ${display:190:24} | xxd -p -r)")
+ VendorID=${display:16:4}
+ ProductID=${display:20:4}
+
+ if [[ $VendorID == 0610 ]]; then
+ MonitorName="Apple Display"
+ fi
+
+ if [[ $VendorID == 1e6d ]]; then
+ MonitorName="LG Display"
+ fi
+
+ printf " %d | $VendorID | $ProductID | $MonitorName\n" $index
done
- echo '------------------------------------'
+ echo '----------------------------------------------------'
read -p "Choose the display: " selection
case $selection in
[[:digit:]]* )
if ((selection < 1 || selection > index)); then
- echo "Enter error, bye";
+ echo "Enter error. bye";
exit 0
fi
let selection-=1
@@ -164,7 +257,7 @@ function get_edid()
;;
* )
- echo "Enter error, bye";
+ echo "Enter error. bye";
exit 0
;;
esac
@@ -194,25 +287,25 @@ function get_edid()
EDID=$gMonitor
Vid=$gDisplayVendorID_RAW
Pid=$gDisplayProductID_reverse
- # echo $Vid
- # echo $Pid
+ # echo ${Vid}
+ # echo ${Pid}
# echo $EDID
}
get_edid
-if [[ -d ../DisplayVendorID-$Vid ]]; then
- rm -rf ../DisplayVendorID-$Vid
+if [[ -d ../DisplayVendorID-${Vid} ]]; then
+ sudo rm -rf ../DisplayVendorID-${Vid}
fi
-rm -rf ../Icons.plist
-cp -r ./backup/* ../
-rm -rf ./disable
+sudo rm -rf ../Icons.plist
+sudo cp -r ./backup/* ../
+sudo rm -rf ./disable
echo "HIDPI Disabled"
CCC
-sudo mv $thisDir/tmp/disable $thatDir/HIDPI/
-sudo chmod +x $thatDir/HIDPI/disable
+sudo mv ${thisDir}/tmp/disable ${thatDir}/HIDPI/
+sudo chmod +x ${thatDir}/HIDPI/disable
}
@@ -220,57 +313,69 @@ sudo chmod +x $thatDir/HIDPI/disable
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
+ rm -rf ${thisDir}/tmp/
+ mkdir -p ${thisDir}/tmp/
+ mkdir -p ${thisDir}/tmp/DisplayVendorID-${Vid}
+ curl -fsSL ${downloadHost}/Icons.plist -o ${thisDir}/tmp/Icons.plist
+ echo ""
+ echo "-------------------------------------"
+ echo "|********** ${langChooseIcon} ***********|"
+ echo "-------------------------------------"
+ echo ""
+ echo "(1) iMac"
+ echo "(2) MacBook"
+ echo "(3) MacBook Pro"
+ echo "(4) LG ${langDisplay}"
+ echo "(5) Pro Display XDR"
+ echo "(6) ${langNotChange}"
+ echo ""
#
-cat << EOF
-------------------------------------
-|********** Choose Icon ***********|
-------------------------------------
-(1) iMac
-(2) MacBook
-(3) MacBook Pro
-(4) LG Display
-(5) Remain as it is
-
-EOF
-
-read -p "Enter your choice [1~5]: " logo
-case $logo in
- 1) Picon=$imacicon
+read -p "${langInputChoice} [1~6]: " logo
+case ${logo} in
+ 1) Picon=${imacicon}
RP=("33" "68" "160" "90")
+ curl -fsSL ${downloadHost}/DisplayIcons/iMac.icns -o ${thisDir}/tmp/DisplayVendorID-${Vid}/DisplayProductID-${Pid}.icns
;;
- 2) Picon=$mbicon
+ 2) Picon=${mbicon}
RP=("52" "66" "122" "76")
+ curl -fsSL ${downloadHost}/DisplayIcons/MacBook.icns -o ${thisDir}/tmp/DisplayVendorID-${Vid}/DisplayProductID-${Pid}.icns
;;
- 3) Picon=$mbpicon
+ 3) Picon=${mbpicon}
RP=("40" "62" "147" "92")
+ curl -fsSL ${downloadHost}/DisplayIcons/MacBookPro.icns -o ${thisDir}/tmp/DisplayVendorID-${Vid}/DisplayProductID-${Pid}.icns
;;
- 4) Picon=$lgicon
+ 4) Picon=${lgicon}
RP=("11" "47" "202" "114")
- DICON=${Overrides}"DisplayVendorID-1e6d\/DisplayProductID-5b11.icns"
+ cp ${thatDir}/DisplayVendorID-1e6d/DisplayProductID-5b11.icns ${thisDir}/tmp/DisplayVendorID-${Vid}/DisplayProductID-${Pid}.icns
;;
- 5) rm -rf $thisDir/tmp/Icons.plist
+ 5) Picon=${proxdricon}
+ RP=("5" "45" "216" "121")
+ curl -fsSL ${downloadHost}/DisplayIcons/ProDisplayXDR.icns -o ${thisDir}/tmp/DisplayVendorID-${Vid}/DisplayProductID-${Pid}.icns
+ if [[ ! -f ${thatDir}/DisplayVendorID-610/DisplayProductID-ae2f_Landscape.tiff ]]; then
+ curl -fsSL ${downloadHost}/DisplayIcons/ProDisplayXDR.tiff -o ${thisDir}/tmp/DisplayVendorID-${Vid}/DisplayProductID-${Pid}.tiff
+ Picon=${Overrides}"\/DisplayVendorID\-${Vid}\/DisplayProductID\-${Pid}\.tiff"
+ fi
+ ;;
+ 6) rm -rf ${thisDir}/tmp/Icons.plist
;;
*)
- echo "Enter error, bye";
+ echo "${langEnterError}";
exit 0
;;
esac
-if [[ $Picon ]]; then
- /usr/bin/sed -i "" "s/VID/$Vid/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/PID/$Pid/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/RPX/${RP[0]}/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/RPY/${RP[1]}/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/RPW/${RP[2]}/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/RPH/${RP[3]}/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/PICON/$Picon/g" $thisDir/tmp/Icons.plist
- /usr/bin/sed -i "" "s/DICON/$DICON/g" $thisDir/tmp/Icons.plist
+if [[ ${Picon} ]]; then
+ DICON=${Overrides}"\/DisplayVendorID\-${Vid}\/DisplayProductID\-${Pid}\.icns"
+ /usr/bin/sed -i "" "s/VID/${Vid}/g" ${thisDir}/tmp/Icons.plist
+ /usr/bin/sed -i "" "s/PID/${Pid}/g" ${thisDir}/tmp/Icons.plist
+ /usr/bin/sed -i "" "s/RPX/${RP[0]}/g" ${thisDir}/tmp/Icons.plist
+ /usr/bin/sed -i "" "s/RPY/${RP[1]}/g" ${thisDir}/tmp/Icons.plist
+ /usr/bin/sed -i "" "s/RPW/${RP[2]}/g" ${thisDir}/tmp/Icons.plist
+ /usr/bin/sed -i "" "s/RPH/${RP[3]}/g" ${thisDir}/tmp/Icons.plist
+ /usr/bin/sed -i "" "s/PICON/${Picon}/g" ${thisDir}/tmp/Icons.plist
+ /usr/bin/sed -i "" "s/DICON/${DICON}/g" ${thisDir}/tmp/Icons.plist
fi
}
@@ -278,12 +383,12 @@ fi
# main
function main()
{
- sudo mkdir -p $thisDir/tmp/DisplayVendorID-$Vid
- dpiFile=$thisDir/tmp/DisplayVendorID-$Vid/DisplayProductID-$Pid
- sudo chmod -R 777 $thisDir/tmp/
+ sudo mkdir -p ${thisDir}/tmp/DisplayVendorID-${Vid}
+ dpiFile=${thisDir}/tmp/DisplayVendorID-${Vid}/DisplayProductID-${Pid}
+ sudo chmod -R 777 ${thisDir}/tmp/
#
-cat > "$dpiFile" <<-\CCC
+cat > "${dpiFile}" <<-\CCC
@@ -298,18 +403,18 @@ cat > "$dpiFile" <<-\CCC
CCC
-cat << EOF
-------------------------------------------
-|********** resolution config ***********|
-------------------------------------------
-(1) 1080P Display
-(2) 2K Display
-(3) Manual input resolution
+echo ""
+echo "------------------------------------------"
+echo "|********** "${langChooseRes}" ***********|"
+echo "------------------------------------------"
+echo ${langChooseResOp1}
+echo ${langChooseResOp2}
+echo ${langChooseResOp3}
+echo ""
-EOF
-
-read -p "Enter your choice: " res
-case $res in
+#
+read -p "${langInputChoice}: " res
+case ${res} in
1 ) create_res_1 1680x944 1440x810 1280x720 1024x576
;;
2 ) create_res_1 2048x1152 1920x1080 1680x944 1440x810 1280x720
@@ -324,7 +429,7 @@ create_res_2 1280x800 1280x720 960x600 960x540 640x360
create_res_3 840x472 800x450 720x405 640x360 576x324 512x288 420x234 400x225 320x180
create_res_4 1680x944 1440x810 1280x720 1024x576 960x540 840x472 800x450 640x360
-cat >> "$dpiFile" <<-\FFF
+cat >> "${dpiFile}" <<-\FFF
target-default-ppmm
10.0699301
@@ -332,36 +437,36 @@ cat >> "$dpiFile" <<-\FFF
FFF
- /usr/bin/sed -i "" "s/VID/$VendorID/g" $dpiFile
- /usr/bin/sed -i "" "s/PID/$ProductID/g" $dpiFile
+ /usr/bin/sed -i "" "s/VID/$VendorID/g" ${dpiFile}
+ /usr/bin/sed -i "" "s/PID/$ProductID/g" ${dpiFile}
}
# end
function end()
{
- sudo cp -r $thisDir/tmp/* $thatDir/
- sudo rm -rf $thisDir/tmp
- echo "Enabled, please reboot."
- echo "Rebooting the logo for the first time will become huge, then it will not be."
+ sudo cp -r ${thisDir}/tmp/* ${thatDir}/
+ sudo rm -rf ${thisDir}/tmp
+ echo "${langEnabled}"
+ echo "${langEnabledLog}"
}
# custom resolution
function custom_res()
{
- echo "Enter the HIDPI resolution, separated by a space,like this: 1680x945 1600x900 1440x810"
+ echo "${langCustomRes}"
read -p ":" res
- create_res $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)
+ 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
+cat << OOO >> ${dpiFile}
${hidpi:0:11}AAAAB
${hidpi:0:11}AAAABACAAAA==
OOO
@@ -371,11 +476,11 @@ done
function create_res_1()
{
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)
+ 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
+cat << OOO >> ${dpiFile}
${hidpi:0:11}A
OOO
done
@@ -384,11 +489,11 @@ done
function create_res_2()
{
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)
+ 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
+cat << OOO >> ${dpiFile}
${hidpi:0:11}AAAABACAAAA==
OOO
done
@@ -397,11 +502,11 @@ done
function create_res_3()
{
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)
+ 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
+cat << OOO >> ${dpiFile}
${hidpi:0:11}AAAAB
OOO
done
@@ -410,11 +515,11 @@ done
function create_res_4()
{
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)
+ 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
+cat << OOO >> ${dpiFile}
${hidpi:0:11}AAAAJAKAAAA==
OOO
done
@@ -425,8 +530,8 @@ function enable_hidpi()
{
choose_icon
main
- sed -i "" "/.*IODisplayEDID/d" $dpiFile
- sed -i "" "/.*EDid/d" $dpiFile
+ sed -i "" "/.*IODisplayEDID/d" ${dpiFile}
+ sed -i "" "/.*EDid/d" ${dpiFile}
end
}
@@ -441,40 +546,38 @@ function enable_hidpi_with_patch()
checksum=${EDID:254:2}
newchecksum=$(printf '%x' $((0x$checksum + 0x$version +0x$basicparams - 0x04 - 0x90)) | tail -c 2)
newedid=${EDID:0:38}0490${EDID:42:212}${newchecksum}
- EDid=$(printf $newedid | xxd -r -p | base64)
+ EDid=$(printf ${newedid} | xxd -r -p | base64)
- /usr/bin/sed -i "" "s:EDid:${EDid}:g" $dpiFile
+ /usr/bin/sed -i "" "s:EDid:${EDid}:g" ${dpiFile}
end
}
# disable
function disable()
{
- if [[ -d $thatDir/DisplayVendorID-$Vid ]]; then
- sudo rm -rf $thatDir/DisplayVendorID-$Vid
+ if [[ -d ${thatDir}/DisplayVendorID-${Vid} ]]; then
+ sudo rm -rf ${thatDir}/DisplayVendorID-${Vid}
fi
- sudo rm -rf $thatDir/Icons.plist
- sudo cp -r $thatDir/HIDPI/backup/* $thatDir/
- sudo rm -rf $thatDir/HIDPI/disable
- echo "Disabled, restart takes effect"
+ sudo rm -rf ${thatDir}/Icons.plist
+ sudo cp -r ${thatDir}/HIDPI/backup/* ${thatDir}/
+ sudo rm -rf ${thatDir}/HIDPI/disable
+ echo "${langDisabled}"
}
#
function start()
{
init
-#
-cat << EOF
+ echo ""
+ echo ${langEnableOp1}
+ echo ${langEnableOp2}
+ echo ${langEnableOp3}
+ echo ""
-(1) Enable HIDPI
-(2) Enable HIDPI (with EDID)
-(3) Disable HIDPI
-
-EOF
-
-read -p "Enter your choice [1~3]: " input
-case $input in
+#
+read -p "${langInputChoice} [1~3]: " input
+case ${input} in
1) enable_hidpi
;;
2) enable_hidpi_with_patch
@@ -483,7 +586,7 @@ case $input in
;;
*)
- echo "Enter error, bye";
+ echo "${langEnterError}";
exit 0
;;
esac
diff --git a/img/hidpi.gif b/img/hidpi.gif
old mode 100644
new mode 100755
diff --git a/img/preferences.jpg b/img/preferences.jpg
old mode 100644
new mode 100755
diff --git a/img/run-zh.jpg b/img/run-zh.jpg
old mode 100644
new mode 100755
diff --git a/img/run.jpg b/img/run.jpg
old mode 100644
new mode 100755