скрипт переключения между мониторами


Мне, как владельцу ноутбука, иногда хочется подключить его к внешнему дисплею, но к сожалению, кнопка переключения дисплея не работает под Linux. Поэтому пришлось написать свой скрипт.

Для начала запустите команду xrandr –prop, чтобы посмотреть, как называются ваши дисплеи.

insider@localhost:Downloads$ xrandr --prop
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1600 x 1600
LVDS connected (normal left inverted right x axis y axis)
    BACKLIGHT: 7 (0x00000007)   range:  (0,7)
    SignalFormat:   DisplayPort
    ConnectorType:  Panel
   1366x768       60.0 +
   1360x768       60.0
   1280x768       60.0
   1280x720       60.0
   1024x768       60.0
   1024x600       60.0
   800x600        60.0
   800x480        60.0
   640x480        60.0
DFP1 disconnected (normal left inverted right x axis y axis)
    SignalFormat:   TMDS
    ConnectorType:  HDMI
CRT1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
    EDID_DATA:
        00ffffffffffff004c2de40139314a48
        0a1001030e261e782ade95a3544c9926
        0f5054bfef8081808140714f01010101
        010101010101302a009851002a403070
        1300782d1100001e000000fd00384c1e
        510e000a202020202020000000fc0053
        796e634d61737465720a2020000000ff
        00484d454c3330323434320a202000cf
    SignalFormat:   VGA
    ConnectorType:  VGA
   1280x1024      60.0 +   75.0*
   1280x960       60.0
   1152x864       75.0     60.0
   1280x768       60.0
   1280x720       60.0
   1024x768       75.0     70.1     60.0
   1024x600       75.0     70.1     60.0
   800x600        72.2     75.0     60.3     56.2
   800x480        72.2     75.0     60.3     56.2
   640x480        75.0     72.8     67.0     59.9

У меня это CRT1 внешний и LVDS родной ноутбучный.

Вот как выглядит скрипт.

#!/bin/bash
if [ "$#" -ne 1 ]
then
  echo -e "Please specify option.\nAvailable options:\n-e  external monitor\n-i  internal monitor"
  exit 1
else
  if [ "$1" == "-e" ]
    then
      # Switch to external display
      xrandr --output LVDS --off --output CRT1 --auto && xrandr -r 75
    elif [ "$1" == "-i" ]
      then
        # Switch to internal display
        xrandr --output CRT1 --off --output LVDS --auto
  fi
fi

Скрипт, запущенный с параметром -e включит внешний и выключит ноутбучный дисплей, а с опцией -i наоборот. Для того, чтобы вывести одно изображение на оба экрана, запустить нужно так

xrandr --output LVDS --auto --output CRT1 --auto

А так мы выставим частоту обновления в 75 Hz.

xrandr -r 75

Для удобства, я назначил сочетания клавиш для своего скрипта — win + F5 переключает на внешний, win + F6 — обратно. В Ubuntu это было легко сделать:

Кнопка меню -> System -> Preferences -> Keyboard Shortcuts.

comments powered by Disqus