Skip to content

Instantly share code, notes, and snippets.

@jinmiaoluo
Last active June 5, 2020 07:10
Show Gist options
  • Select an option

  • Save jinmiaoluo/7903c6b6c1bc68e49acc4da11f1ff18b to your computer and use it in GitHub Desktop.

Select an option

Save jinmiaoluo/7903c6b6c1bc68e49acc4da11f1ff18b to your computer and use it in GitHub Desktop.
#!/bin/bash
set -xe
export DISPLAY=':0'
export XAUTHORITY='/home/jinmiaoluo/.Xauthority'
intern=$(xrandr | grep 'Screen\ 0' -A1 | awk 'NR==2{print $1}' | grep -v '^$')
extern=$(xrandr | grep ' connected' | grep -v ${intern} | awk '{print $1}')
user=jinmiaoluo
#internal="xrandr --auto --output ${intern} --mode 1920x1080 --primary"
#internal="xrandr --auto --output ${intern} --mode 2048x1152 --primary"
internal="xrandr --auto --output ${intern} --mode 2560x1440 --primary"
#external="xrandr --output ${intern} --mode 2560x1440 --scale 1x1 --output ${extern} --auto --mode 1920x1080 --scale 1.5x1.5 --above ${intern} --set audio on"
#external="xrandr --output ${intern} --off --output ${extern} --auto --mode 1920x1080 --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --primary --output ${extern} --auto --above ${intern} --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --primary --output ${extern} --auto --right-of ${intern}"
#external="xrandr --output ${intern} --auto --primary --output ${extern} --auto --above ${intern} --set audio on"
#external="xrandr --output ${intern} --auto --output ${extern} --auto --above ${intern} --primary --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --output ${extern} --auto --above ${intern} --primary --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --output ${extern} --auto --right-of ${intern} --primary --set audio on"
#external="xrandr --output ${intern} --auto --mode 2048x1152 --primary --output ${extern} --auto --above ${intern} --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --primary --output ${extern} --auto --right-of ${intern} --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --primary --output ${extern} --auto --left-of ${intern} --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --primary --output ${extern} --auto --same-as ${intern} --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --primary --output ${extern} --auto --same-as ${intern} --set audio off"
#external="xrandr --output ${intern} --off --output ${extern} --primary --auto --mode 1920x1080 --set audio on"
#external="xrandr --output ${intern} --mode 1920x1080 --primary --output ${extern} --off"
#external="xrandr --output ${intern} --auto --primary --output ${extern} --off"
#external="xrandr --output ${intern} --off --output ${extern} --auto --primary"
external="xrandr --output ${intern} --off --output ${extern} --auto --primary --scale 1.5x1.5"
#external="xrandr --output ${intern} --auto --primary --output ${extern} --above ${intern} --auto --mode 3840x2160 --primary"
if [ -z "$extern" ]
then
sudo -u ${user} ${internal}
# 这一行是本地的音频输出
sudo -u ${user} pactl --server unix:/run/user/1000/pulse/native set-card-profile 0 output:analog-stereo
# 这一行是HDMI的音频输出
#sudo -u ${user} pactl --server unix:/run/user/1000/pulse/native set-card-profile 0 output:hdmi-stereo-extra1
else
sudo -u ${user} xrandr --output eDP1 --off
sudo -u ${user} ${external}
sudo -u ${user} pactl --server unix:/run/user/1000/pulse/native set-card-profile 0 output:hdmi-stereo-extra1
#sudo -u ${user} pactl --server unix:/run/user/1000/pulse/native set-card-profile 0 output:analog-stereo
fi
#elif [ -e "/tmp/display.toggle" ]
#then
# sudo -u ${user} ${external}
# rm /tmp/display.toggle
#else
# xrandr --output ${intern} --mode 2048x1152 --primary --output ${extern} --off
# touch /tmp/display.toggle
#fi
# change default audio for outside monitors
#sudo -u ${user} pactl --server unix:/run/user/1000/pulse/native set-card-profile 0 output:hdmi-stereo-extra1
#sudo -u ${user} pactl --server unix:/run/user/1000/pulse/native set-card-profile 0 output:analog-stereo
#pactl list
@jinmiaoluo

jinmiaoluo commented Jun 5, 2020

Copy link
Copy Markdown
Author

我的 xrandr 脚本. 结合 i3wm 的: bindsym XF86Display exec --no-startup-id /usr/local/bin/xrandr.sh 配置. 从而实现视频按钮切换信号到外置屏幕

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment