aboutsummaryrefslogtreecommitdiff
path: root/home/bin/setup
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