Podczas gdy dwa lub więcej monitorów pracuje razem, czy jest jakiś sposób na przełączenie jednego z nich w tryb gotowości / zawieszenie poprzez wydanie polecenia takiego jak xset dpms force suspend
:? lub mając ustawiony w tym celu czas, np .: xset dpms 100 0 0
który działa osobno na tych monitorach?
Mam dwa monitor współpracujące ze sobą, eDP1 (mój laptop) i VGA1 (monitor zewnętrzny).
Chcę, aby każdy z nich przeszedł osobno w tryb zawieszenia / gotowości, jeśli nie mam z nimi bezpośredniej interakcji, przypuszczam, że oglądam film na VGA1 i przez półtorej godziny eDP1 nic nie robi.
Nie jestem zainteresowany używaniem, xrandor --off --output eDP1
ponieważ nie jest wystarczająco szybki do pracy.
Chcę, aby mój monitor był gotowy do pracy za pomocą prostego ruchu myszy, aby móc szybko przełączać się między nimi.
- Uruchamianie: Ubuntu 18.04
- Menedżer okien: OpenBox
Odpowiedzi:
Sterowanie poszczególnymi monitorami nie jest możliwe w Xset (a właściwie X11)
Jak sugeruje tytuł, nie jest to możliwe ze względu na sposób
xset
budowania i ze względu na używane funkcje X11. Jeśli spojrzymy na kod źródłowy,xset
wywołaniaDPMSForceLevel(dpy,DPMSModeSuspend)
( wiersz 557 ), a zmienna wyświetlanadpy
pochodzi zXOpenDisplay()
funkcji ( wiersz 203 ), a to z definicji :Innymi słowy,
xset
stosuje ustawienia globalnie do całego wyświetlacza, a nie poszczególnych ekranów.xset
Aby to działało, konieczna będzie zmiana kodu źródłowego. Wydaje się, że same rozszerzenia DPMS wywołują tylko cały ekran, a nie pojedyncze ekrany, więc nie można nawet napisać niestandardowego kodu za pomocą biblioteki X11./sys
Wydaje się, że ręczne kontrolowanie tego ustawienia za pośrednictwem podsystemu również nie działaEkrany są również usuwane z trybu DPMS, gdy wystąpią zdarzenia związane z klawiszem lub myszą, więc biorąc pod uwagę, że możesz chcieć poruszyć myszą lub użyć klawiatury, którekolwiek z tych działań spowoduje, że monitor opuści tryb DPMS.
Alternatywne obejścia
Najlepszą alternatywą (i faktycznie działającym fizycznie rozwiązaniem) jest
xrandr
- można jej użyć do kontroli poszczególnych „wyjść”. W szczególności,wyłączy to wyjście. Tak, wspomniałeś, że nie chcesz korzystać z tego rozwiązania, ponieważ nie jest ono wystarczająco szybkie, jednak jak dotąd jest ono najlepsze z dostępnych. Ma kilka zalet:
xset
xrandr --output VGA-1 --brightness 0.1
Będzie pokolorować ekran w taki sposób, że wydaje się, chociaż--brightness
jest oprogramowaniem, więc wyświetlacz nie jest faktycznie wygaszone na poziomie sprzętowym, ani nie jest ona wyłączona na poziomie sprzętowym. Wykonuje jednak funkcję wygaszania ekranu i jest również odporny na zdarzenia klawiszy / myszy.Szukałem kodu źródłowego wygaszaczy ekranu Mate i Budgie, które są rozwidleniami wygaszacza ekranu GNOME, jednak w obu przypadkach wydają się być rozwiązaniem programowym, ponieważ w kodzie źródłowym nie ma wzmianki o DPMS.
źródło
xrandr --off
na raziexrandr -off
ogóle wyłączy monitor. Może być taki sam, jakbrightness
ustawiony na zero? Co jest kolejnym problemem Mam program działający 24/7, który indywidualnie ustawia jasność i gamma dla 3 monitorów, czego nawet Windows nie jest w stanie zrobić. Nie jestem pewien, czy robi to lampka nocna, czerwona zmiana lub strumień. W każdym razie te programy mogą zostać pomieszane przez xrandr off. Przepraszamy za przejęcie Twojej odpowiedzi spekulacją :)Przez lata miałem taką konfigurację laptopa, że kiedy pokrywa jest zamknięta, laptop zawiesza się, a monitory zewnętrzne gasną.
Z powodu chęci oglądania filmu przez 90 minut na monitorze zewnętrznym i zgaszania ekranu laptopa zmieniłem opcję zamykania pokrywy na „Nie rób nic”:
Nie używam DPMS do monitorów zewnętrznych, ale możesz sprawdzić swoje ustawienia za pomocą
xset q
polecenia:Zwróć uwagę na te linie:
prefer blanking: no
Zwróć także uwagę na następujące linie:
DPMS is enabled
ustawić monitor w razieStandby
potrzeby.Mam nadzieję, że inni użytkownicy skorzystali z tych opcji i opublikują szczegółową odpowiedź.
źródło
A może po prostu zamknąć laptopa?
Dlaczego?
Te dwa monitory to jeden obszar wyświetlania, więc wyłączenie jednego spowoduje szereg problemów, takich jak przerysowanie ekranu, przenoszenie aplikacji na główny monitor, ...
(Poszedłem tą drogą kilka lat temu i jedynym niezawodnym sposobem na zrobienie tego, co chcesz zrobić, jest naciśnięcie przycisku na zewnętrznym monitorze lub zamknięcie laptopa)
Upewnij się tylko, że ustawiłeś te ustawienia zasilania za pomocą
gsettings set
:źródło
Tymczasowy komentarz
xrandr
. Przy dłuższym teście wypadło to dość źle. Nie tyle wyłączenie nie powiodło się, ale przy ponownej aktywacji ekranu układ ekranu został całkowicie pomieszany. Z przyjemnością opublikuję go, aby sprawdzić, czy to działa w twoim przypadku, ale nie radzę go używać.W skrypcie wróciłem do ustawienia jasności na zero.
Co zatem zmieniłem w tej wersji?
Czas bezczynności jest teraz domyślnie definiowany przez aktywność klawiatury i myszy. Obudzenie jest również wykonywane przez jedno z nich.
Automatycznie przyciemnij nieaktywny ekran
Jak powiedzieli moi współpracownicy, oddzielne wyłączanie ekranów z cli jest w najlepszym razie wyzwaniem i nie znalazłem też opcji.
Znalazłem sposób na automatyczne przyciemnienie wszystkich ekranów, z wyjątkiem tego, w którym znajduje się mysz, po czasie x.
No to ruszamy
Jak skonfigurować
Konfiguracja jest prosta:
Upewnij się, że masz oba
python3-gi
ixprintidle
zainstalowaneSkopiuj powyższy skrypt do pustego pliku, zapisz go jako
dim_inactive
i wykonaj goUruchom go za pomocą polecenia:
przykład:
przyciemni wszystkie ekrany, na których nie ma myszy po dwóch minutach
Dodatkowe informacje / objaśnienia
źródło
xrandr --off
sądzę.xrandr --off
wolałbym w tym przypadku. Zwłaszcza, że podświetlenie VGA nie może być sterowane programowo.1
w żadnym wypadku nie przywraca jasności . Kiedy wchodzę w interakcję z zewnętrznym wyświetlaczem za pomocą klawiatury i gdy mysz znajduje się na głównym ekranie, zewnętrzny staje się czarny po bezczynności. Kiedy nie mam interakcji z głównym wyświetlaczem, ale mysz tam jest, nic tam nie robi, a kiedy przesuwam mysz na inny główny ekran, nagle robi się czarny.