Apakah ada cara untuk mematikan layar individual?

13

Saya menggunakan xset untuk mematikan layar saya seperti ini:

xset dpms force off

Apakah ada cara untuk mematikan satu layar ketika Anda memiliki lebih dari satu yang terkait dengan tampilan X yang sama?

Neil
sumber
@ myrdd: Bisakah Anda jelaskan apa yang ingin Anda lihat ditingkatkan secara khusus?
David Foerster
Saya ingin mengetahui detailnya: (a) Apakah fitur yang diinginkan secara teknis mungkin? —Yaitu, untuk "mematikan" layar individual (saya tidak bermaksud xrandr [...] --off) - (b) Apakah ada ketergantungan? —Ya, apakah chipset kartu grafis dan / atau driver perlu memiliki fitur tertentu? - (c) Mengingat fitur yang diinginkan belum tersedia (sebagai perintah CLI), apa langkah selanjutnya?
myrdd

Jawaban:

4

Jika Anda menggunakan stock Desktop Ubuntu Anda harus dapat menggunakan System> Preferences> Monitor. Ini akan menampilkan semua monitor Anda, klik yang Anda ingin nonaktifkan, dan kemudian gunakan tombol radio 'on / off' untuk menonaktifkan monitor tertentu.

Jika Anda ingin melakukan ini dari baris perintah, Anda harus dapat menggunakan xrandr --output <name> --offuntuk menonaktifkan output yang akan memicu monitor mati.

Andy
sumber
1
Masalahnya adalah ketika Anda menggunakan Nvidia TwinView, kedua layar muncul sebagai satu untuk xrandr dan xset, sehingga Anda tidak dapat mematikan monitor satu per satu. Juga, Preferensi Monitor Gnome dinonaktifkan dan Anda harus menggunakan kontrol driver Nvidia sebagai gantinya. Ketika Anda menonaktifkan salah satu monitor dengan pengaturan nvidia, itu sepenuhnya menonaktifkan monitor, mengganggu semua jendela Anda di layar lain. Saya hanya ingin mematikan satu monitor untuk menonton film di yang lain.
Neil
@Neil Mungkin bermanfaat untuk menambahkan informasi perangkat keras Anda ke pertanyaan dan menandainya dengan nvidia juga.
Jorge Castro
2
@JorgeCastro itu tidak terkait dengan perangkat keras dan TwinView: tampaknya tidak ada cara untuk mematikan layar satu per satu ketika itu pada $ DISPLAY yang sama, kecuali dari menghapus / menonaktifkannya dari konfigurasi RandR. Kami ingin mematikan misalnya layar laptop, tetapi simpan semua jendela di sana.
blueyed
@muru kamu adalah monyet penyunting! Saya terus melihat hasil edit Anda.
MathCubes
4

Masalah dengan jawaban yang ada

Meskipun ada jawaban tujuh tahun yang lalu dengan tiga suara terbanyak, itu tidak diterima karena menyebabkan semua jendela yang terbuka pada tampilan penutup dimigrasikan ke sisa tampilan aktif.

Kecerahan berbasis perangkat lunak

Pada laptop Anda dapat mengontrol kecerahan melalui kartu grafis yang mengontrol panel LCD. Dengan TV eksternal dan monitor, Anda memerlukan solusi perangkat lunak untuk mengubah kecerahan menjadi 0. Mengubahnya ke nol adalah yang paling dekat. Saya sampai pada ilusi mematikannya sambil menjaga jendela aktif pada layar eksternal itu.

Versi pendek

Dari baris perintah (tanpa skrip) gunakan:

$ 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

Ini menunjukkan kepada Anda daftar nama monitor yang ditetapkan oleh xrandr. Sekarang jika Anda ingin mengatur DP-1-1kecerahan mati digunakan:

xrandr --output DP-1-1 --brightness 0

Skrip bash Sony TV

Ini salah satu dari tiga skrip yang saya tulis:

#!/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"

Untuk mematikan tampilan yang akan Anda gunakan sony 0

Skrip panggilan tanpa parameter

Saat Anda memanggil skrip tanpa parameter, ia akan menampilkan xrandrnama layar bersama dengan kecerahan saat ini berwarna merah. Anda dapat mengubah warna merah ke warna lain dengan memodifikasi baris ini:

echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"

Setelah setafmengubah 1ke:

  • 2 untuk hijau
  • 3 untuk oranye
  • 4 untuk biru, dll.

Memodifikasi dan menginstal skrip

Ubah dua kejadian HDMI-0agar sesuai dengan nama layar Anda. Anda bisa mendapatkan daftar semua layar Anda mengetik xrandrdi terminal.

Tempatkan skrip di direktori di jalur Anda seperti:

/usr/local/bin/sony

Tandai skrip sebagai executable menggunakan:

sudo chmod a+x /usr/local/bin/sony

Memilih direktori mana: /usr/local/binvs.~/bin

Ketika Anda membuat skrip di dalam, /usr/local/binAnda harus menggunakan sudokekuatan. Alternatif yang lebih baik adalah dengan menggunakan direktori ~/binyang merupakan singkatan untuk /home/YourUserID/bin:

  • buat direktori ~/bin
  • tutup terminal Anda dan buka kembali.
  • direktori yang baru dibuat sekarang di jalur Anda.
  • semua skrip yang Anda buat ~/bindapat dibuat dengan izin reguler Anda.
  • untuk mengaktifkan eksekusi skrip Anda, Anda hanya perlu menggunakan chmod +xalih-alih chmod a+x( aartinya semua pengguna)
WinEunuuchs2Unix
sumber
2
Terima kasih atas jawaban Anda. Saya tidak tahu xrandr [...] --brightnesspilihannya. Perhatikan bahwa Anda telah berbicara tentang tampilan Sony secara khusus, tetapi juga --brightnessdapat digunakan untuk tampilan lainnya. Saya sudah menguji --brightnessdi laptop saya, dan ternyata berhasil. Namun, --brightness 0tidak mematikan lampu latar ... —Aku juga telah menguji --brightnesspada komputer desktop saya: sayangnya, layar tetap hitam hanya untuk 1 atau 2 detik . Setelah 1-2 detik, kecerahan diatur ulang secara otomatis. Saya kira apakah itu berfungsi sangat tergantung pada gpu + driver + kombinasi layar.
myrdd
1
@ myrdd Saya sebenarnya memiliki tiga skrip sony , toshiba dan alien untuk dua layar eksternal dan layar laptop bawaan . Ya lampu latar tidak mati sehingga Anda tidak mendapatkan "hitam murni" tetapi ini adalah solusi yang bagus. Reset otomatis 1 hingga 2 detik tidak mempengaruhi tampilan saya, tetapi saya menjalankan driver nVidia untuk port HDMI nVidia dan driver nVidia yang mengendalikan dua layar Intel HD530 iGPU - Thunderbolt3 dan built-in.
WinEunuuchs2Unix
tidak diperlukan skrip, jalankan xrandr untuk menemukan keluaran id dan kemudian xrandr --output HDMI-1 --brightness 0, sederhanakan jawabannya
brauliobo
2
@ Brauliobo Daripada menghapus sebagian besar jawaban saya meletakkan versi pendek di bagian paling atas yang saya pikir adalah kompromi.
WinEunuuchs2Unix