Pertanyaan Apakah ada cara untuk mematikan layar individu?


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?


10
2017-11-16 01:16


asal


@myrdd: Bisakah Anda jelaskan apa yang ingin Anda lihat ditingkatkan secara khusus? - David Foerster
Saya ingin tahu detailnya: (Sebuah) Apakah fitur yang diinginkan secara teknis mungkin? —Yaitu, untuk "mematikan" layar individu (saya lakukan tidak berarti xrandr [...] --off) - (b) Apakah ada dependensi? —Apakah itu, apakah chipset kartu grafis dan / atau driver perlu memiliki fitur tertentu? - (c)Mengingat fitur yang diinginkan belum tersedia (sebagai perintah CLI), apa yang akan menjadi langkah selanjutnya? - myrdd


Jawaban:


Jika Anda menggunakan Ubuntu Desktop, Anda harus dapat menggunakan System> Preferences> Monitors. Ini harus menunjukkan semua monitor Anda, klik pada salah satu yang ingin Anda nonaktifkan, dan kemudian gunakan tombol radio 'on / off' untuk menonaktifkan monitor tertentu.

Jika Anda ingin melakukan ini dari baris perintah, Anda harus dapat menggunakannya xrandr --output <name> --off untuk menonaktifkan output yang seharusnya memicu monitor untuk mematikan.


4
2017-11-18 10:01



Masalahnya adalah ketika Anda menggunakan Nvidia TwinView, kedua layar muncul sebagai salah satu dari xrandr dan xset, sehingga Anda tidak dapat mematikan monitor secara terpisah. Selain itu, Preferensi Monitor Gnome dinonaktifkan dan Anda harus menggunakan kontrol driver Nvidia. Ketika Anda menonaktifkan salah satu monitor dengan pengaturan nvidia, itu sepenuhnya menonaktifkan monitor, mengganggu semua jendela Anda di layar lainnya. Saya hanya ingin mematikan satu monitor untuk menonton film di sisi lain. - Neil
@Neil Mungkin berguna untuk menambahkan informasi perangkat keras Anda ke pertanyaan dan menandainya dengan nvidia juga. - Jorge Castro
@JorgeCastro tidak terkait dengan perangkat keras dan TwinView: tampaknya tidak ada cara untuk mematikan layar secara individual saat berada pada $ DISPLAY yang sama, kecuali menghapus / menonaktifkannya dari konfigurasi RandR. Kami ingin mematikan mis. layar laptop, tetapi simpan semua jendela di sana. - blueyed
@muru Anda adalah monyet penyuntingan! Saya terus melihat hasil edit Anda. - MathCubes


Masalah dengan jawaban yang ada

Meskipun ada jawaban tujuh tahun yang lalu dengan tiga up-vote, itu tidak diterima karena menyebabkan semua jendela yang terbuka pada layar mati untuk bermigrasi ke tampilan aktif yang tersisa.

Kecerahan berbasis perangkat lunak

Di 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 menjadi nol paling dekat Saya telah sampai pada ilusi untuk mematikannya sambil mempertahankan jendela aktif pada layar eksternal tersebut.

Skrip bash TV TV

Berikut 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

Memanggil skrip tanpa parameter

Ketika Anda memanggil skrip tanpa parameter, ia akan menampilkan xrandr nama layar bersama dengan kecerahan saat ini dalam warna 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 setaf mengubah 1 untuk:

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

Memodifikasi dan memasang skrip

Ubah dua kejadian HDMI-0untuk mencocokkan nama layar Anda. Anda bisa mendapatkan daftar semua layar Anda mengetik xrandrdi terminal.

Tempatkan skrip dalam direktori di jalur Anda seperti:

/usr/local/bin/sony

Tandai skrip sebagai dieksekusi menggunakan:

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

Memilih direktori mana:/usr/local/bin vs ~/bin

Saat Anda membuat skrip di /usr/local/bin Anda harus menggunakannya sudo kekuatan. Alternatif yang lebih baik adalah menggunakan direktori ~/bin yang merupakan singkatan untuk /home/YourUserID/bin:

  • buat direktori ~/bin
  • tutup terminal Anda dan buka kembali.
  • direktori yang baru dibuat sekarang ada di jalur Anda.
  • semua skrip yang Anda buat ~/bin dapat dibuat dengan izin biasa Anda.
  • untuk mengaktifkan eksekusi skrip Anda, Anda hanya perlu menggunakannya chmod +x daripada chmod a+x (itu a artinya semua pengguna)

2
2017-12-21 02:02



Terima kasih atas jawaban Anda. Saya tidak tahu itu xrandr [...] --brightness pilihan. Perhatikan bahwa Anda telah berbicara tentang Sony menampilkan khususnya, tetapi --brightness harus berfungsi untuk tampilan lainnya juga. Saya sudah diuji --brightness di laptop saya, dan itu berhasil. Namun, --brightness 0 tidak mematikan lampu latar ... —Aku juga sudah diuji --brightness di komputer desktop saya: sayangnya, layarnya tetap hitam hanya untuk 1 atau 2 detik. Setelah 1–2 detik, kecerahan diatur ulang secara otomatis. Saya kira apakah itu bekerja sangat tergantung pada kombinasi gpu + driver + screen. - myrdd
@myrdd Saya sebenarnya memiliki tiga skrip sony, toshiba dan asing untuk dua layar eksternal dan layar laptop built-in. Ya, lampu latar tidak mati sehingga Anda tidak mendapatkan "hitam murni" tetapi ini sangat dekat. Reset otomatis 1 hingga 2 detik tidak mempengaruhi tampilan saya tetapi saya menjalankan driver nVidia untuk port HDMI nVidia berkabel dan driver nVidia yang mengendalikan Intel HD530 iGPU dua layar - Thunderbolt3 dan built-in. - WinEunuuchs2Unix