GNU/Linux >> Linux の 問題 >  >> Linux

現在のモニター解像度またはモニター名 (LVDS、VGA1 など) を取得する方法

xrandr の組み合わせでこれを行うことができるはずです と xwininfo .

<オール>
  • 画面、解像度、およびオフセットを取得します:

    $ xrandr | grep -w connected  | awk -F'[ \+]' '{print $1,$3,$4}'
    VGA-0 1440x900 1600
    DP-3 1600x900 0
    
  • 現在のウィンドウの位置を取得

    $ xwininfo -id $(xdotool getactivewindow) | grep Absolute
     Absolute upper-left X:  1927
     Absolute upper-left Y:  70
    
  • したがって、2 つを組み合わせることで、現在の画面の解像度を取得できるはずです:

    #!/usr/bin/env bash
    
    ## Get screen info
    screen1=($(xrandr | grep -w connected  | awk -F'[ +]' '{print $1,$3,$4}' | 
        head -n 1))
    screen2=($(xrandr | grep -w connected  | awk -F'[ +]' '{print $1,$3,$4}' | 
        tail -n 1))
    
    ## Figure out which screen is to the right of which
    if [ ${screen1[2]} -eq 0  ]
    then
        right=(${screen2[@]});
        left=(${screen1[@]});
    else
        right=(${screen1[@]});
        left=(${screen2[@]});
    
    fi
    
    ## Get window position
    pos=$(xwininfo -id $(xdotool getactivewindow) | grep "Absolute upper-left X" | 
          awk '{print $NF}')
    
    ## Which screen is this window displayed in? If $pos
    ## is greater than the offset of the rightmost screen,
    ## then the window is on the right hand one
    if [ "$pos" -gt "${right[2]}" ]
    then
        echo "${right[0]} : ${right[1]}"    
    else
        echo "${left[0]} : ${left[1]}"    
    fi
    

    スクリプトは、現在の画面の名前と解像度を出力します。


    Linux
    1. Kshのバージョンを安全に入手する方法は?

    2. 自動マウントのUSBキーを取得するにはどうすればよいですか?

    3. ディスプレイ設定ダイアログで利用できないモニター解像度を設定するにはどうすればよいですか?

    1. 現在のgitブランチの名前をシェルスクリプトの変数に取得する方法は?

    2. MSBuild で現在のオペレーティング システムを取得する方法は?

    3. etc ディレクトリの chmod を元に戻すにはどうすればよいですか?

    1. オペレーティング システムの名前を確実に取得するにはどうすればよいですか?

    2. コンピューター名 (ホスト名ではない) を取得するには?

    3. uidからユーザー名を取得する方法