Оболочка гнома не может сохранить разрешение экрана

Сегодня я решил попробовать Gnome shell 3.10 на Ubuntu 14.04 и заметил, что после каждого перезапуска мое разрешение экрана устанавливается на максимум, что нежелательно. В Unity таких проблем нет. Также, если я пытаюсь изменить разрешение с помощью nvidia-settings, я получаю эту ошибку:

ERROR: Error querying target relations


(nvidia-settings:31370): IBUS-WARNING **: The owner of /home/alen/.config/ibus/bus is not root!
The program 'nvidia-settings' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
  (Details: serial 544 error_code 2 request_code 157 minor_code 25)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

Графическая карта: GeForce 6100 nForce 420/ встроенная /SSE2/3DNOW!

Есть ли какое-то решение для этого?

1 ответ

Решение

Вероятная причина

Я предполагаю, что ваш монитор сообщает о высоком разрешении экрана как предпочтительном; к сожалению, эта информация используется GNOME Shell при каждом входе в систему для сброса разрешения.

Как исправить

У меня была противоположная проблема: мой монитор сообщал о более низком предпочтительном разрешении экрана (1280x1024), чем то, которое я хотел использовать (1600x1200). Надеюсь, что исправление, которое я использовал, будет применимо аналогично вашей проблеме. Вот что я сделал:

Я побежал xrandr -q выяснить, какое текущее предпочтительное разрешение экрана и какие другие разрешения экрана (или, скорее, "строки режима") доступны. На выходе строка режима, помеченная + текущий преферентированный. Он также соответствует используемому в настоящее время (отмечен *). Вот вывод для меня (сокращенно):

Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192
DVI-0 disconnected (normal left inverted right x axis y axis)
DIN disconnected (normal left inverted right x axis y axis)
DVI-1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 352mm x 264mm
   1280x1024      85.0*+   75.0     60.0  
   1920x1440      60.0  
   …  
   1600x1200      85.0     75.0     70.0     65.0     60.0  
   …

Чтобы переопределить предпочтительное разрешение экрана, я создал файл /etc/X11/xorg.conf со следующим содержанием:

Section "Monitor"
    Identifier "DVI-1"
    Option "PreferredMode" "1600x1200"
EndSection

Как видите, я взял оба идентификатора монитора DVI-1 и имя нового предпочтительного режима строки 1600x1200 от xrandr -q выход. Вы должны заменить эти значения в соответствии с вашими настройками.

После выхода из системы (или перезагрузки) новая строка предпочтительного режима автоматически использовалась как для моего диспетчера отображения, так и для GNOME Shell. Новый (сокращенный) вывод xrandr -q было следующее:

Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 8192 x 8192
DVI-0 disconnected (normal left inverted right x axis y axis)
DIN disconnected (normal left inverted right x axis y axis)
DVI-1 connected primary 1600x1200+0+0 (normal left inverted right x axis y axis) 352mm x 264mm
   1600x1200      85.0*+   75.0     70.0     65.0     60.0  
   1280x1024      85.0 +   75.0     60.0  
   1920x1440      60.0  
   …

Это альтернатива для тех, у кого такая же проблема.

В папке "~/.config" находится файл с именем "monitors.xml". Файл защищен от записи в моей системе, поэтому вам может потребоваться sudo.

Сделайте резервную копию этого файла.

Измените разрешение, указанное в файле, на желаемое. Сохранить.

После этого просто перезапустите Shell с помощью alt + f2 r. Экран изменит разрешение на указанное в файле.

В моем случае это работает даже после перезагрузки, и теперь мне не нужно использовать скрипт для исправления разрешения после входа в систему.

Другие вопросы по тегам