Meu monitor está parcialmente quebrado. Como posso diminuir o espaço visível usando xrandr ou qualquer ferramenta semelhante?

5

Meu monitor secundário está parcialmente quebrado no topo 1/3 da tela, então eu quero adicionar blackbars e ter algo como na imagem abaixo. A parte superior é como tudo é agora. A parte inferior é o que eu quero alcançar. As resoluções listadas aqui são o máximo para cada tela.

Esta é a saída xrandr para a segunda tela:

VGA1 connected 1920x1080+1366+12 (normal left inverted right x axis y axis) 890mm x 500mm
1920x1080     60.00*+
1600x1200     60.00  
1680x1050     59.95  
1280x1024     75.02    60.02  
1440x900      74.98    59.89  
1280x960      60.00  
1360x768      60.02  
1280x800      59.81  
1152x864      75.00  
1024x768      75.08    70.07    60.00  
832x624       74.55  
800x600       72.19    75.00    60.32  
640x480       75.00    72.81    66.67    60.00  
720x400       70.08 

    
por Maccer 05.08.2017 / 11:06

1 resposta

2

Soluções possíveis:

Use painéis vazios cobrindo a região danificada para forçar janelas usando o espaço restante. Por exemplo, xfce4-panel pode ser bem configurado. Depende do seu ambiente de trabalho o quão bem isso funciona. O Xfce e o LXDE irão funcionar bem, o Gnome irá criar problemas, eu suponho. Isso também não ajuda em aplicativos de tela cheia que cobririam o painel, por exemplo, firefox + F11 ou VLC em tela cheia.

Solução alternativa para aplicativos de tela inteira: iniciando Xephyr com o tamanho de tela desejado, posicionando-o e iniciando aplicativos dentro dele. Automatize isso com um script e 'xdotool':

Xephyr :1 -screen 1500x800x24 &
xdotool search --name Xephyr windowmove 0 437

Inicie os aplicativos na janela do Xephyr com DISPLAY=:1 firefox . O Xephyr não suporta aceleração de hardware, mas virtualgl pode ajudar aqui.

Melhor solução alternativa:

Use weston com Xwayland . Ele suporta aplicativos de aceleração de hardware e tela cheia.

Use um gerenciador de janelas bastante leve como openbox na inicialização (ou melhor ainda, um sem decorações de janela como evilwm ). Ele serve apenas como ambiente de fundo, e weston o cobrirá.

Crie um arquivo myweston.ini personalizado como este (veja man weston.ini ):

[core]
shell=desktop-shell.so
idle-time=0

[shell]
panel-location=none
locking=false

[output]
name=X1
mode=1366x768

[output]
name=X2
mode=1500x768

Crie um script como este para começar a weston em evilwm e Xwayland em Weston (personalize posições de 2 janelas de weston). Por fim, inicie o ambiente de área de trabalho desejado:

# start weston with custom config and two output windows
weston --socket=wayland-1 --config=$HOME/myweston.ini --output-count=2 >$HOME/weston.log 2>&1 &
sleep 1 # wait until weston is ready

# get window id's from logfile and move windows at target (xwininfo could give id's, too)
xdotool windowmove 0x$(printf '%x\n' $(cat $HOME/weston.log | grep 'window id' | head -n1 | rev | cut -d' ' -f1 | rev))    0 0
xdotool windowmove 0x$(printf '%x\n' $(cat $HOME/weston.log | grep 'window id' | tail -n1 | rev | cut -d' ' -f1 | rev))    1369 400

# start X server Xwayland in weston
WAYLAND_DISPLAY=wayland-1 Xwayland :1 &
sleep 1 # wait until Xwayland is ready

# start your desired desktop environment
DISPLAY=:1 startlxde

O script de início acima não configura a autenticação de cookie para clientes X. Em vez disso, você também pode usar x11docker para ter autenticação de cookies:

# start weston and Xwayland, read X environment
read Xenv < <(x11docker --weston-xwayland --gpu --output-count=2 --westonini=$HOME/myweston.ini)

# move weston windows to target locations
xdotool windowmove $(xwininfo -name "Weston Compositor - X1" | grep "Window id" | cut -d' ' -f4) 0 0
xdotool windowmove $(xwininfo -name "Weston Compositor - X2" | grep "Window id" | cut -d' ' -f4) 1367 400

# start desired desktop environment
env $Xenv startlxde

Xwayland aparece como uma "janela" cliente de weston. Infelizmente, devido a um bug em Weston ou Xwayland, ele nem sempre fica na posição 0: 0. Você pode mover o Xwayland para a posição desejada com [META] + botão esquerdo do mouse. Eu escrevi um relatório de erros , mas recebi uma resposta nesposta.

    
por 27.08.2017 / 15:13