Este pequeno script automatiza a maioria do trabalho. Seja muito cauteloso com o ScanType e com as linhas de duas Polaridades: o script não as ajusta e, se você está com muita preguiça de corrigí-las, os riscos do seu monitor explodir aumentam muito.
Aviso que eu não sei se o sinal 'Doublescan' tem significado no XInside: se você tentar converter um modo doublescan baixo seja CUIDADOSO, você pode facilmente matar o seu monitor visto que a taxa de atualização que você obtém é dupla (de fato meu 400x300@72Hz veio de um 400x300@144Hz !).
#!/bin/sh ########################################################################## # XF2XInside # # Este script converte o formato do XF86Config para o formato XInside para # o aruivo etc/Xtiming. # # Este é uma tarefa rápida, assim não se espera muitos erros (não fale de # nada como usuário amiigável). # # Se você chamá-lo sem os argumentos ele deve mostrar a você o que fazer. # # ( July 1996, hcz@tazlwurm.bb.bawue.de) # # Novos modos criados como descrito no HOWTO funcionam, mas não aparecem # no menu do Xsetup. Alguém sabe por que? # ########################################################################## #----------------------------------------------- Here we go: # Mude isto se o seu arquivo modeline está em algum outro lugar: XF=/usr/X11/lib/X11/XF86Config if [ $# -ne 1 ] ; then echo "usage: ${0##*/} <mode>" echo " example: ${0##*/} 1024x764" echo -e " function: converts $XF modeline entry into\n Xinside Format (stdout)" exit 1 fi egrep -i "^[\t ]*modeline.+\"$1\"" /usr/X11/lib/X11/XF86Config | gawk ' NF < 11 { print "! invalid Modeline:\n! " $0 "\n!"; next } { print "//", $0 ":" name = $2 DOT_CLK = $3; A = $4; B = $5; C = $6; D = $7; a = $8; b = $9; c = $10; d = $11; VerFrequency = 1000000 / ((D / DOT_CLK) * d) print "[PREADJUSTED_TIMING]" printf " PreadjustedTimingName = \"%dx%d @ %.0dHz\";\n", A, a, VerFrequency print " HorPixel\t\t= " A ";" print " VerPixel\t\t= " a ";" print " PixelWidthRatio\t= 4;\n PixelHeightRatio\t= 3;" print " HorFrequency\t\t= " DOT_CLK / D * 1000 ";\t// kHz" print " VerFrequency\t\t= " VerFrequency ";\t// Hz" print " ScanType\t\t= NONINTERLACED;\t\t// *CHECK*" print " HorSyncPolarity\t= NEGATIVE;\t\t\t// *CHECK*" print " VerSyncPolarity\t= NEGATIVE;\t\t\t// *CHECK*" print " CharacterWidth\t= 8;" print " PixelClock\t\t= " DOT_CLK ";" HorTotalTime = D / DOT_CLK print " HorTotalTime\t\t= " HorTotalTime ";" print " HorAddrTime \t\t= " A / DOT_CLK ";" print " HorBlankStart\t\t= " A / DOT_CLK ";" print " HorBlankTime\t\t= " D / DOT_CLK - A / DOT_CLK ";" print " HorSyncStart\t\t= " B / DOT_CLK ";" print " HorSyncTime\t\t= " C / DOT_CLK - B / DOT_CLK ";" VerTotalTime = ( HorTotalTime * d ) / 1000 print " VerTotalTime\t\t= " VerTotalTime ";" print " VerAddrTime\t\t= " ( HorTotalTime * a ) / 1000 ";" VerBlankStart = ( HorTotalTime * a ) / 1000 print " VerBlankStart\t\t= " VerBlankStart ";" print " VerBlankTime\t\t= " VerTotalTime - VerBlankStart ";" print " VerSyncStart\t\t= " ( HorTotalTime * b ) / 1000 ";" print " VerSyncTime\t\t= " ( HorTotalTime * ( c - b ) ) / 1000 print "" }'