Edycja mojej odpowiedzi, aby ułatwić konfigurację.
Zainstaluj autorandr, aby zautomatyzować układ ekranu w xrandr, pobierz najnowszy plik .deb z https://github.com/nalipaz/autorandr/releases i uruchom:
dpkg -i [file]
Skonfiguruj autorandr z zapisanymi układami ekranu
autorandr --save [docked|mobile|home|etc]
Na przykład na moim laptopie bez podłączonych monitorów konfiguruję i konfiguruję tak, jak chcę, a następnie uruchamiam:
autorandr --save mobile
Następnie podłączyłem mój hdmi i ponownie skonfigurowałem arandr, a następnie uruchomiłem:
autorandr --save docked
Po skonfigurowaniu każdego z układów możesz uruchomić (zamień „mobile” na poprzednią ulubioną nazwę, użyłem mobile):
autorandr --default mobile
Teraz, gdy autorandr jest już skonfigurowany, możesz zautomatyzować proces, instalując pakiet, który będzie sprawdzał podłączone wyświetlacze i uruchamiał się autorandr --change
po wykryciu. Tak, wiem o udev i możesz to ustawić, jeśli działa dla ciebie, ale w moich testach udev nie działał konsekwentnie dla mojego hdmi. Działa tylko 1 na każde 20 wtyczek / odłączników i czasami po prostu całkowicie przestaje działać.
Pobierz najnowszą wersję .deb tutaj: https://github.com/nalipaz/poll-xrandr/releases/, a następnie zainstaluj za pomocą
dpkg -i [file]
Najprawdopodobniej konieczne jest uruchomienie większej liczby zadań po zakończeniu autorandr --change
, autorandr umożliwia wstawienie tych poleceń do pliku o nazwie ~ / .autorandr / postswitch. Wykonaj następujące czynności:
cd ~/.autorandr/ && touch postswitch && chmod +x postswitch
Teraz edytuj plik postswitch, aby uzyskać coś podobnego do następującego:
#!/bin/bash
if pidof conky > /dev/null 2>&1; then
killall conky
fi
(sleep 2s && xrandr-adjust-brightness restore -q) &
(sleep 2s && nitrogen --restore) &
(sleep 3s && conky -q) &
Ponadto prawdopodobnie będziesz chciał dodać autorandr i poll-xrandr do swoich startupów, coś w rodzaju dwóch następujących poleceń:
autorandr --change &
poll-xrandr &
Odłącz lub podłącz monitor i obserwuj magię!
udevadm monitor --property
z terminala i podłączyć monitor. Z moją kartą widzę zdarzenie, gdy jest ono podłączone. Możesz użyć reguły + RUN w udev i trochę skryptów bash, aby uzyskać to, czego chcesz. Nie jestem jednak pewien, w jaki sposób można to zaimplementować dla poszczególnych użytkowników za pomocą udev.