Domanda udev + xrandr per impostare la gamma del display quando si collega brevemente uno schermo, ma viene sovrascritto


Sto usando uno script come questo per impostare i valori gamma dello schermo del mio portatile e del monitor esterno:

#!/bin/bash

export DISPLAY=:0
export XAUTHORITY=/home/peat/.Xauthority

xrandr --output LVDS1 --gamma 0.7:0.7:0.4
xrandr --output DP1--gamma 0.8:0.8:0.8  

Eseguirlo all'avvio o manualmente dal terminale funziona perfettamente. Tuttavia, quando si rimuove o inserisce un display, la gamma viene ripristinata per tutte le schermate. Provo a risolverlo creando questa regola di udev in /etc/udev/rules.d/999_setMonitorGamma.rules:

SUBSYSTEM=="drm", ACTION=="change", RUN+="/home/peat/scripts/setMonitorGamma.sh"

A che punto funziona quasi. Posso vedere lo schermo lampeggiare con la gamma corretta per un breve istante, quindi la gamma errata viene nuovamente applicata. Sembra che dopo l'elaborazione delle regole udev venga eseguita una sorta di autodeterminazione, che ripristina le impostazioni di visualizzazione. Come posso aggirare questo?

Esecuzione di Linux Mint 16, basato su Ubuntu 13.10


1
2018-01-14 04:46


origine


Aggiornamento: ho provato a fare un altro script eseguendo lo script con i comandi xrandr in background (mettendo una e commerciale e alla fine, e anche provato a usare nohup), ma non riesco a farlo funzionare correttamente. Anche se aggiungo un po 'di sonno davanti ai bit xrandr, aspetterà fino a quando il sonno non sarà finito ei comandi xrandr funzioneranno finché non tenterà di configurare automaticamente la nuova configurazione dello schermo. - peat


risposte: