Поиск по блогу :

    1 сентября 2009 г.

    Два монитора + видеокарта от NVidia

    Решил написать эту статью, так как недавно обзавелся вторым монитором (оба монитора у меня формата 4:3, каждый с разрешением 1280x1024), чему я безмерно рад :) Вот решил поделиться своими впечатлениями о работе за двумя мониторами в убунту.
    Сразу оговорюсь, что у меня видеокарточка от NVidia, поэтому и заголовок статьи соответствующий, и некоторые описанные ниже действия подходят только для владельцев NVidia карт.


    Итак. Подключил я второй монитор к компу и загрузился. При загрузке было видно что монитор определился, но так как система настроена была на один монитор, то после полной загрузки, второй монитор был неактивен, что логично.

    Настройка второго монитора

    Для настройки мониторов открываем 'Система'->'Параметры'->'Экран'.
    Если в предыдущих версиях убунты, в гноме, за настройку мониторов подключенных к nvidia, всегда отвечала программа 'gnome-display-properties', то в 9.04, система предложит вам, воспользоваться специализированной программой 'nvidia-settings'. В программе сразу видны оба монитора и второй обозначен как 'Disabled' (Отключен), выбираем его и в настройках выставляем то, что хотим в итоге получить. В моем случае, это TwinView, чтобы на обоих мониторах был общий рабочий стол. Но тут есть один нюанс, 'nvidia-settngs' открывается от имени пользователя, поэтому все ваши изменения будут действовать только в течении текущего сеанса. Чтобы полностью запомнить настройки, запускайте программу от имени администратора:
    $

    тогда, после нажатия 'Save to X Configuration File', ваши изменения сохранятся в '/etc/X11/xorg.conf'.

    Панель задач и Compiz

    Многие, кто раньше работал под виндой, использовали для двух мониторов утилиту 'UltraMon'. Эта программа создавала на втором мониторе панель задач со списком окон расположенных в области второго монитора, а также она позволяла с помощью кнопок перемещать окна из области одного монитора в область другого и наоборот, плюс другие полезности. Многие, после перехода с винды на линукс, сразу же пытаются найти аналог этой программе, но увы ее нет.
    Но не все так плохо, в убунту уже многое есть по-умолчанию. Например, вы можете добавить панель в область второго монитора и разместить на ней апплет 'Список окон', который будет отображать окна относящиеся к этому монитору. А если вы используете Compiz-Fusion, то в его менеджере есть плагин 'Put' в разделе 'Управление окнами', с помощью которого можно назначить на любую комбинацию клавиш или на кнопку мыши - перемещение окна с одного монитора на второй и обратно (настраиваете комбинацию клавиш 'Put To Next Output').
    Put To Next Output в действии -
    Согласитесь, основная часть функционала 'UltraMon', у нас уже есть :)

    Игры

    Работать за двумя мониторами прекрасно, но вот если вы решили поиграть в какую-нибудь игру на полный экран, то тут вас может ждать разочарование. Многие игры не поддерживают такого разрешения экрана, которое в сумме дают два монитора, а также в большинстве случаев еще и располагают основную область игры посредине и в этом случае играть невозможно, так как глазам мешают стыки мониторов.
    Как вариант можно отключать второй монитор на время игры. с помощью 'nvidia-settings', но тогда быдет ругаться 'gnome-panel', так как при отключении второго монитора, он не может найти позиции для размещения панелей (если есть панели в области второго монитора). Иногда это вообще может привести к зависанию иксов. Так что этот вариант отпадает.
    Покапавшись в интернете, ничего толкового по поводу игр, найти не смог. Остановился только на одном варианте, и то не идеальном, но все же. Вариант состоит в том, чтобы для отключения второго монитора, использовать утилиту 'xrandr'

    1. Устанавливаем 'xrandr', если она еще не установлена
    $
    sudo apt-get install xrandr

    2. При запуске программы без параметров, я получил следующие данные:
    Screen 0: minimum 2560 x 1024, current 2560 x 1024, maximum 2560 x 1024
    default connected 2560x1024+0+0 0mm x 0mm
    2560x1024 50.0*
    что означает, что у меня в списке размеров экрана 'metamodes', только одно разрешение '2560x1024'.
    3. Чтобы игра запускалась в области одного монитора, надо добавить соответствующий 'metamode', который будет сужать область экрана до нужного нам разрешения 1280x1024 (или другого, например 800x600, 640x480).
    4. Для этого редактируем файл '/etc/X11/xorg.conf'
    $
    sudo nano /etc/X11/xorg.conf

    ищем там строку, типа:
    Option "metamodes" "DFP-0: 1280x1024 +0+0, DFP-1: 1280x1024 +1280+0"
    и изменяем ее на
    Option "metamodes" "DFP-0: 1280x1024 +0+0, DFP-1: 1280x1024 +1280+0;DFP-0: 1280x1024 +0+0, DFP-1: 1280x1024 +0+0"
    Здесь немного поясню. DFP-0 и DFP-1 - первый и второй монитор соответственно.
    Ну, а во втором metamod'е, я для второго монитора поставил разрешение '1280x1024 +0+0', потому-что, если поставить '0x0 +0+0' - то будет глюк с панелями гнома, как я уже описывал выше. Но при '1280x1024 +0+0' - второй монитор будет дублировать вывод с первого монитора, кому-то это может не понравиться, мне как-то все равно, главное что игра выводится на одном мониторе :)
    5. Теперь перезапускаем иксы и пробуем менять разрешение с помощью 'xrandr'
    $
    xrandr -s 1280x1024

    Все, теперь у вас используется область только первого монитора, можете приступать к игре.
    Единственный минус такого переключения, состоит в том, что если у вас в области второго монитора есть гномовские панели, они перелетают в область первого монитора, а после того, как вы снова включаете второй монитор, их надо перемещать на свое прежнее место. Правда это касается только панелей с включенным параметром 'Расширять до предела', если он отключен и панель зафиксирована по координатам, то такая панель возвращается на свое прежнее место.
    6. После игры, возвращаем прежнее разрешение экрана:
    $
    xrandr -s 2560x1024


    Вообще 'xrandr' много чего еще умеет, я только привел то, что было нужно мне. Кстати кому не нравится использовать консольный 'xrandr', могут использовать графический 'grandr'.

    P.S. Если кто-то знает еще какие-то приемы работы с двумя мониторами, буду очень признателен если вы их опишите в комментах, я их с удовольствием включу в статью.