blob: eafa4648010b4a878c4fb07c0cae5357f1efee06 (
plain) (
blame)
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
|
#!/bin/bash
internal=eDP-1
mapfile -t externals < <(xrandr \
| grep -w connected \
| grep -v "$internal" \
| cut -d ' ' -f 1)
move_workspaces() {
local primary
primary=$(i3-msg -t get_outputs | jq '.[]|select(.primary==true)|.name')
for workspace_number in $(i3-msg -t get_workspaces | jq .[].num); do
i3-msg \
workspace number "$workspace_number", \
move workspace to output "$primary"
done
}
case "$1" in
single)
xrandr --output "$internal" --auto --primary
for external in "${externals[@]}"; do
xrandr --output "$external" --off
done
;;
double)
xrandr \
--output "$internal" --auto \
--output "${externals[0]}" --auto --primary --above "$internal"
;;
triple)
xrandr \
--output "$internal" --auto \
--output "${externals[0]}" --auto --primary --above "$internal" \
--output "${externals[1]}" --auto --right-of "${externals[0]}" \
--rotate left
;;
mirror)
xrandr \
--output "$internal" --auto --primary \
--output "${externals[0]}" --auto --scale-from 1920x1080
;;
*)
echo "Usage: $0 (single|double|triple|mirror)" 1>&2
exit 1
;;
esac
xmodmap ~/.Xmodmap
move_workspaces
feh --bg-scale ~/.background.png
exit 0
|