Tắt hiển thị Unplugged (xrandr)


17

Tôi có một máy tính xách tay với hai đầu ra video mà tôi sử dụng khi tôi ở nhà (HDMI1, VGA1). Để kích hoạt chúng, tôi làm điều này:

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

Khi tôi muốn đi làm, tôi lấy laptop của mình nhưng trước tiên hãy chạy như sau:

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

Và sau đó điều này làm cho màn hình máy tính xách tay của tôi hoạt động giống như nó nên.

Vấn đề tôi gặp phải là đôi khi tôi không nhớ tắt hai màn hình trước khi mang máy tính đi làm. Khi tôi đến, tôi thử nhiều kết hợp khác nhau --output--offnhưng tôi không thể bật lại màn hình.

Đây là đầu ra tôi đang chạy xrandrmà không hiển thị gì:

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

Hầu như mọi lệnh tôi đã thử trả về:

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

Giống như hai màn hình không từ bỏ CRTC của chúng và vì phần cứng của tôi chỉ hỗ trợ 2, nên nó bị khóa cho đến khi tôi cắm các màn hình đó vào và vô hiệu hóa chúng.

Câu trả lời:


11

Bạn có thể đặt tất cả cấu hình của mình chỉ bằng một lệnh, như:

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

và điều đó sẽ làm cho công việc trở nên khó khăn, vì bạn có thể tạo một tập lệnh kiểm tra các màn hình hiện được đính kèm và thực hiện thiết lập mong muốn. (bạn có thể thêm vào một phím tắt)

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

nó không phải là một kịch bản ưa thích nhưng có thể làm việc cho bạn.


1

Có vẻ như không có sự kiện nào được tạo ra khi không may cắm màn hình. có một cuộc thăm dò kịch bản xrandr khá nặng nhưng bạn có thể xem xét / sys / class / drm / * / status và thăm dò các tệp đó sau đó thực hiện hành động xrandr cần thiết khi trạng thái thay đổi từ 'được kết nối' sang một thứ khác (hoặc biến mất hoàn toàn).


1

Tôi biết đây là một chủ đề siêu cũ nhưng tôi muốn chia sẻ cách tôi giải quyết vấn đề, sử dụng thông tin của bạn về bật và tắt màn hình và sau đó ngắt kết nối chúng. Tôi đã sử dụng một chương trình gọi là autorandr và về cơ bản chỉ cần thiết lập màn hình của tôi với hai màn hình autorandr --save docked. Sau đó, tôi sử dụng nó xrandr --output VGA --off, sau đó rút phích cắm màn hình của tôi, theo sau autorandr --save mobile. Autorandr tự động sẽ chuyển đổi giữa các chế độ khác nhau tùy thuộc vào những gì bạn đã cắm hoặc rút phích cắm. Hy vọng rằng sẽ giúp bất cứ ai khác vấp phải điều này! Ngoài ra đây giống như câu trả lời thực sự đầu tiên của tôi vì vậy hãy cho tôi biết nếu tôi có thể thay đổi bất cứ điều gì để rõ ràng hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.