28 lines
669 B
Bash
Executable File
28 lines
669 B
Bash
Executable File
#!/bin/bash
|
|
OUTPUT=$1
|
|
WIDTH=$SUNSHINE_CLIENT_WIDTH
|
|
HEIGHT=$SUNSHINE_CLIENT_HEIGHT
|
|
FPS=$SUNSHINE_CLIENT_FPS
|
|
if [ "$2" = "RESET" ]; then
|
|
WIDTH=1920
|
|
HEIGHT=1080
|
|
FPS=60
|
|
fi
|
|
|
|
# 使用 cvt 获取 modeline
|
|
MODELINE=$(cvt $WIDTH $HEIGHT $FPS | grep "Modeline" | cut -d' ' -f2-)
|
|
|
|
# 提取模式名称和详细参数
|
|
MODE_NAME=$(echo $MODELINE | cut -d' ' -f1 | tr -d '"')
|
|
MODE_PARAMS=$(echo $MODELINE | cut -d' ' -f2-)
|
|
|
|
if xrandr | grep -q "$MODE_NAME"; then
|
|
echo "Resolution $MODE_NAME already exists."
|
|
else
|
|
xrandr --newmode "$MODE_NAME" $MODE_PARAMS
|
|
xrandr --addmode $OUTPUT $MODE_NAME
|
|
echo "Resolution $MODE_NAME added."
|
|
fi
|
|
|
|
xrandr --output $OUTPUT --mode "$MODE_NAME"
|