Casto koukam na filmy z notebooku, ke kteremu mam pripojene dva 24″ FullHD monitory. Monitory mam tesne vedle sebe, aby mi tvorily sirokou plochu. Pokud na jednom pustim na fullscreen film, druhy stale zobrazuje plochu a sviti. To je obzvlast v noci protivne. Proto jsem si napsal skript na softwarove vypnuti druheho monitoru.
Vypinat monitor vypinacem je otravne a hlavne ja se k vypinaci nedostanu, musel bych monitor odtahnout.
Dlouho jsem hledal, jak softwarove monitor vypnout. Nejdrive jsem zkousel k tomu urcene DPMS (Display Power Management Signaling). Funguje to, ale vypnou se uplne vsechny monitory, coz je pro me neprijatelne. Zde je prikaz na vyzkouseni (po 5s obnovi nastaveni):
1 |
xset dpms force off ; sleep 5 ; xset dpms force on |
Nakonec jsem skoncil u xrandr a funguje to presne podle mych predstav.
Tohle je muj stav („zeleny“ monitor potrebuji vypinat):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
$ xrandr Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 32767 x 32767 LVDS1 connected (normal left inverted right x axis y axis) 1366x768 60.0 + 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 298mm 1920x1080 60.0*+ 1680x1050 60.0 1600x900 60.0 1280x1024 75.0 60.0 1280x800 59.8 1152x864 75.0 1280x720 60.0 1024x768 75.1 60.0 832x624 74.6 800x600 75.0 60.3 640x480 75.0 60.0 720x400 70.1 HDMI1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 531mm x 298mm 1920x1080 60.0*+ 50.0 59.9 1920x1080i 60.1 50.0 60.0 1680x1050 59.9 1600x900 60.0 1280x1024 75.0 60.0 1280x800 59.9 1152x864 75.0 1280x720 60.0 50.0 59.9 1440x576i 50.1 1024x768 75.1 60.0 1440x480i 60.1 60.1 832x624 74.6 800x600 75.0 60.3 720x576 50.0 720x480 60.0 59.9 640x480 75.0 60.0 59.9 720x400 70.1 DP1 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis) |
LVDS1 mam trvale vypnuty, protoze notebook umi soucasne pouze 3 displeje. Levy monitor (ten potrebuju vypinat) je pripojeny pres VGA1 a pravy (trvale zapnuty, primarni) pres HDMI1.
Reseni spociva v techto 2 prikazech:
1 2 |
xrandr --output HDMI1 --mode 1920x1080 --output VGA1 --off --output LVDS1 --off xrandr --output HDMI1 --mode 1920x1080 --right-of VGA1 --output VGA1 --mode 1920x1080 --output LVDS1 --off |
Prvni vypne VGA1 vystup a druhy ho opet zapne a provede napozicovani (levy/pravy) bez ktereho by to nefungovalo.
Aby bylo pouziti pohodlne, vytvoril jsem si ikonu v menu a na plose. Je potreba vytvorit dva soubory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<strong>$ cat /home/martin/.local/share/applications/monitory_filmy.desktop </strong>[Desktop Entry] Name=Monitory - filmy Exec=/home/martin/monitory_filmy.sh Terminal=true Type=Application Icon=/usr/share/icons/gnome/48x48/devices/display.png #Icon=display Categories=Settings;Utility; <strong>$ cat /home/martin/monitory_filmy.sh </strong>#!/bin/bash xrandr --output HDMI1 --mode 1920x1080 --output VGA1 --off --output LVDS1 --off read -p "Zmackni ENTER pro obnoveni monitoru..." xrandr --output HDMI1 --mode 1920x1080 --right-of VGA1 --output VGA1 --mode 1920x1080 --output LVDS1 --off |
Prvni soubor je ikona. Umisteni v ~/.local/share/applications/ nebo v /usr/share/applications/ zajisti automaticke pridani do menu programu. Prvni adresar je pro lokalniho uzivatele a nevyzaduje root prava.
Prikaz na radku Exec spusti uveden skript. Diky Terminal=true se prikaz otevre v terminalu.
Po pusteni ikony se otevre terminal, vypne levy monitor a ceka se na zmacknuti enteru. Mezi tim koukam na filmy. Pote zmacknu enter a monitory se zapnou.
Cele to ma malou nevyhodu, kterou se mi jeste nepovedlo opravit. Po obnoveni monitoru jsou rozhazene ikony. Staci vsak kliknout mysi na plochu a zmacnkout F5. Tim dojde k obnoveni ikon do puvodniho spravneho stavu.