GNU/Linux >> Znalost Linux >  >> Linux

Jak získat aktuální rozlišení monitoru nebo název monitoru (LVDS, VGA1 atd.)

Měli byste to udělat pomocí kombinace xrandr a xwininfo .

  1. Získejte obrazovky, jejich rozlišení a offsety:

    $ xrandr | grep -w connected  | awk -F'[ \+]' '{print $1,$3,$4}'
    VGA-0 1440x900 1600
    DP-3 1600x900 0
    
  2. Získejte polohu aktuálního okna

    $ xwininfo -id $(xdotool getactivewindow) | grep Absolute
     Absolute upper-left X:  1927
     Absolute upper-left Y:  70
    

Takže kombinací těchto dvou byste měli být schopni získat rozlišení aktuální obrazovky:

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

Skript vytiskne název a rozlišení aktuální obrazovky.


Linux
  1. Jak získat klíč USB k automatickému připojení?

  2. Jak vyhledat název aktuálního pracovního prostoru?

  3. Jak získám uživatelské jméno v souboru Makefile?

  1. Jak získat cestu k aktuálnímu souboru (pwd) v Linuxu z C?

  2. Jak mohu vrátit chmod v adresáři etc?

  3. Jak získat adresu URL aktuálního repozitáře svn?

  1. Linux – jak spolehlivě získat název operačního systému?

  2. Jak bezpečně získat verzi Ksh?

  3. Jak nastavit rozlišení monitoru, které není k dispozici v dialogovém okně Nastavení zobrazení?