Problem z istniejącą odpowiedzią
Chociaż siedem lat temu istniała odpowiedź z trzema głosami większymi, nie została zaakceptowana, ponieważ powoduje migrację wszystkich otwartych okien na ekranie wyłączania do pozostałych aktywnych wyświetlaczy.
Jasność oparta na oprogramowaniu
Na laptopie możesz kontrolować jasność za pomocą karty graficznej sterującej panelem LCD. W przypadku zewnętrznych telewizorów i monitorów potrzebujesz rozwiązania programowego, aby zmniejszyć jasność do 0. Skręcenie do zera jest najbliższe Doszedłem do złudzenia, że go wyłączę, zachowując aktywne okna na tym zewnętrznym wyświetlaczu.
Krótka wersja
Z wiersza poleceń (bez skryptów) użyj:
$ xrandr | grep " connected"
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1107mm x 623mm
eDP-1-1 connected primary 1920x1080+3840+2160 (normal left inverted right x axis y axis) 382mm x 215mm
DP-1-1 connected 3840x2160+1920+0 (normal left inverted right x axis y axis) 1600mm x 900mm
Pokazuje listę nazw monitorów przypisanych przez xrandr. Teraz, jeśli chcesz DP-1-1wyłączyć jasność, użyj:
xrandr --output DP-1-1 --brightness 0
Skrypt bash Sony TV
Oto jeden z trzech skryptów, które napisałem:
#!/bin/bash
# NAME: sony
# PATH: /mnt/e/bin
# DESC: Set brightness of Sony TV
# DATE: Dec 9, 2017.
if [[ $# -ne 1 ]]; then
xrandr --verbose | grep -A5 "^HDMI-0" > /tmp/sony
head -n1 /tmp/sony
echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"
rm /tmp/sony
echo 'One argument required for brightness level, e.g. "sony .63"'
echo 'will set brightness level of Sony TV to level .63 using xrandr'
exit 1
fi
xrandr --output HDMI-0 --brightness "$1"
Aby wyłączyć ekran, którego byś użył sony 0
Wywoływanie skryptu bez parametrów
Po wywołaniu skryptu bez parametrów wyświetla on xrandrnazwę ekranową wraz z bieżącą jasnością na czerwono. Możesz zmienić kolor czerwony na inny, modyfikując tę linię:
echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"
Po setafzmianie na 1:
2 na zielono
3 dla pomarańczy
4 dla niebieskiego itp.
Modyfikacja i instalacja skryptu
Zmień dwa wystąpienia w HDMI-0celu dopasowania nazwy użytkownika. Możesz uzyskać listę wszystkich ekranów wpisujących się xrandrw terminalu.
Umieść skrypt w katalogu na swojej ścieżce, takim jak:
/usr/local/bin/sony
Oznacz skrypt jako wykonywalny, używając:
sudo chmod a+x /usr/local/bin/sony
Wybór katalogu: /usr/local/binvs~/bin
Podczas tworzenia skryptów /usr/local/binmusisz używać sudomocy. Lepszą alternatywą jest użycie katalogu, ~/binktóry jest skrótem dla /home/YourUserID/bin:
- utwórz katalog
~/bin
- zamknij terminal i otwórz go ponownie.
- nowo utworzony katalog jest teraz na twojej ścieżce.
- wszystkie skrypty, które utworzysz,
~/binmogą zostać utworzone na podstawie zwykłych uprawnień.
- aby umożliwić wykonywanie skryptów, wystarczy użyć (
chmod +xzamiast tego chmod a+x( awszyscy użytkownicy)