Update toggle-displays

bb16bd26ceb3e9258940b8c8a34d2dafc5a875af
Alexis Sellier committed ago 1 parent e3474502
bin/toggle-displays +34 -14
1 -
#!/bin/sh
1 +
#!/usr/bin/env ruby
2 2
3 -
internal=eDP-1
4 -
external1=DP-1
5 -
external2=DP-2
6 -
output="$(xrandr)"
3 +
internal = "eDP1"
4 +
external = "DP1"
5 +
output = `xrandr`
7 6
8 -
if echo "$output" | grep -P "\b$external1 connected\b"; then
9 -
  xrandr --output "$internal" --off --output "$external1" --auto --primary
10 -
elif echo "$output" | grep -P "\b$external2 connected\b"; then
11 -
  xrandr --output "$internal" --off --output "$external2" --auto --primary
12 -
else
13 -
  xrandr --output "$external1" --off --output "$internal" --auto --primary
14 -
  xrandr --size 1920x1080
15 -
fi
7 +
internal_connected = /#{internal} connected\b/.match?(output)
8 +
external_connected = /#{external} connected\b/.match?(output)
16 9
17 -
feh --bg-fill ~/images/background
10 +
internal_active = /#{internal} connected .*?\d+x\d+\b/.match?(output)
11 +
external_active = /#{external} connected .*?\d+x\d+\b/.match?(output)
12 +
13 +
puts "#{internal} connected: #{internal_connected}"
14 +
puts "#{external} connected: #{external_connected}"
15 +
puts "#{internal} active: #{internal_active}"
16 +
puts "#{external} active: #{external_active}"
17 +
18 +
def xrandr(args)
19 +
  system "xrandr #{args}"
20 +
end
21 +
22 +
if external_active && !internal_active && internal_connected then
23 +
  # Switch External -> Internal
24 +
  xrandr "--output #{internal} --auto --primary --output #{external} --off "
25 +
elsif internal_active && !external_active && external_connected then
26 +
  # Switch Internal -> External
27 +
  xrandr "--output #{external} --auto --primary --output #{internal} --off"
28 +
elsif !internal_active && !external_active && external_connected && internal_connected  then
29 +
  # Switch None -> All
30 +
  xrandr "--output #{internal} --auto --output #{external} --auto --primary"
31 +
elsif internal_active && external_active then
32 +
  # Switch All -> External
33 +
  xrandr "--output #{internal} --off --output #{external} --auto --primary"
34 +
end
35 +
36 +
# Set background
37 +
system "set-background"