Eu escrevi o script a seguir para poder alterar meu fator de escala dinamicamente usando atalhos de teclado no meu netbook Dell Mini 10v:
#!/bin/bash #/usr/local/bin/xrandr-scale-tool #first, we read the config files if [ -r ~/.config/xrandr-scale-tool/xscale ] then xscale=$(~/.config/xrandr-scale-tool/xscale fi if [ ! -e ~/.config/xrandr-scale-tool/output ] then output=LVDS1 echo $output>~/.config/xrandr-scale-tool/output fi if [ ! -e ~/.config/xrandr-scale-tool/baseresx ] then baseresx=1024 echo $baseresx>~/.config/xrandr-scale-tool/baseresx fi if [ ! -e ~/.config/xrandr-scale-tool/baseresy ] then baseresy=600 echo $baseresy>~/.config/xrandr-scale-tool/baseresy fi #if they aren't readable, exit with status 1 if [ ! -r ~/.config/xrandr-scale-tool/xscale ] || [ ! -r ~/.config/xrandr-scale-tool/baseresx ] || [ ! -r ~/.config/xrandr-scale-tool/baseresy ] || [ ! -r ~/.config/xrandr-scale-tool/output ] then echo A config file could not be read exit 1 fi #now, we check the first argument to see what to do if [ -z "$1" ] then #restore from settings xrandr --output $output --scale ${xscale}x${xscale} --panning 0x0+0+0 xrandr --output $output --scale ${xscale}x${xscale} --panning 'xrandr -q | awk -F'current' -F',' 'NR==1 {gsub("( |current)","");print $2}'' fi if [ "$1" == "+" ] then #increment and apply amt=$2 xscale='echo $xscale+$amt|bc' xrandr --output $output --scale ${xscale}x${xscale} --panning 0x0+0+0 xrandr --output $output --scale ${xscale}x${xscale} --panning 'xrandr -q | awk -F'current' -F',' 'NR==1 {gsub("( |current)","");print $2}'' sleep 2 notify-send "Scale Factor: $xscale" --icon=display fi if [ "$1" == "-" ] then #decrement and apply amt=$2 xscale='echo $xscale-$amt|bc' xrandr --output $output --scale ${xscale}x${xscale} --panning 0x0+0+0 xrandr --output $output --scale ${xscale}x${xscale} --panning 'xrandr -q | awk -F'current' -F',' 'NR==1 {gsub("( |current)","");print $2}'' sleep 2 notify-send "Scale Factor: $xscale" --icon=display fi if [ "$1" == "reset" ] then #reset xscale=1 xrandr --output $output --scale ${xscale}x${xscale} --panning 'echo $xscale*$baseresx|bc'x'echo $xscale*$baseresy|bc' sleep 2 notify-send "Scale Factor: $xscale" --icon=display fi #record changes in scale to file before exiting echo $xscale>~/.config/xrandr-scale-tool/xscale exit 0
Esse script presume que sua resolução padrão é 1024x600 e você está usando a exibição em LVDS1. Se esse não for o caso, edite os arquivos em ~/.config/xrandr-scale-tool
para refletir isso (os arquivos de configuração são gerados após a primeira execução).
Esse script pode ser executado de quatro maneiras:
xrandr-scale-tool
restaura as configurações de escala do arquivo de configuração, que é salvo em cada execução.% xrandr-scale-tool + 0.1
incrementa a escala em 0,1. Você pode usar qualquer número aqui e xrandr-scale-tool - 0.1
diminui a escala em 0,1. Novamente, qualquer número funciona e xrandr-scale-tool reset
redefine a escala para 1.
Cada vez que a escala é alterada, notify-send
é executado para mostrar o fator de escala atual por meio de uma notificação.
A maneira como eu configurei o meu é que xrandr-scale-tool + 0.125
é mapeado para Ctrl Alt + , xrandr-scale-tool - 0.125
é mapeado para Ctrl Alt - , e xrandr-scale-tool reset
é mapeado para Ctrl Alt 0 . xrandr-scale-tool
é executado, sem argumentos, no login, de modo que qualquer escala que eu estivesse usando antes está em uso no próximo login.