Comment définir une résolution personnalisée à l'aide de xrandr lorsque la résolution n'est pas disponible dans les "Paramètres d'affichage"

39

Je suis un nouvel utilisateur de Linux qui essaie de changer la résolution de l’écran, aucune option n’est affichée. J'ai réussi à ajouter de nouvelles résolutions par coup de chance en suivant le guide en ligne. Je n'ai pas de GPU, je ne sais pas si c'est le problème? Ci-dessous ma xrandr -qsortie.

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
entaille
la source
xrandr -q n'est pas répertorié dans leur manuel.
neverMind9

Réponses:

48

Voici les étapes à suivre pour ajouter une nouvelle résolution personnalisée et l'appliquer. Les étapes suivantes permettent d'ajouter une résolution de 1920x1080, mais vous pouvez l'utiliser pour toute autre résolution de votre choix. Mais assurez-vous que votre moniteur et vos graphiques intégrés prennent en charge cette résolution.

# 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"

Source originale: https://gist.github.com/debloper/2793261

J'ai aussi écrit un script qui fait toutes ces étapes automatiquement. Vous pouvez l'essayer si les étapes ci-dessus vous semblent trop compliquées: https://gist.github.com/chirag64/7853413

Chirag Bhatia - chirag64
la source
2
Échec de la dernière étape ...
Vishal Kumar Sahu
Quelle erreur avez-vous obtenu? Essayez le script automatisé que j'ai lié à la fin de la réponse.
Chirag Bhatia - chirag64
Lorsque j'exécute votre fichier, chmod +x Desktop/xrandr.shaucune erreur ni aucun changement ne se produit.
Vishal Kumar Sahu
chmod +x Desktop/xrandr.shne vous donne que les autorisations pour exécuter ce fichier. Vous devez l'exécuter en exécutant Desktop/xrandr.sh.
Chirag Bhatia - chirag64
: o d'accord, j'ai manqué l'arme.
Vishal Kumar Sahu
14

L'option --size/ -speut être utilisée:

xrandr -s 1440x900

Devrait fonctionner avec la RandRversion 1.1 ou plus récente.

Jimmij
la source
2
Quand je fais cela, la réponse est: taille 1440x900 introuvable dans les modes disponibles
pseudo
@ nick D'après le résultat que vous avez inclus dans la question que j'ai déduite, il devrait être disponible. Quelle est la sortie de xrandr --verbose?
jimmij
xrandr: Échec d'obtention de la taille du gamma pour la sortie par défaut Écran 0: minimum 1024 x 768, actuel 1024 x 768, maximum 1024 x 768 connecté par défaut 1024x768 + 0 + 0 (0x138) normal (normal) 0mm x 0mm Identificateur: 0x137 Horodatage: 5048 Sous-pixels: inconnue Clones: CRTC: 0 CRTC: 0 Transformation: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 Filtre:
nick
1024x768 (0x138) 0.0MHz * actuel h: largeur 1024 début 0 fin 0 total 024 oblique 0 horloge 0.0KHz v: hauteur 768 début 0 fin 0 total 768 horloge 0.0Hz
pseudo
Il semble donc que la seule résolution disponible est 1024x768. Cette résolution est-elle celle que vous souhaitez définir?
jimmij
6

J'ai eu le même problème. La résolution maximale du paramètre Affichage était de 1280x720. Alors:

  1. En utilisant la commande xrandr, j'ai vu le nom de ce moniteur et la liste de résolution.
  2. J'ai exécuté le script: xrandr --output {nom du moniteur} --mode {resolution}

Par exemple:

xrandr --output DP-2-1 --mode 2560x1440
grep
la source
3

C’est ce que j’ai dû faire #IntelMaker #Joulepour le faire fonctionner dans la résolution native avec un moniteur couleur SUNFOUNDER 7 INCH TFT COLOR, dont la résolution est de 1024 * 600, mais qui a été sélectionné au lieu de 1280x720.

Premièrement, Intel Joule avec Linux 4.4.15-yocto-standard x86_64 ne semble pas avoir gtf(1), alors, je devais utiliser une machine différente pour calculer les nombres appropriés:

$ 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

$ 

Ensuite, créez un fichier avec les commandes appropriées:

# 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

Ensuite, startxou startxfce4, et courez ./1024x600.sh, après quoi, ce qui suit sera signalé par 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)
# 
cnst
la source
La réponse inclut des noms d'utilisateur et d'hôte personnels non pertinents, et ne sépare pas clairement les commandes de leur sortie - ce qui peut prêter à confusion pour les lecteurs. Une méthode standard pour indiquer que quelque chose est une commande serait de le préfixer simplement avec $. Le WM par défaut de Kali est également GNOME, et non XFCE. Peut-être faudrait-il préciser que la commande startxfce4 est réservée aux utilisateurs exécutant XFCE version 4. La probabilité que de nombreux autres utilisateurs s'exécutent exactement Linux 4.4.15-yocto-standard x86_64ne me semble pas élevée, alors je écrivez plutôt que gtf(ou cvt) devra peut-être être installé en premier.
miyalys
1

Iran:

xrandr --verbose

qui m'a donné une liste de balises de taille et les valeurs de pixel correspondantes

alors j'ai utilisé

xrandr -s 6

sélectionner la résolution 1920x1080

Gavin Guan
la source
1

Enregistrez le script et lancez-le (bash script.sh 1024 720 60). Vous pouvez définir la résolution personnalisée avec ce script, mais il s’agit d’une solution temporaire lorsque vous vous déconnectez et vous vous reconnectez. Vous devez exécuter le script à nouveau. Vous pouvez ajouter 2 lignes de code dans votre profil bash.bashrc.pour exécuter le script directement à partir du 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
Débutant
la source
0

Mon problème est la résolution de cahier ont ceci:

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 ...

Mon écran principal / par défaut est 1366x768.

Mais je voudrais tester une résolution 1920x1080 (DesireResolution) dans mon cahier.

J'ai tout essayé.

Je ne pouvais pas trouver de solution car mon ordinateur portable n'accepte pas les commandes addmode ou newmode de xrandr pour augmenter la résolution, comme cette demande de question stackexchange.

Alors j'ai fait des maths!

1920/1366 = 1.4055636896
1080/768 = 1.40625

essentiellement DesireResolution / MaxResolution

et lancez cette commande

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

Si vous avez besoin de restaurer la résolution d'origine

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

Vous pouvez vous adapter à la résolution de votre choix.

macm
la source