summaryrefslogtreecommitdiffstats
path: root/connect-screen
diff options
context:
space:
mode:
Diffstat (limited to 'connect-screen')
-rwxr-xr-xconnect-screen149
1 files changed, 122 insertions, 27 deletions
diff --git a/connect-screen b/connect-screen
index 4f4403e..271a6ee 100755
--- a/connect-screen
+++ b/connect-screen
@@ -1,71 +1,164 @@
#!/bin/bash
-xrandr --output VIRTUAL1 --off
-xrandr --output HDMI2 --off
-xrandr --output DP1 --off
-xrandr --output DP2 --off
-xrandr --output DP1-1 --off
-xrandr --output DP1-2 --off
-xrandr --output DP2-1 --off
-xrandr --output DP2-2 --off
+disconnect-screen
xset r rate 250 50
has_hdmi2=$(xrandr | grep '^HDMI2 connected')
-has_dp1=$(xrandr | grep '^DP1 connected')
-has_dp1_1=$(xrandr | grep '^DP1-1 connected')
-has_dp1_2=$(xrandr | grep '^DP1-2 connected')
+has_dp1=$(xrandr | grep '^DP-1 connected')
+has_dp3=$(xrandr | grep '^DP-3 connected')
+has_dp4=$(xrandr | grep '^DP-4 connected')
+has_dp3_1=$(xrandr | grep '^DP3-1 connected')
+has_dp3_2=$(xrandr | grep '^DP3-2 connected')
+has_dp4_1=$(xrandr | grep '^DP4-1 connected')
+has_dp4_2=$(xrandr | grep '^DP4-2 connected')
+has_dp_4_1=$(xrandr | grep '^DP-4-1 connected')
+has_dp_4_8=$(xrandr | grep '^DP-4-8 connected')
+has_dp_4_2=$(xrandr | grep '^DP-4-2 connected')
+has_dp_4_2_1=$(xrandr | grep '^DP-4-2-1 connected')
+has_dp_4_3_1=$(xrandr | grep '^DP-4-3-1 connected')
+has_dp_3_2_1=$(xrandr | grep '^DP-3-2-1 connected')
+has_dp_3_3_1=$(xrandr | grep '^DP-3-3-1 connected')
has_dp2=$(xrandr | grep '^DP2 connected')
has_dp2_2=$(xrandr | grep '^DP2-2 connected')
+home_wifi=true
+
output_left=""
output_right=""
-if [[ $has_dp1_1 && $has_dp1_2 ]]; then
- xrandr --output DP1-2 --right-of eDP1 --mode 640x480 -r 60
- xrandr --output DP1-1 --right-of DP1-2 --mode 2560x1440 -r 60
- xrandr --output DP1-1 --primary
- output_left=DP1-2
- output_right=DP1-1
+if [[ $has_dp_4_2_1 && $has_dp_4_3_1 ]]; then
+ xrandr --output DP-4-3-1 --right-of eDP-1 --mode 2560x1440 -r 60
+
+ # XXX: first 60, then 144 hz since sometimes the screen doesn't detect the signal otherwise
+ xrandr --output DP-4-2-1 --right-of DP-4-3-1 --mode 2560x1440 -r 60
+ xrandr --output DP-4-2-1 --right-of DP-4-3-1 --mode 2560x1440 -r 144
+ #for i in {0..10}; do
+ #xrandr --output DP-4-1 --right-of DP-4-8 --mode 2560x1440 -r 144 && continue
+ #sleep 1
+ #done
+ xrandr --output DP-4-3-1 --primary
+ output_left=DP-4-3-1
+ output_right=DP-4-2-1
+elif [[ $has_dp_3_2_1 && $has_dp_3_3_1 ]]; then
+ xrandr --output DP-3-3-1 --right-of eDP-1 --mode 2560x1440 -r 60
+
+ # XXX: first 60, then 144 hz since sometimes the screen doesn't detect the signal otherwise
+ xrandr --output DP-3-2-1 --right-of DP-3-3-1 --mode 2560x1440 -r 60
+ xrandr --output DP-3-2-1 --right-of DP-3-3-1 --mode 2560x1440 -r 144
+ #for i in {0..10}; do
+ #xrandr --output DP-4-1 --right-of DP-4-8 --mode 2560x1440 -r 144 && continue
+ #sleep 1
+ #done
+ xrandr --output DP-3-3-1 --primary
+ output_left=DP-3-3-1
+ output_right=DP-3-2-1
+elif [[ $has_dp_4_1 && $has_dp_4_8 ]]; then
+ xrandr --output DP-4-8 --right-of eDP-1 --mode 2560x1440 -r 60
+
+ # XXX: first 60, then 144 hz since sometimes the screen doesn't detect the signal otherwise
+ xrandr --output DP-4-1 --right-of DP-4-8 --mode 2560x1440 -r 60
+ xrandr --output DP-4-1 --right-of DP-4-8 --mode 2560x1440 -r 144
+ #for i in {0..10}; do
+ #xrandr --output DP-4-1 --right-of DP-4-8 --mode 2560x1440 -r 144 && continue
+ #sleep 1
+ #done
+ xrandr --output DP-4-8 --primary
+ output_left=DP-4-8
+ output_right=DP-4-1
+elif [[ $has_dp4_1 && $has_dp4_2 ]]; then
+ xrandr --output DP4-2 --right-of eDP-1 --mode 1920x1200 -r 60
+ xrandr --output DP4-1 --right-of DP4-2 --mode 2560x1440 -r 60
+ xrandr --output DP4-1 --primary
+ output_left=DP4-2
+ output_right=DP4-1
+elif [[ $has_dp_4_1 && $has_dp_4_2 ]]; then
+ xrandr --output DP-4-1 --right-of eDP-1 --auto
+ xrandr --output DP-4-2 --right-of DP-4-1 --auto
+ if [[ "$home_wifi" = "true" ]]; then
+ xrandr --output DP-4-1 --primary
+ fi
+ output_left=DP-4-1
+ output_right=DP-4-2
+elif [[ $has_dp3_1 && $has_dp3_2 ]]; then
+ xrandr --output DP3-2 --right-of eDP-1 --mode 1920x1200 -r 60
+ xrandr --output DP3-1 --right-of DP3-2 --mode 2560x1440 -r 60
+ xrandr --output DP3-1 --primary
+ output_left=DP3-2
+ output_right=DP3-1
elif [[ $has_hdmi2 && $has_dp1_2 ]]; then
- xrandr --output DP1-2 --right-of eDP1 --auto
+ xrandr --output DP1-2 --right-of eDP-1 --auto
xrandr --output HDMI2 --right-of DP1-2 --auto
xrandr --output DP1-2 --primary
output_left=DP1-2
output_right=HDMI2
elif [[ $has_hdmi2 && $has_dp1 ]]; then
- xrandr --output DP1-1 --right-of eDP1 --auto
+ xrandr --output DP1-1 --right-of eDP-1 --auto
xrandr --output HDMI2 --right-of DP1 --auto
xrandr --output DP1 --primary
output_left=DP1-1
output_right=HDMI2
elif [[ $has_dp1 && $has_dp2_2 ]]; then
- xrandr --output DP2-2 --right-of eDP1 --auto
+ xrandr --output DP2-2 --right-of eDP-1 --auto
xrandr --output DP1 --right-of DP2-2 --auto
xrandr --output DP2-2 --primary
output_left=DP2-2
output_right=DP1
+elif [[ $has_dp3 && $has_dp4 ]]; then
+ xrandr --output DP3 --right-of eDP-1 --auto
+ xrandr --output DP4 --right-of DP3 --auto
+ xrandr --output DP3 --primary
+ output_left=DP3
+ output_right=DP4
+elif [[ $has_dp1 && $has_dp4 ]]; then
+ xrandr --output DP1 --right-of eDP-1 --auto
+ xrandr --output DP4 --right-of DP1 --auto
+ xrandr --output DP1 --primary
+ output_left=DP1
+ output_right=DP4
+elif [[ $has_dp1 && $has_dp4_2 ]]; then
+ xrandr --output DP4-2 --right-of eDP-1 --auto
+ xrandr --output DP1 --right-of DP4-2 --auto
+ xrandr --output DP4-2 --primary
+ output_left=DP4-2
+ output_right=DP1
+elif [[ $has_dp4 && $has_dp3_2 ]]; then
+ xrandr --output DP3-2 --right-of eDP-1 --auto
+ xrandr --output DP4 --right-of DP3-2 --auto
+ xrandr --output DP3-2 --primary
+ output_left=DP3-2
+ output_right=DP4
+elif [[ $has_dp3 && $has_dp4_2 ]]; then
+ xrandr --output DP4-2 --right-of eDP-1 --auto
+ xrandr --output DP3 --right-of DP4-2 --auto
+ xrandr --output DP4-2 --primary
+ output_left=DP4-2
+ output_right=DP3
else
if [[ $has_hdmi2 ]]; then
- xrandr --output HDMI2 --right-of eDP1 --auto
+ xrandr --output HDMI2 --right-of eDP-1 --auto
fi
if [[ $has_dp1 ]]; then
- xrandr --output DP1 --right-of eDP1 --auto
+ xrandr --output DP-1 --right-of eDP-1 --auto
fi
if [[ $has_dp2 ]]; then
- xrandr --output DP2 --right-of eDP1 --auto
+ xrandr --output DP2 --right-of eDP-1 --auto
fi
xrandr --output eDP1 --primary
+ xrandr --output eDP-1 --primary
fi
xkbcomp .xkbmap "$DISPLAY"
-# Reorganize workspaces across displays
-if [[ $output_left != "" ]] && [[ $output_right != "" ]]; then
- workspaces_left=(3 4)
- workspaces_right=(1 2 5 6 7 8 9 10 11 12 13 14 15)
+# Reorganize workspaces across displays if at home
+if [[ $output_left != "" ]] && [[ $output_right != "" ]] && [[ "$home_wifi" = "true" ]]; then
+ workspaces_left=(4)
+ workspaces_right=(1 2 5 6 7 8 9 10 11 12 13 15)
+ # these don't need any handling, just for completeness
+ workspaces_laptop=(3)
+
for workspace in "${workspaces_left[@]}"; do
i3-msg "[workspace=\"$workspace\"]" move workspace to output $output_left
done
@@ -77,3 +170,5 @@ if [[ $output_left != "" ]] && [[ $output_right != "" ]]; then
i3-msg "workspace 3"
i3-msg "workspace 1"
fi
+
+conky-update-interval