Sådan indstilles brugerdefineret opløsning ved hjælp af xrandr, når opløsningen ikke er tilgængelig i ' Skærmindstillinger '

Jeg er en ny Linux-bruger, der prøver at ændre skærmopløsningen, da der ikke er nogen valgmulighed under visning. Jeg har med succes formået at tilføje nye opløsninger ved fluke ved at følge onlineguiden. Jeg har ikke en GPU , Jeg ved ikke, om dette er problemet? Nedenfor er min xrandr -q output.

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 

Kommentarer

  • xrandr -q er ikke angivet i deres manual.

Svar

Her er de trin, du har brug for for at tilføje en ny brugerdefineret opløsning og anvende den. Følgende trin er for at tilføje en opløsning på 1920×1080, men du kan bruge den til enhver anden opløsning, du ønsker. Men sørg for, at din skærm og indbygget grafik understøtter denne opløsning.

 # 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

Jeg skrev også et script, der udfører alle disse trin automatisk. Du kan prøve det, hvis ovenstående trin virker for komplicerede for dig: https://gist.github.com/chirag64/7853413

Kommentarer

  • Det sidste trin mislykkedes …
  • Hvilken fejl fik du? Prøv det automatiske script, som jeg linkede i slutningen af svaret.
  • Når jeg kører din fil chmod +x Desktop/xrandr.sh Jeg føler ingen fejl eller ingen ændringer.
  • chmod +x Desktop/xrandr.sh giver dig kun tilladelse til at køre filen. Du skal køre det ved at køre Desktop/xrandr.sh.
  • I stedet for gtf kan man bruge cvt, f.eks cvt 1920 1080, der producerer den samme output som gtf, men den beregner også gyldig opdateringshastighed. (At give opdateringshastighed til gtf med hånden giver muligvis ikke altid understøttede outputværdier).

Svar

Indstillingen --size / -s kan bruges:

xrandr -s 1440x900 

Skal fungere med RandR version 1.1 eller nyere.

Kommentarer

  • Når jeg gør dette, er svaret: størrelse 1440×900 ikke fundet i tilgængelige tilstande
  • @nick Fra det output, som du inkluderede i det spørgsmål, jeg udledte, skulle det være tilgængeligt. Hvad ‘ er output for xrandr --verbose?
  • xrandr: Kunne ikke hente størrelsen på gamma til output-standardskærm 0 : minimum 1024 x 768, strøm 1024 x 768, maksimum 1024 x 768 standardforbundet 1024×768 + 0 + 0 (0x138) normal (normal) 0 mm x 0 mm Identifikator: 0x137 Tidsstempel: 5048 Underpixel: ukendt Kloner: CRTC: 0 CRTCer: 0 Transform : 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 filter:
  • 1024×768 (0x138) 0.0MHz * strøm h: bredde 1024 start 0 slut 0 i alt 1024 skæv 0 ur 0.0KHz v: højde 768 start 0 slut 0 i alt 768 ur 0.0Hz
  • Så det ser ud til, at den eneste tilgængelige opløsning er 1024×768. Er denne opløsning det, du vil indstille?

Svar

Jeg havde det samme problem. I skærmindstillingen var den maksimale opløsning 1280×720. Så:

  1. ved hjælp af kommandoen xrandr Jeg har set navnet på denne skærm og opløsningslisten.
  2. Jeg har udført scriptet: xrandr –output {navn på skærm} – -tilstand {opløsning}

For eksempel:

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

Svar

Dette var hvad jeg skulle gøre på en #IntelMaker #Joule for at få det til at fungere i den oprindelige opløsning med en SUNFOUNDER 7 INCH TFT COLOR MONITOR, som er angivet som 1024 * 600 opløsning, men blev plukket op som 1280×720 i stedet.

For det første ser Intel Joule med Linux 4.4.15-yocto-standard x86_64 ikke ud til at have gtf(1) , så jeg var nødt til at bruge en anden maskine til at beregne de relevante tal:

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

Opret derefter en fil med de relevante kommandoer:

# 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 

Derefter startx eller startxfce4 og kør ./1024x600.sh, hvorefter følgende vil blive rapporteret af 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) # 

Kommentarer

  • Svaret inkluderer irrelevante personlige bruger- og værtsnavne og ‘ t adskiller klart kommandoer fra deres output – som alle kan være forvirrende for læserne. En standardmetode til at formidle, at noget er en kommando, ville være at forud for det blot med $. Kali ‘ s standard WM er også GNOME, ikke XFCE, måske skal det gøres klart, at startxfce4-kommandoen kun er for brugere, der kører XFCE version 4.Sandsynligheden for at mange andre brugere kører nøjagtigt Linux 4.4.15-yocto-standard x86_64 virker ikke ‘ for mig, så jeg ‘ d i stedet for at gtf (eller cvt) muligvis først skal installeres.

Svar

Gem scriptet og start det (bash script.sh 1024 720 60 ) du kan indstille den brugerdefinerede opløsning med det script, men det er en midlertidig løsning, hver gang du logger ud og logger ind igen, du skal køre scriptet igen. du kan tilføje 2 linier kode i din bash.bashrc-profil. for at køre scriptet direkte fra 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 

Svar

Jeg løb:

xrandr --verbose 

hvilket gav mig en liste over størrelseskoder og tilsvarende pixelværdier

så brugte jeg

xrandr -s 6 

for at vælge 1920×1080 opløsning

A nswer

Mit problem er den bærbare computers opløsning:

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

Min primære / standardskærm er 1366×768.

Men jeg vil gerne teste en opløsning 1920×1080 (DesireResolution) i min notesbog.

Jeg prøvede alt.

Jeg kunne ikke finde en løsning, fordi min notesbog ikke accepterer addmode- eller newmode-kommandoer fra xrandr for at øge opløsningen, som denne anmodning om stackexchange-spørgsmål.

Så jeg lavede matematik!

1920/1366 = 1.4055636896 1080/768 = 1.40625 

dybest set DesireResolution / MaxResolution

og kør denne kommando

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

Hvis du har brug for gendannelse af den originale opløsning

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

Du kan tilpasse den ønskede opløsning.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *