Dimensionamento / redução da resolução com resultados de Newrez no mouse bloqueado

0

Eu usei newrez no passado com notebooks mais antigos e sempre funcionou como um encanto. Agora comprei um computador mais novo e, a princípio, ele não funcionou porque ele não detectou uma tela LVDS1, e depois de pesquisar descobri que tinha uma tela eDP1 e usei o gedit para substituir todas as instâncias de LDVS1 com eDP1 na tela. arquivo newrez. Isso fez com que o dimensionamento funcionasse, mas o mouse ficou preso em uma área invisível do tamanho da resolução antiga. Alguma idéia?

    
por Lucas D'Abate 10.01.2017 / 22:54

1 resposta

1

Então, depois de um tempo investigando por conta própria ... eu percebi isso. Se alguém tiver o mesmo problema, em que você recebe um erro "O monitor atual deve ser LVDS1", provavelmente terá um notebook com display eDP1. Se for esse o caso, basta criar um arquivo vazio e colá-lo dentro. Este é o código para "newrez", mas eu mudei algumas coisas para que ele funcione com displays eDP1. Se você tem LVDS1, então você deve usar o newrez original.

Salve o arquivo como quiser chamá-lo, salvei-o como newrez-edp1 e marque-o como executável. Execute-o e selecione a resolução que você deseja usar.

Espero que isso lhe economize tempo de investigação.

#!/bin/bash

# newrez

# Marc Brumlik, Tailored Software Inc, [email protected]

# up to v 0.8
# use 'xrandr' to scale video output to the display

# v 0.9
# Wed Jan  2 05:23:54 CST 2013
# rewrite to handle mouse boundaries when scaled (mouse confined)
# by setting requested resolution to the unused VGA1 device
# then scaling that for display on the LVDS1 device

# v 1.1
# Fri Dec 20 08:28:08 CST 2013
# fixed issue where setting to "default" after some other resulution
# left mouse-area at prior resolution

# v 1.1 for eDP1 Thu Jan 13
# Changed some code for this to be compatible with eDP1
# All credit goes to original creator

umask 000

# resolution can optionally be specified on command line
newrez=$1

# we MUST be running xrandr 1.3 or higher
if xrandr -v | grep "RandR version 1.[012]"
    then    zenity --info --title="XRandR version is too old" --text="You must be running Xrandr
version 1.3 or newer!
Time to upgrade your system  :-)"
        exit 0
fi

# find the currently connected devices, make a list
devices='xrandr -q | grep connected | grep -v disconnected | cut -d"(" -f1'

# there MUST be a "connected" LVDS1 and a "disconnected" VGA1
current='xrandr -q'

if echo "$current" | grep "eDP1 connected" >/dev/null
    then    : OK
    else    zenity --info --title="PROBLEM" --text="Current display must be eDP1"; exit 0
fi

default='echo "$current" | grep -A 1 "^eDP1" | tail -1 | awk '{print $1}''
H='echo $default | cut -d'x' -f1'
V='echo $default | cut -d'x' -f2'
HZ='echo $default | awk '{print $2}' | tr -d '[*+]''

# echo DEFAULT: $default $H $V

if [ -z "$newrez" ]
    then    while true
        do
            newrez='zenity --entry --title="Set New Resolution" \
                --text="Default Resolution: $default\n\nNew size (eg 1280x750 or 1450x1000)\n   -or- \"default\""' || exit 0
            case $newrez in
                default|[0-9]*x[0-9]*)  break ;;
            esac
        done
fi

case $newrez in
    default)    xrandr --output eDP1 --mode $default --scale 1x1 --panning $H"x"$V
            xrandr --addmode VGA1 $default
            xrandr --newmode $default $newmode
            xrandr --output VGA1 --mode $default --scale 1x1 --panning $H"x"$V
            exit 0 ;;
esac

newH='echo $newrez | cut -d'x' -f1'
newV='echo $newrez | cut -d'x' -f2'
modeline='cvt $newH $newV $HZ | grep Modeline'
newmode='echo "$modeline" | sed 's/^.*"//''
cvtrez='echo "$modeline" | sed -e 's/_.*//' -e 's/^.*"//''

if [ "$newrez" != "$cvtrez" ]
    then    newrez=$cvtrez
        newH='echo $newrez | cut -d'x' -f1'
        newV='echo $newrez | cut -d'x' -f2'
fi

scaleH='echo -e "scale=10\n$newH / $H\nquit" | bc'
scaleV='echo -e "scale=10\n$newV / $V\nquit" | bc'

if echo "$current" | grep -A 100 "^VGA1" | grep $newrez >/dev/null
    then    : already there
    else    xrandr --newmode "$newrez" $newmode
        xrandr --addmode VGA1 $newrez
fi

if xrandr --output VGA1 --mode $newrez --output eDP1 --fb $newrez --scale $scaleH"x"$scaleV --panning $newH"x"$newV 2>&1 | tee -a /tmp/xrandr.err 
    then    : success
    else    zenity --info --title="Xrandr produced this error" --text="'cat /tmp/xrandr.err'"

The problem could be that Your video driver
does not support xrandr version 1.3
        rm -f /tmp/xrandr.err
fi
    
por Lucas D'Abate 13.01.2017 / 19:31