Eu tenho um notebook rodando o Kubuntu Precise (12.04) que ocasionalmente uso para assistir vídeos. Quando faço isso, conecto um cabo HDMI conectado a um receptor A / V com um monitor HDMI conectado a ele.
Quando vejo vídeos dessa maneira, ainda preciso usar a tela do notebook quando estou interagindo com o sistema para controlar a reprodução, etc. O texto no monitor HDMI é difícil de ler de onde estou.
Quando eu conecto o cabo HDMI, o Kubuntu o detecta, mas eu tenho que passar por uma sequência de dança estranha (que funciona, mas é complicada) para configurá-lo corretamente toda vez, tanto para vídeo quanto para áudio. Para corrigir isso, estou tentando escrever um script bash com xrandr
para fazer certo da primeira vez.
Eu recebi a ideia básica da resposta de Peoro a essa pergunta e respostas: Uma ferramenta para aplicar automaticamente a configuração RandR quando o monitor externo está conectado .
Sobre o meu script
Meu script (incluído abaixo) funciona, mas precisa ser melhorado.
Define o modo de vídeo corretamente para o monitor HDMI, mas o monitor LVDS1 (no notebook) muda para exibir apenas a parte superior esquerda da área de trabalho - o que é um problema porque corta as barras de rolagem da janela à direita e a barra de tarefas na parte inferior.
Eu tentei consertar isso com --scale
, mas minha primeira tentativa atrapalhou as coisas o suficiente para que eu tivesse que reinicializar para obter uma exibição de trabalho.
Existe uma maneira de fazer com que ambos os displays mostrem o mesmo conteúdo, mas cada um usando sua própria resolução preferida separada?
Ou, pelo menos, uma maneira de definir o monitor do notebook para que toda a área de trabalho ainda esteja acessível quando o monitor HDMI estiver em uso?
Como estou depurando o script, ele não está limpo ainda. Eu posso querer fazer isso mais tarde.
Meu script
#!/bin/bash
## hdmi_set
## Copyleft 11/13/2013 JPmicrosystems
## Adapted from
## https://unix.stackexchange.com/questions/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
Saída do xrandr
Veja o que o xrandr vê:
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)