Como definir a resolução personalizada usando xrandr quando a resolução não estiver disponível em ' Configurações de exibição '

Sou um novo usuário do Linux tentando alterar a resolução da tela porque não há nenhuma opção em exibição. Consegui adicionar novas resoluções por acaso seguindo o guia online. Não tenho uma GPU , Não sei se esse é o problema? Abaixo está minha xrandr -q saída.

root@kali:~# xrandr -q xrandr: Failed to get size of gamma for output default Screen 0: minimum 1280 x 1024, current 1280 x 1024, maximum 1280 x 1024 default connected 1280x1024+0+0 0mm x 0mm 1280x1024 0.0* 1920x1200_60.00 (0x145) 193.2MHz h: width 1920 start 2056 end 2256 total 2592 skew 0 clock 74.6KHz v: height 1200 start 1203 end 1209 total 1245 clock 59.9Hz 1440x900_59.90 (0x156) 106.3MHz h: width 1440 start 1520 end 1672 total 1904 skew 0 clock 55.8KHz v: height 900 start 901 end 904 total 932 clock 59.9Hz 

Comentários

  • xrandr -q não está listado em seu manual.

Resposta

Aqui estão as etapas de que você precisa para adicionar uma nova resolução personalizada e aplicá-la. As etapas a seguir são para adicionar uma resolução de 1920 x 1080, mas você pode usá-la para qualquer outra resolução que desejar. Mas certifique-se de que seu monitor e os gráficos integrados suporta essa resolução.

 # First we need to get the modeline string for xrandr # Luckily, the tool "gtf" will help you calculate it. # All you have to do is to pass the resolution & the- # refresh-rate as the command parameters: gtf 1920 1080 60 # In this case, the horizontal resolution is 1920px the # vertical resolution is 1080px & refresh-rate is 60Hz. # IMPORTANT: BE SURE THE MONITOR SUPPORTS THE RESOLUTION # Typically, it outputs a line starting with "Modeline" # e.g. "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync # Copy this entire string (except for the starting "Modeline") # Now, use "xrandr" to make the system recognize a new # display mode. Pass the copied string as the parameter # to the --newmode option: xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync # Well, the string within the quotes is the nick/alias # of the display mode - you can as well pass something # as "MyAwesomeHDResolution". But, careful! :-| # Then all you have to do is to add the new mode to the # display you want to apply, like this: xrandr --addmode VGA1 "1920x1080_60.00" # VGA1 is the display name, it might differ for you. # Run "xrandr" without any parameters to be sure. # The last parameter is the mode-alias/name which # you"ve set in the previous command (--newmode) # It should add the new mode to the display & apply it. # Usually unlikely, but if it doesn"t apply automatically # then force it with this command: xrandr --output VGA1 --mode "1920x1080_60.00"  

Original s ource: https://gist.github.com/debloper/2793261

Também escrevi um script que executa todas essas etapas automaticamente. Você pode experimentar se as etapas acima parecerem muito complicadas para você: https://gist.github.com/chirag64/7853413

Comentários

  • Falha na última etapa …
  • Que erro você obteve? Tente o script automatizado que vinculei no final da resposta.
  • Quando executo seu arquivo chmod +x Desktop/xrandr.sh Sinto que não há erro ou alteração.
  • chmod +x Desktop/xrandr.sh concede apenas permissões para executar esse arquivo. Você precisa executá-lo executando Desktop/xrandr.sh.
  • Em vez de gtf, pode-se usar cvt, por exemplo cvt 1920 1080, que produz a mesma saída que gtf, mas também calcula a taxa de atualização válida. (Dar taxa de atualização para gtf manualmente nem sempre pode fornecer valores de saída compatíveis).

Resposta

A opção --size / -s pode ser usada:

xrandr -s 1440x900 

Deve funcionar com a RandR versão 1.1 ou mais recente.

Comentários

  • Quando eu faço isso, a resposta é: tamanho 1440×900 não encontrado nos modos disponíveis
  • @nick Da saída que você incluiu na pergunta, deduzi que deveria estar disponível. Qual ‘ é a saída de xrandr --verbose?
  • xrandr: Falha ao obter o tamanho do gama para a tela padrão de saída 0 : mínimo 1024 x 768, atual 1024 x 768, máximo 1024 x 768 padrão conectado 1024×768 + 0 + 0 (0x138) normal (normal) 0mm x 0mm Identificador: 0x137 Timestamp: 5048 Subpixel: desconhecido Clones: CRTC: 0 CRTCs: 0 Transformar : 1.000000 0,000000 0,000000 0,000000 1.000000 0,000000 0,000000 0,000000 1.000000 filtro:
  • 1024×768 (0x138) 0,0MHz * corrente h: largura 1024 início 0 final 0 total 1024 inclinação 0 relógio 0,0KHz v: altura 768 início 0 final 0 total 768 clock 0.0Hz
  • Portanto, parece que a única resolução disponível é 1024×768. É esta resolução que você deseja definir?

Resposta

Eu tive o mesmo problema. Na configuração de exibição, a resolução máxima foi 1280×720. Portanto:

  1. usando o comando xrandr eu vi o nome deste monitor e a lista de resolução.
  2. Eu executei o script: xrandr –output {nome do monitor} – -mode {resolution}

Por exemplo:

xrandr --output DP-2-1 --mode 2560x1440 

Resposta

Isso é o que eu tive que fazer em um #IntelMaker #Joule para fazê-lo funcionar na resolução nativa com um SUNFOUNDER 7 POLEGADAS TFT COLOR MONITOR, que está listado como tendo resolução de 1024 * 600, mas foi selecionado como 1280×720 em vez disso.

Primeiro, o Intel Joule com Linux 4.4.15-yocto-standard x86_64 não parece ter gtf(1) , então, eu tive que usar uma máquina diferente para calcular os números apropriados:

$ gtf 1024 600 60 # 1024x600 @ 60.00 Hz (GTF) hsync: 37.32 kHz; pclk: 48.96 MHz Modeline "1024x600_60.00" 48.96 1024 1064 1168 1312 600 601 604 622 -HSync +Vsync $ 

Em seguida, crie um arquivo com os comandos apropriados:

# cat > 1024x600.sh xrandr --newmode "1024x600_60.00" 48.96 1024 1064 1168 1312 600 601 604 622 -HSync +Vsync xrandr --addmode HDMI1 "1024x600_60.00" xrandr --output HDMI1 --mode "1024x600_60.00" ^D # chmod +x 1024x600.sh 

Então, startx ou startxfce4, e execute ./1024x600.sh, após o qual, o seguinte será relatado por xrandr(1) .

# xrandr Screen 0: minimum 8 x 8, current 1024 x 600, maximum 32767 x 32767 DP1 disconnected (normal left inverted right x axis y axis) HDMI1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 697mm x 392mm 1280x720 60.00 + 50.00 59.94 1920x1080 60.00 50.00 59.94 1920x1080i 60.00 50.00 59.94 1280x1024 75.02 1440x900 74.98 59.90 1024x768 75.08 70.07 60.00 1024x600 60.00 800x600 72.19 75.00 60.32 56.25 720x576 50.00 720x576i 50.00 720x480 60.00 59.94 720x480i 60.00 59.94 640x480 75.00 72.81 60.00 59.94 720x400 70.08 1024x600_60.00 60.00* HDMI2 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis) # 

Comentários

  • A resposta inclui nomes de host e usuários pessoais irrelevantes e não ‘ t separar claramente os comandos de sua saída – tudo isso pode ser confuso para os leitores. Um método padrão de transmitir que algo é um comando seria prefixá-lo simplesmente com $. Kali ‘ s WM padrão também é GNOME, não XFCE, talvez deva ficar claro que o comando startxfce4 é apenas para usuários executando o XFCE versão 4.A probabilidade de muitos outros usuários estarem executando exatamente Linux 4.4.15-yocto-standard x86_64 não ‘ não parece alta para mim, então eu ‘ d, em vez disso, escreva que gtf (ou cvt) pode ter que ser instalado primeiro.

Resposta

Salve o script e inicie-o (bash script.sh 1024 720 60 ) você pode definir a resolução personalizada com esse script, mas é uma solução temporária sempre que você fizer logout e login novamente, você deve executar o script novamente. você pode adicionar 2 linhas de código em seu perfil bash.bashrc.para executar o script diretamente de terminal.

#!/bin/bash # xrandr.sh #If no argument is specified, ask for it and exit if [[ -z "$@" ]]; then echo "An argument is needed to run this script"; exit else arg="$@" #Basic check to make sure argument number is valid. If not, display error and exit if [[ $(($(echo $arg | grep -o "\s" | wc --chars) / 2 )) -ne 2 ]]; then echo "Invalid Parameters. You need to specify parameters in the format "width height refreshRate"" echo "For example setResolution "2560 1440 60"" exit fi #Save stuff in variables and then use xrandr with those variables modename=$(echo $arg | sed "s/\s/_/g") display=$(xrandr | grep -Po ".+(?=\sconnected)") if [[ "$(xrandr|grep $modename)" = "" ]]; then xrandr --newmode $modename $(gtf $(echo $arg) | grep -oP "(?<="\s\s).+") && xrandr --addmode $display $modename fi xrandr --output $display --mode $modename #If no error occurred, display success message if [[ $? -eq 0 ]]; then echo "Display changed successfully to $arg" fi fi 

Resposta

Eu executei:

xrandr --verbose 

que me deu uma lista de tags de tamanho e valores de pixel correspondentes

então eu usei

xrandr -s 6 

para selecionar a resolução 1920×1080

A nswer

Meu problema é a resolução do notebook:

Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767 eDP1 connected 1920x1080+0+0 ... 1366x768 60.00*+ 47.98 <=== MaxResolution (Default/Primary) 1360x768 59.80 59.96 1280x720 60.00 ... 

Minha tela principal / padrão é 1366×768.

Mas gostaria de testar uma resolução 1920×1080 (DesireResolution) no meu notebook.

Tentei de tudo.

Não consegui encontrar uma solução porque meu notebook não aceita os comandos addmode ou newmode do xrandr para aumentar a resolução, como esta solicitação de pergunta do stackexchange.

Então, fiz algumas contas!

1920/1366 = 1.4055636896 1080/768 = 1.40625 

basicamente DesireResolution / MaxResolution

e execute este comando

xrandr --output eDP1 --mode 1366x768 --panning 1920x1080 --scale 1.40556369x1.40625

Se você precisar restaurar a resolução original

xrandr --output eDP1 --mode 1366x768 --panning 1366x768 --scale 1x1 

Você pode adaptar a qualquer resolução que desejar.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *