Não 100% de certeza porque você tem gráficos da Intel, mas soa como o bom e velho problema com o EDID ruim. Em suma, o seu monitor envia informações ruins para sua placa gráfica, ele não pode ler as frequências máximas e erra do lado do cuidado, usando apenas as configurações mais baixas possíveis.
randr é (por design!) apenas para alterações em tempo de execução. Para qualquer configuração permanente, você precisa alterar as configurações do servidor X. Para isso, edite /etc/X11/xorg.conf (Este é um arquivo de sistema importante! Faça um backup primeiro!). Você precisa adicionar linhas HorizSync e VertRefresh. O resultado deve ser assim:
Section "Monitor"
Identifier "Configured Monitor"
HorizSync 30-35
VertRefresh 55-75
EndSection
Aviso: não use os números que postei aqui! Se você definir uma freqüência no HorizSync que seja muito alta, isso poderá danificar permanentemente o seu monitor. Eles flutuam consideravelmente entre os modelos de monitor, eu os vejo em qualquer lugar entre 30 Hz e 75 Hz. Você deve procurar os valores corretos no guia do usuário do monitor ou ligar para o suporte técnico do fabricante e perguntar sobre a frequência vertical e horizontal na sua resolução preferida.
Talvez você precise adicionar a linha de modo ao arquivo Xorg.conf manualmente (eu esqueci qual seção, eu acho que tela), mas provavelmente após a reinicialização do X você será capaz de definir a resolução usando o gráfico embutido. ferramenta.
Mesmo que isso não resolva seu problema, o xorg.conf é o local para salvar as alterações permanentes na sua configuração de tela.
Edite como resposta aos seus comentários.
O HorizSync é a frequência, sim. Em uma placa nVidia, definir o HorizSync e o VertRefresh no xorg.conf (reiniciando o X ou reiniciando) torna todas as resoluções usuais disponíveis na GUI do driver nVidia. Portanto, escolher sua resolução preferida deve ser possível.
Se isso não acontecer com os drivers da Intel, você pode adicionar manualmente a resolução desejada no seu Xorg.conf. Ainda na seção Monitor, cole seu modeline (que trabalhou com xRandR). Em seguida, liste o nome do modo como a opção Modo preferido. Em seguida, na seção Tela, subseção Exibir, adicione uma linha Modos, incluindo o nome do seu modo.
O resultado deve ser algo assim:
Section "Monitor" Identifier "Configured Monitor" HorizSync 30-80 VertRefresh 55-75 Modeline "1152x864_60.00" 81.75 1152 1216 1336 1520 864 867 871 897 -hsync +vsync Option "PreferredMode" "1152x864_60.00" EndSection
e abaixo disso, dentro da seção Tela
SubSection "Display" Depth 24 Modes "1152x864" "1024x768" "640x480" EndSubSection
Não tenho certeza se você precisa da subseção Display, mas a encontrei em um antigo arquivo de configuração meu. Se isso não funcionar, comente novamente. Não é possível testá-lo no meu sistema atual porque não posso reiniciar agora e a configuração atual do meu monitor é diferente. Então, ainda pode precisar de alguns ajustes. Mas, em teoria, adicionar a modeline no Xorg.conf é a versão permanente de adicioná-lo dinamicamente ao RandR.
Se você precisar ajustar, uma boa fonte de informações seria o manual do Xorg.conf. link
Se tudo mais falhar, acho que há um arquivo de perfil X onde você pode adicionar comandos xRandR. Certamente não é elegante e possivelmente tão lento quanto sua solução de script de inicialização. Além disso, não me lembro muito sobre esse arquivo e como usá-lo, por isso não posso ajudá-lo.
E se essas coisas falharem também, talvez o problema seja outra coisa. Como provavelmente ainda está relacionado ao X, você pode procurar em seu arquivo /var/log/xorg.0.log. Se houver linhas começando com (WW) ou (EE), pesquise estas linhas e você certamente encontrará uma solução.