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-1
wyłą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 xrandr
nazwę 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 setaf
zmianie na 1
:
2
na zielono
3
dla pomarańczy
4
dla niebieskiego itp.
Modyfikacja i instalacja skryptu
Zmień dwa wystąpienia w HDMI-0
celu dopasowania nazwy użytkownika. Możesz uzyskać listę wszystkich ekranów wpisujących się xrandr
w 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/bin
vs~/bin
Podczas tworzenia skryptów /usr/local/bin
musisz używać sudo
mocy. Lepszą alternatywą jest użycie katalogu, ~/bin
któ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,
~/bin
mogą zostać utworzone na podstawie zwykłych uprawnień.
- aby umożliwić wykonywanie skryptów, wystarczy użyć (
chmod +x
zamiast tego chmod a+x
( a
wszyscy użytkownicy)