Cách viết tập lệnh bash để định cấu hình màn hình của tôi khi HDMI được cắm hoặc rút phích cắm


8

Tôi có một máy tính xách tay chạy Kubfox Precise (12.04) mà tôi thỉnh thoảng sử dụng để xem video. Khi tôi làm, tôi cắm cáp HDMI được kết nối với đầu thu A / V với màn hình HDMI được gắn vào nó.

Khi tôi xem video theo cách này, tôi vẫn cần sử dụng màn hình máy tính xách tay khi tôi tương tác với hệ thống để điều khiển phát lại, v.v. Văn bản trên màn hình HDMI khó đọc từ nơi tôi ngồi.

Khi tôi cắm cáp HDMI, Kubfox phát hiện ra nó, nhưng tôi phải trải qua một chuỗi vũ đạo kỳ lạ (hoạt động, nhưng bị chập chững) để thiết lập chính xác mỗi lần cho cả video và âm thanh. Để khắc phục điều này, tôi đang cố gắng viết một tập lệnh bash xrandrđể thực hiện nó ngay lần đầu tiên.

Tôi đã có ý tưởng cơ bản từ câu trả lời của Peoro cho câu hỏi và trả lời U & L này có tiêu đề: Một công cụ để tự động áp dụng cấu hình RandR khi màn hình ngoài được cắm vào .

Về kịch bản của tôi

Kịch bản của tôi (bao gồm bên dưới) hoạt động, nhưng cần cải thiện.

Nó đặt chế độ video chính xác cho màn hình HDMI, nhưng màn hình LVDS1 (trên máy tính xách tay) thay đổi để chỉ hiển thị phần trên bên trái của máy tính để bàn - đây là một vấn đề vì nó cắt các thanh cuộn cửa sổ bên phải và thanh tác vụ trên phía dưới

Tôi đã cố gắng khắc phục điều này với --scale, nhưng lần thử đầu tiên của tôi đã làm mọi thứ rối tung đến mức tôi phải khởi động lại để hiển thị lại hoạt động.

Có cách nào để làm cho cả hai màn hình hiển thị cùng một nội dung, nhưng với mỗi màn hình sử dụng độ phân giải ưa thích riêng của nó?

Hoặc, ít nhất, một cách để đặt màn hình máy tính xách tay sao cho toàn bộ máy tính để bàn vẫn có thể truy cập được khi màn hình HDMI được sử dụng?

Vì tôi đang gỡ lỗi tập lệnh, nên nó chưa được dọn sạch. Tôi có thể muốn làm cho nó làm nhiều hơn sau này.

Kịch bản của tôi

#!/bin/bash
## hdmi_set
## Copyleft 11/13/2013 JPmicrosystems
## Adapted from
## /unix/4489/a-tool-for-automatically-applying-randr-configuration-when-external-display-is-p
## Answer by peoro

# setting up new mode for my VGA
##xrandr --newmode "1920x1080" 148.5 1920 2008 2052 2200 1080 1089 1095 1125 +hsync +vsync
##xrandr --addmode VGA1 1920x1080

##source $HOME/bin/bash_trace
# default monitor is LVDS1
MONITOR=LVDS1

# functions to switch from LVDS1 to HDMI and vice versa
function ActivateHDMI {
    echo "Switching to HDMI"
    ##xrandr --output HDMI1 --mode 1920x1080 --dpi 160 --output LVDS1 --off
    ##xrandr --output HDMI1 --same-as LVDS1
    xrandr --output HDMI1 --mode 1920x1080
    xrandr --output LVDS1 --mode 1366x768
    MONITOR=HDMI1
}
function DeactivateHDMI {
    echo "Switching to LVDS1"
    xrandr --output HDMI1 --off --output LVDS1 --auto
    MONITOR=LVDS1
}

# functions to check if VGA is connected and in use
function HDMIActive {
    [ $MONITOR = "HDMI1" ]
}
function HDMIConnected {
    ! xrandr | grep "^HDMI1" | grep disconnected
}

## MONITOR doesn't do anything because it's not preserved between script executions
# actual script
##while true
##do
    if HDMIConnected
    then
        ActivateHDMI
    fi

    if ! HDMIConnected
    then
        DeactivateHDMI
    fi

    ##sleep 1s
##done

Đầu ra từ xrandr

Đây là những gì xrandr thấy:

bigbird@ramdass:~$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected (normal left inverted right x axis y axis)
   1920x1080      60.0 +
   1680x1050      60.0  
   1280x1024      60.0  
   1440x900       59.9  
   1280x720       60.0  
   1024x768       60.0  
   800x600        60.3  
   720x480        59.9  
   640x480        60.0  
   720x400        70.1  
DP1 disconnected (normal left inverted right x axis y axis)

Câu trả lời:


3

Bạn có lẽ chỉ nên sử dụng kscreen thay vào đó, nó sẽ giải quyết tất cả các vấn đề của bạn. Nó sẽ ghi nhớ các cài đặt của màn hình được kết nối trước đó và sẽ khôi phục chúng, sau khi bạn kết nối lại.

Nếu bạn vẫn gặp vấn đề như vậy trong khi vẫn sử dụng màn hình, nó đáng để báo cáo lỗi .

Vì Kubfox 12.04 khá cũ, có lẽ bạn nên xem cái này .


Không hiểu! Ppa đó đã giúp tôi cập nhật 347! Tôi không biết tại sao tôi không cài đặt nó trước đây. Và, đó là trước khi cài đặt kscreen. Bây giờ nếu nó cũng chỉ chuyển đổi âm thanh (phonon) sang và từ HDMI ... Tôi sẽ quay lại đây sau khi nâng cấp xong và tôi có thể kiểm tra màn hình.
Joe

Chuyển đổi âm thanh động hoạt động khá tốt nếu bạn định cấu hình mức độ ưu tiên của thiết bị trong cấu hình Phonon.
Elias Probst 26/11/13

kscreen hoàn toàn đá! Cảm ơn bạn. Bây giờ tôi chỉ cần làm quen hoặc sửa chữa mọi thứ khác mà ppa đã cập nhật. Tôi đã đi vào Cài đặt hệ thống-> Đa phương tiện-> Cài đặt âm thanh và video và di chuyển Âm thanh nổi kỹ thuật số tích hợp (HDMI) phía trên Âm thanh nổi tương tự âm thanh tích hợp, nhưng không xảy ra chuyển đổi âm thanh khi tôi cắm / rút cáp HDMI. Tôi còn thiếu gì nữa?
Joe

Ứng dụng nào bị ảnh hưởng / không chuyển đổi đầu ra?
Elias Probst 26/11/13

Tôi vừa nâng cấp từ kubfox 12.04 lên 14.04.1. Tôi đã chờ đợi để bình luận vì tôi hy vọng điều đó sẽ giúp ích, nhưng không có gì thay đổi. Tôi vẫn phải chuyển đổi âm thanh bằng tay. Tôi nghĩ rằng tôi sẽ mở một câu hỏi mới trên SE Hỏi Ubuntu. Tôi không nghĩ bất kỳ công tắc âm thanh. Tôi mới thử vlc, dragonplayer và amarok.
Joe
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.