HDMIが接続されている、または接続されていないときにディスプレイを構成するbashスクリプトを作成する方法


8

Kubuntu Precise(12.04)を実行しているノートブックを持っています。このノートブックを時々ビデオを見るために使用しています。その際、HDMIモニターが接続されたA / Vレシーバーに接続されたHDMIケーブルを差し込みます。

この方法でビデオを見る場合でも、システムを操作して再生を制御するときなどは、ノートブックのディスプレイを使用する必要があります。HDMIモニターのテキストは、座っているところから読むのが難しいです。

HDMIケーブルを差し込むと、Kubuntuがそれを検出しますが、奇妙なダンスシーケンス(機能しますが、複雑です)を実行して、ビデオとオーディオの両方について正しくセットアップする必要があります。これを修正するために、私はbashスクリプトをxrandr最初から正しく記述できるようにしています。

このU&L Q&AというタイトルのPeoroの答えから基本的なアイデアを得ました外部ディスプレイが接続されているときにRandR構成を自動的に適用するツールです

私のスクリプトについて

私のスクリプト(以下に含まれています)は機能しますが、改善が必要です。

HDMIモニターのビデオモードは正しく設定されますが、LVDS1モニター(ノートブック上)はデスクトップの左上部分のみを表示するように変更されます。これは、右側のウィンドウスクロールバーとオンのタスクバーが切り取られるため問題です。ボトム。

私はこれを--scaleで修正しようとしましたが、最初の試みは物事を台無しにしてしまい、正常に機能するディスプレイに戻すには再起動する必要がありました。

両方のディスプレイに同じコンテンツを表示させる方法はありますが、それぞれが独自の優先解像度を使用していますか?

または、少なくとも、HDMIディスプレイの使用中にデスクトップ全体にアクセスできるようにノートブックディスプレイを設定する方法はありますか?

スクリプトをデバッグしているので、まだクリーンアップされていません。後でもっとやりたいかもしれません。

私のスクリプト

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

xrandrからの出力

xrandrは次のように表示します。

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)

回答:


3

おそらく代わりにkscreenを使用するだけで、すべての問題が解決されます。以前に接続した画面の設定を記憶し、再度接続するとそれらを復元します。

それでもkscreenを使用しているときにこのような問題が発生する場合は、バグレポートに値するはずです。

Kubuntuの12.04はかなり古いです、あなたはおそらく見ている必要があり、これを


聖なるモリー!そのPPAは私に347更新をもらいました!以前にインストールしなかった理由がわかりません。そして、それはkscreenをインストールする前です。これで、サウンド(フォノン)もHDMIとの間で切り替わるだけです...アップグレードが完了したら、ここに戻り、kscreenをテストできます。
Joe、

フォノン構成でデバイスの優先順位を構成すると、動的なサウンド切り替えはかなりうまく機能します。
エリアスプロブスト2013年

kscreenは完全に揺れる!ありがとうございました。今、私はPPAが更新した他のすべてに慣れるか修正する必要があります。システム設定->マルチメディア->オーディオとビデオの設定に移動し、ビルトインオーディオデジタルステレオ(HDMI)をビルトインオーディオアナログステレオの上に移動しましたが、HDMIケーブルのプラグを差し込んだり抜いたりしてもオーディオが切り替わりません。他に何が欠けていますか?
ジョー

どのアプリが影響を受けますか、出力を切り替えませんか?
エリアスプロブスト2013年

kubuntu 12.04から14.04.1にアップグレードしました。それが助けになることを望んでいたのでコメントを待っていましたが、何も変わっていません。それでも手動でオーディオを切り替える必要があります。SE Ask Ubuntuで新しい質問を開くと思います。オーディオスイッチはないと思います。私はvlc、dragonplayer、およびamarokを試しました。
Joeが
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.