Workaround xrandr bug: "cannot find crtc for output" - efficient solution
xrandr will typically fail when switching outputs, if the maximum number is already enabled. This patch will cause xrandr to be called twice: - First invocation will only disable outputs, freeing up CRTCs - Second invocation will only enable outputs
This commit is contained in:
parent
3939171565
commit
83355f418b
23
autorandr
23
autorandr
|
@ -174,7 +174,28 @@ config_equal() {
|
|||
}
|
||||
|
||||
load_cfg_xrandr() {
|
||||
sed 's!^!--!' "$1" | xargs $XRANDR
|
||||
# sed 1: Prefix arguments with "--"
|
||||
# sed 2: Merge arguments into one line per output
|
||||
# sed 3: Merge into two lines, all --off outputs in the first one
|
||||
sed 's/^/--/' "$1" | sed -e '
|
||||
:START
|
||||
/\n--output/{P;D}
|
||||
s/\n/ /
|
||||
N;bSTART' | sed -e '
|
||||
### First line
|
||||
/ --off/{
|
||||
G
|
||||
# Merge if next line contains --off
|
||||
s/\n\([^\n]* --off\)/ \1/
|
||||
h
|
||||
$!d;b
|
||||
}
|
||||
### Last line
|
||||
H;x
|
||||
# Merge if previous line contains --mode
|
||||
s/\(--mode [^\n]*\)\n/\1 /
|
||||
h
|
||||
$!d' | xargs -L 1 $XRANDR
|
||||
}
|
||||
|
||||
load_cfg_disper() {
|
||||
|
|
Loading…
Reference in New Issue