blob: 4f4403e9f24525797a9233b3ed8b56becfa01129 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
#!/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
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_dp2=$(xrandr | grep '^DP2 connected')
has_dp2_2=$(xrandr | grep '^DP2-2 connected')
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
elif [[ $has_hdmi2 && $has_dp1_2 ]]; then
xrandr --output DP1-2 --right-of eDP1 --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 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 DP1 --right-of DP2-2 --auto
xrandr --output DP2-2 --primary
output_left=DP2-2
output_right=DP1
else
if [[ $has_hdmi2 ]]; then
xrandr --output HDMI2 --right-of eDP1 --auto
fi
if [[ $has_dp1 ]]; then
xrandr --output DP1 --right-of eDP1 --auto
fi
if [[ $has_dp2 ]]; then
xrandr --output DP2 --right-of eDP1 --auto
fi
xrandr --output eDP1 --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)
for workspace in "${workspaces_left[@]}"; do
i3-msg "[workspace=\"$workspace\"]" move workspace to output $output_left
done
for workspace in "${workspaces_right[@]}"; do
i3-msg "[workspace=\"$workspace\"]" move workspace to output $output_right
done
i3-msg "workspace 3"
i3-msg "workspace 1"
fi
|