Nonaktifkan Tampilan Unplugged (xrandr)

17

Saya memiliki laptop dengan dua output video yang saya gunakan saat saya di rumah (HDMI1, VGA1). Untuk mengaktifkannya, saya melakukan ini:

xrandr --output HDMI1 --right-of LVDS1 --auto
xrandr --output LVDS1 --off
xrandr --output VGA1 --right-of HDMI1 --auto

Ketika saya ingin pergi bekerja, saya mengambil laptop saya tetapi pertama-tama jalankan yang berikut:

xrandr --output VGA1 --off
xrandr --output LVDS1 --left-of HDMI1 --auto
xrandr --output HDMI1 --off

Dan kemudian ini membuat tampilan laptop saya aktif seperti seharusnya.

Masalah yang saya temui adalah kadang-kadang saya tidak ingat untuk menonaktifkan dua layar sebelum membawa komputer saya untuk bekerja. Ketika saya tiba, saya mencoba berbagai kombinasi --outputdan --offtetapi saya tidak bisa mengaktifkan kembali layar saya.

Ini adalah output yang saya jalankan xrandrtanpa menampilkan apa pun:

Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1024x768       60.0··
   800x600        60.3     56.2··
   640x480        59.9··
VGA1 disconnected 1920x1080+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
HDMI1 disconnected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
DP1 disconnected (normal left inverted right x axis y axis)
  1920x1080 (0x4c)  148.5MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock   67.5KHz
        v: height 1080 start 1084 end 1089 total 1125           clock   60.0Hz

Hampir setiap perintah yang saya coba kembali:

xrandr: Configure crtc 2 failed
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  21 (RRSetCrtcConfig)
  Serial number of failed request:  40
  Current serial number in output stream:  40

Ini seperti kedua monitor tidak memberikan CRTC mereka dan karena perangkat keras saya hanya mendukung 2, terkunci sampai saya pasang monitor itu dan nonaktifkan.


sumber

Jawaban:

11

Anda dapat menempatkan semua konfigurasi Anda hanya dalam satu perintah, seperti:

xrandr --output VGA1 --off --output HDMI1 --off --output LVDS1 --left-of HDMI1 --auto

dan itu seharusnya bisa berfungsi, juga karena sulit untuk menulis (terlalu lama) Anda dapat membuat skrip yang menguji layar yang saat ini terpasang dan membuat pengaturan yang diinginkan. (Anda dapat menambahkan ke pintasan kunci)

if [ -z `xrandr --query | grep "HDMI1 connected"` ]
then
    xrandr --output DP2 --off --output DP1 --off --output HDMI2 --off \
        --output HDMI1 --off \
        --output LVDS1 --mode 1366x768 --pos 0x0 --rotate normal \
        --output VGA1 --off
else
    xrandr --output DP2 --off --output DP1 --off --output HDMI2 --off \
        --output HDMI1 --mode 1920x1080 --pos 0x0 --rotate normal --primary \
        --output LVDS1 --off --output VGA1 --off
fi

ini bukan skrip yang mewah tetapi mungkin cocok untuk Anda.

Agomezl
sumber
1

Tampaknya tidak ada peristiwa yang dihasilkan ketika layar dicabut sayangnya. memiliki jajak pendapat skrip xrandr cukup berat tetapi Anda bisa melihat ke / sys / class / drm / * / status dan polling file-file itu kemudian mengambil tindakan xrandr yang diperlukan ketika status berubah dari 'terhubung' ke sesuatu yang lain (atau hilang sama sekali).

Cwissy
sumber
1

Saya tahu ini adalah utas yang sangat lama, tetapi saya ingin berbagi bagaimana saya memecahkan masalah, menggunakan informasi Anda tentang menghidupkan dan mematikan monitor dan kemudian melepaskannya. Saya menggunakan program yang disebut autorandr dan pada dasarnya hanya mengatur tampilan saya dengan dua monitor, lalu autorandr --save docked. Lalu saya menggunakan itu xrandr --output VGA --off, lalu mencabut monitor saya, diikuti oleh autorandr --save mobile. Autorandr secara otomatis akan beralih di antara mode yang berbeda tergantung pada apa yang Anda pasang atau cabut. Semoga itu bisa membantu orang lain yang menemukan ini! Juga ini seperti jawaban pertama saya yang sebenarnya jadi beri tahu saya jika saya dapat mengubah apa pun agar lebih jelas.

ViperZer0
sumber