Подключение второго монитора или телевизора в Unity (Ubuntu 11.04/11.10)

  •   15.07.2011
  •   78 комментариев
  •   Ubuntu

Возникла у меня необходимость подключить в Ubuntu 11.04 второй монитор (к видеокарте производства Nvidia). Как оказалось, при активированной оболочке Unity это действо связано с некоторыми сложностями. В этой статье я расскажу о том, как мне удалось использовать эти сложности себе на пользу и успешно настроить работу второго монитора (превратить его в своеобразный медиа-центр), не переходя при этом на классический Gnome 2 (то есть оставаясь на Unity).

Подключение второго монитора или телевизора в Unity (Ubuntu 11.04/11.10)

Те же советы должны подойти и при подключении телевизора в качестве второго монитора, а также при подключении внешнего монитора к ноутбуку. И та же инструкция подходит для Ubuntu 11.10.

Итак, ниже привожу пошаговую инструкцию по настройке. Я везде говорю «второй монитор», однако при необходимости это словосочетание можно смело менять на «телевизор», инструкции будут те же.

1

Подключение монитора или телевизора

Вполне логично, что первое действие, которое нужно сделать — это физически подключить монитор (или телевизор) к вашей видеокарте. Естественно, на видеокарте должны присутствовать необходимые для этого разъемы. В моем случае это видеокарта Nvidia GF 8600GT, на которой присутствует два разъема — аналоговый (VGA) и цифровой (DVI).
К каждому из этих разъемов я и подсоединил по монитору.

Подключение монитора или телевизора
2

Выбор режима работы второго монитора

Надеюсь, проприетарные драйвера от Nvidia у вас уже установлены?
Если нет — первым делом установите их. Если да — откройте «NVIDIA X Server Settings» и активируйте второй монитор. После этого нужно выбрать режим работы второго монитора.

В режиме «TwinView» второй монитор становится продолжением первого, то есть рабочий стол увеличивается на размер второго монитора. Этот режим вполне сносно работает из коробки, и дополнительно настраивать его (даже в Unity) не нужно. Однако меня этот режим не устраивает по многим причинам. Например, если один человек работает на первом мониторе, а второй в это время смотрит фильм на втором, то при переключении на другой рабочий стол картинка меняется и на том мониторе, на котором смотрят фильм, что неприемлемо.

Другое дело — режим «Separate X screen». В этом режиме производится эмуляция запуска второго X-сервера. Знатоки утверждают, что реально вторые X-сы не стартуют, но это уже технические подробности, знать которые нам сейчас не обязательно. Итак, выбираем режим «Separate X screen» и сохраняем конфигурацию нажатием на кнопку «Save to X Configuration File». После этого появится диалог, где нам предложат ввести пароль админа и перезаписать файл «/etc/X11/xorg.conf». Перезаписываем.

Настройки Nvidia, режим Separate X screen

Перезагружаемся и видим странную картину — на первом дисплее загружена оболочка Unity, а вот на втором — голые X-ы. В этом можно убедиться, подвигав мышкой и перекинув курсор на второй дисплей — он превратится в крестик. Такой вот баг наблюдается, но немного поразмыслив, я решил, что его можно использовать в свою пользу.

3

Запуск на втором мониторе оконного менеджера

Запустить на втором мониторе еще одну Unity — задача нетривиальная. Но если мы хотим превратить его в подобие мультимедиа-центра, то нам это и не нужно. А вот запустить там оконный менеджер все же не помешает, иначе могут возникнуть сложности на следующих шагах.

У нас есть выбор как минимум из двух оконных менеджеров — «Compiz» и «Metacity». Я выбрал Metacity, поскольку, во-первых, Compiz иногда ведет себя неадекватно, а во-вторых — Metacity гораздо легче, а эффекты Компиза нам все равно не понадобятся.

Запустить Metacity на втором мониторе очень просто, для этого достаточно выполнить в консоли команду:

DISPLAY=:0.1 metacity

Кстати говоря, той же командой можно запустить на втором дисплее любую программу, заменив metacity на соответствующую команду.

Убедиться в том, что Metacity действительно запустился, можно по курсору, который теперь превратится из ужасного крестика в элегантную стрелочку 🙂
Мало того, теперь на втором мониторе мы даже можем переключаться между рабочими столами, используя для этого соответствующие комбинации клавиш.

Теперь нам нужно добавить вышеприведенную команду в автозагрузку, но записать ее в чистом виде не получится, поэтому в любом текстовом редакторе создадим простенький bash-скрипт следующего содержания:

#! /bin/bash
DISPLAY=:0.1 metacity

Сохраните этот файл под любым именем в любом месте на диске, после чего сделайте его исполняемым и пропишите в автозагрузку при помощи системного диалога «Автоматически запускаемые приложения».

4

Настройка переключения между мониторами посредством клавиатуры

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

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

Вот пример соответствующей секции из моего xorg.conf:

Section        "ServerLayout"
Identifier     "Layout0"
Screen         0  "Screen0" 0 0
Screen      1  "Screen1" Relative "Screen0" 1380 0
InputDevice    "Keyboard0" "CoreKeyboard"
InputDevice    "Mouse0" "CorePointer"
Option         "Xinerama" "0"
EndSection

Если теперь перезагрузиться, то мы увидим, что добраться курсором мыши до второго монитора уже нельзя. Как же на него переключаться? В этом нам поможет утилита Switchscreen. Скачайте и распакуйте ее. После этого перейдите в консоли в каталог «switchscreen-0.1.1» (командой cd) и выполните последовательно следующие три команды:

make
sudo cp togglescreen.sh /usr/local/bin/
sudo cp switchscreen /usr/local/bin/

Утилита установлена, и следующее, что нужно сделать — это назначить клавиатурную комбинацию для переключения между столами. Для этого откройте системный диалог «Комбинации клавиш клавиатуры», нажмите на кнопку «Добавить», в поле «Название» впишите «Переключение между экранами», а в поле «команда» — /usr/local/bin/togglescreen.sh. После этого назначьте удобную для вас комбинацию клавиш (у меня это Ctrl+Super+Enter).
Понажимайте эту комбинацию, и если вы все сделали правильно, то при этом вы будете переключаться между дисплеями.

Настройка переключения между мониторами посредством клавиатуры
5

Выбор медиа-центра для отображения на втором экране

Я могу порекомендовать как минимум два медиа-центра для Linux, которые обладают широчайшим функционалом — позволяют просматривать видео, изображения, слушать музыку, причем не только с диска, но и используя интернет-сервисы. Также они изобилуют дополнительными мелкими функциями, например отображают погоду в вашем городе. Речь идет о XBMC (update: теперь он называется Kodi) и Boxee.

Какой из этих двух медиа-центров выбрать — дело ваше, могу только сказать, что XMBC немного проще и лучше русифицирован, а Boxee больше ориентирован на различные социальные фишки, и требует для полноценной работы регистрации на сервисе и в некоторых сопутствующих сервисах.

В конце концов, если ничего кроме просмотра видео вам не нужно, вы можете выводить на втором мониторе не навороченный медиа-центр, а любой проигрыватель, например VLC или SMPlayer.

Update (июль 2017)

Судя по всему, Boxee продался Samsung-у, и теперь из двух предложенных вариантов остался только XBMC, вернее Kodi.

6

Настройка отображения медиа-центра в полноэкранном режиме

При запуске любого из указанных медиа-центров (XBMC или Boxee) на втором мониторе возникает еще одна проблема. При запуске в полноэкранном режиме каждый из этих медиа-центров блокирует на себя клавиатуру и мышь, соответственно переключиться на первый экран возможности нет до тех пор, пока не будет завершена работа медиа-центра. Если же запускать программу в оконном режиме, то она запускается в маленьком окошке, да еще и с ненужным в этом случае оформлением окна. Поэтому мы пойдем на хитрость — создадим скрипт, который будет запускать медиа-центр в оконном режиме, но при этом будет скрывать оформление окна и растягивать его на весь экран.

Для начала установите пакет «wmctrl» (если он у вас еще не установлен):

sudo apt-get install wmctrl

Вот пример скрипта для запуска XMBC:

#!/bin/bash
# Launch XBMC in windowed mode, then use wmctrl to remove the titlebar

# Select display 1
DISPLAY=:0.1

# Start XBMC without blocking this script
xbmc & 

# Wait for the XBMC window to appear
status=0
while [ $status -eq 0 ]
do
sleep 1
status=`wmctrl -x -l | grep "XBMC Media Center" | wc -l | awk '{print $1}'`
done

# Force XBMC window to fullscreen
wmctrl -x -r XBMC Media Center.XBMC Media Center -b toggle,fullscreen

Этот скрипт нужно при помощи текстового редактора сохранить в файл и сделать этот файл исполняемым. При его запуске XBMC будет запускаться на втором мониторе на полный экран, но при этом легко можно будет вернуть фокус на первый монитор.

Дальнейшие действия зависят от ваших потребностей — можно добавить ярлык запуска скрипта в главное меню, можно повесить кнопку запуска на панели Unity, а можно прописать его в автозагрузку, если вы хотите, чтобы медиа-центр запускался на втором мониторе автоматически при загрузке системы.

Точно такой же скрипт можно сделать для запуска Boxee:

#!/bin/bash
# Launch Boxee in windowed mode, then use wmctrl to remove the titlebar

# Select display 1
DISPLAY=:0.1

# Start Boxee without blocking this script
/opt/boxee/run-boxee-desktop &

# Wait for the Boxee window to appear
status=0
while [ $status -eq 0 ]
do
sleep 1
status=`wmctrl -x -l | grep "Boxee" | wc -l | awk '{print $1}'`
done

# Force Boxee window to fullscreen
wmctrl -x -r Boxee.Boxee -b toggle,fullscreen

Естественно, скрипт можно модифицировать на свое усмотрение.
Вот пример модифицированного скрипта для запуска Boxee:

#! /bin/bash
# runs xbmc in a normal window, in Screen 1 (TV)
# then it brings it up to full screen
# this is to avoid xbmc trapping the mouse
STATUS=0
WINCLASS=Boxee.Boxee
DISPLAY=:0.1
SLEEPDELAY=3
# disable screensaver
gnome-screensaver-command -i &
/opt/boxee/run-boxee-desktop &
while [ $STATUS -eq 0 ]
do
sleep $SLEEPDELAY
STATUS=`wmctrl -x -l | grep $WINCLASS | wc -l | awk '{print $1}'`
done
wmctrl -x -r $WINCLASS -b toggle,fullscreen &
sleep 3
/usr/local/bin/switchscreen 0 &

Вот и все, наслаждайтесь! 🙂
Если что-то непонятно, или хотите что-то добавить — пишите пожалуйста в комментарии.


Оставить комментарий

78 комментариев на «“Подключение второго монитора или телевизора в Unity (Ubuntu 11.04/11.10)”»

    • Все, что я описал, очень сильно привязано к софтине от Nvidia («NVIDIA X Server Settings»). Поэтому такой сценарий для ATI не подойдет.
      Но для ATI возможно существуют другие решения. Подробностей не знаю. Я в свое время (давно уже) из-за глюков с ATI выкинул две ATI-шные карточки и заменил их на Nvidia. Доволен.

  1. О! Промучившись вчера весь день с настройкой я случайно наткнулся нв твой сайт. Сейчас буду пробовать (так как я решил оставить Ubuntu-classiс режим из-за проблем с Unity на телевизоре, а именно, верхним меню. Но и с metacity были проблемы — стартовал ТОЛЬКО на основном мониторе, на втором — крестик. Все TwinView проблемы пришлось словить, все Xinerama баги тоже словил. Уже было отчаялся.
    Спасибо за решение, буду пробовать.

    • Кстати, у меня не собирается switchscreen
      Не хватает Xlib.h
      Вроде как надо поставить

      sudo apt-get install libx11-dev
  2. Скажи, пожалуйста, а где найти «Комбинации клавиш клавиатуры» в 11.10?

      • Спасибо. С этим разобрался, а вот с переключением экранов не получается:
        Произошла ошибка при попытке запустить команду (/usr/local/bin/togglescreen.sh),
        которая привязана к комбинации (Return)

        • Ну так вы судя по всему назначили для переключения одну-единственн ую клавишу Enter. Вы уверены, что хотите переключаться на соседний монитор при каждом нажатии этой клавиши? 😉

          Вы назначьте что-нибудь посложнее, чтобы наверняка нигде больше не использовалось (например, Ctrl+Win+Enter) .

          • 🙂 Нет, конечно. Просто клавиша Ctrl не отобразилась, очевидно потому, что она в скобках. Комбинация Ctrl+Enter. С окошком об ошибке разобрался — владелец файла был рут, поставил себя, окошко пропало, но экраны не переключаются.

          • Файл togglescreen.sh исполняемый (назначены ли права на запуск)?

            P.S.: Комбинация Ctrl+Enter тоже довольно ходовая, используется во многих приложениях.

          • Сейчас ситуация такая — если выполнить DISPLAY=:0.1 krusader, то на втором мониторе запустится krusader, но мышку он за собой не потянет и переключиться между экранами не получается. А если выполнить DISPLAY=:0.1 xbmc, то он запустится, утянет за собой мышку и вернуть мышку на основной монитор получится только после закрытия xbmc. Может проще в аську?

          • В случае с XBMC вернуть мышку получается только после закрытия скорее всего потому, что не отключен полноэкранный режим. Создание скрипта, приведенного в статье, решает эту проблему — XBMC в этом случае запускается в оконном режиме, но окно без оформления и разворачивается на весь экран. Визуально он выглядит так же, как в полноэкранном режиме, но не блокирует на себя клавиатуру и мышь.

            По поводу того, почему не получается переключиться между экранами — у меня больше идей нет. Можете просто оставить возможность переключения мышью между экранами, когда курсор свободно гуляет туда-сюда. Эта возможность должна работать изначально.

            Может проще в аську?

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

  3. 1. xbmc блокирует на себя мышку всегда, запущен через скрипт или через команду, если запущен полноэкоанно.
    2. В настройках хвмс указано запускаться полноэкранно, п.ч. если указано в окне, то он так и запустится в окне даже если через скрипт. При этом управляется только мышкой и не управляется пультом ДУ. И при этом мышку можно тягать туда-сюда.

    • У меня XBMC блокирует мышку только тогда, когда в его настройках включен полноэкранный режим (и неважно, запускается он напрямую или через скрипт).

      Если же в настройках включить оконный режим и запускать через скрипт, то (как я уже писал выше) XBMC разворачивается на весь экран и при этом не блокирует клавиатуру и мышь, переключение на соседний десктоп производится без проблем по указанной в настройках комбинации клавиш.

      Итого — ваша проблема у меня не воспроизводится , причин проблемы я не знаю, посему помочь не могу.
      Ясно только, что не срабатывает скрипт, раз XBMC запускается в окне. Основное назначение скрипта — именно разворачивание окна на полный экран без использования встроенного полноэкранного режима.

  4. Все, со всем разобрался, все работает, только пульт ДУ то управляет хвмс, то нет.

    • Не подскажешь, как разобрался? Та же проблема: в настройках xbmc указано запускаться в окне, но через скрипт запускается все равно в окне, не переключается в полноэкранный режим. Если в настройках указать фулскрин, то запускается на полный экран, но блокирует мышь и клавиатуру на себя.

  5. Спасибо, интересная статья.

    Один вопрос:
    У меня телевизор стоит в другой комнате. Управлять медиацентром с пульта ДУ я не люблю (считаю мышкой практичнее).
    Есть ли возможность «привязать» к xbmc свою мышку (или свою мышку и клаву)? Идея заключается в просмотре фильмов на одном экране одновременно с просмотром WWW на другом. Куда копать?

    • Это вам уже нужно скорее всего делать два независимых рабочих места на одном системнике. Покопайте в сторону «Multiseat».

  6. Доброго времени суток!
    Большое спасибо за документацию, очень удобное решение!
    Прошу помощи!
    11.10, почти сделано по статье (см. выше)
    Не делал сдвига в 100, ну и соответственно нет переключения по хоткеям.
    Что касается XBMC — все на уровне, но вот с основной unity — беда. При запуске на основном мониторе Firefox (предположим) Верхняя часть окна (в полно экранном режиме) закрывается (не знаю как правильно назвать) панелью состояния… и вкладок не видно. С остальными окнами та же история. Если отключить режим «Separate X screen» все становится нормально, но меня как вы понимаете такой расклад не радует… Может кто сталкивался?

  7. Есть проблемы.
    Если приглядеться, то после слова в заголовке «монитора» видно, где кончается вкладка.
    Ну и не полноэкранный режим, тут все ок, но жутко неудобно…

    [удалены битые ссылки на скриншоты]

    • У меня та же беда с некоторого времени, пока не поборол.
      Помогает перезапуск Unity командой unity --replace (и то не всегда с первого раза), но это конечно не самый лучший выход. Плюс я пока приспособился частично решать проблему выравниванием окон по сетке (см. опцию «Grid» в CCSM).

      А вообще, Unity своей нестабильностью и глючностью раздражает порядком. Одно только пропадание заголовков окон чего стоит (решается, опять же, при помощи unity --replace, это одна из моих самых ходовых команд в последнее время). Концепция у Unity замечательная, в ней меня устраивает практически все. А вот реализация подкачала — уже два релиза подряд Unity является дефолтной оболочкой, и все никак не могут ее допилить до более-менее стабильного состояния. Нехорошо.

      Очень надеюсь, что выходом LTS-версии (12.04) все эти глюки починят. Иначе я всерьез задумаюсь о полном переходе на Lubuntu — эта операционка в последнее время радует меня все больше и больше. Тоже не без проблем, но там они по крайней мере легко решаемы.

    • Вроде вылечил, но не отписался.
      На 2-м мониторе пускаю unity вместо metaciti и сразу xbmc:

      #! /bin/bash
      DISPLAY=:0.1 unity &
      /путь к скрипту

      Раз 6-7 ребутался, открывал разные окна, переходил на xbmc и обратно. Пока полет нормальный.

    • Спасибо за рецепт.
      Сегодня-завтра попробую, потом отпишусь о результате.

    • Проблема вернулась, даже после ребута остается… только --replace помогает.
      Мысли…
      При 1-м раб столе, такого поведения не наблюдалось.
      Может если установить официальный драйвер вместо проприетарного она уйдет?
      З.Ы. рою дальше, результаты отпишу

    • Есть еще варианты:
      1. Сброс настроек Compiz и перезапуск Unity.

      gconftool-2 --recursive-uns et /apps/compiz-1
      unity --reset

      2. compiz-config — настройка окружения (unity держит)
      Проверить смогу только к субботе

    • В субботу поставил обновы (current версия драйверов, и пара тройка либ), проблема ушла окончательно. Поставил обратно metacity.

      • Очень хочется верить, что она не вернется обратно 🙂
        Погоняю у себя — отпишусь.

      • В общем у меня проблема никуда не ушла.
        После установки всех последних обновлений (и последующей перезагрузки) ничего не изменилось.

      • Наверное, имеется ввиду Gnome Shell?
        Что-то пока не лежит у меня к нему душа.
        Потерплю до выхода 12.04 — там вроде как многомониторная конфигурация должна работать из коробки. Если опять будут проблемы с Unity — тогда задумаюсь о переходе на Gnome Shell или совсем радикально — на LXDE (Lubuntu).

        • Да, именно он.
          Действительно, очень сильно сильно раздражает управление многомониторной конфигурацией посредством nvidia-settings… Хотя она уже заложена в релизе.

  8. # zhart, большое спасибо за старания, но у меня почему-то возникают трудности при реализации данной схемы!
    А проблема у меня со многими вещами 🙂

    Имеется: Ubuntu 11.10 64bit + NVidia GTS250 + Samsung SyncMaster 2223nw (монитор / разрешение: 1680 х 1050) + Samsung LCD (телевизор / разрешение: 1920 х 1080 (подключен через переходник DVI-HDMI)).

    С первыми тремя шагами вашего руководства всё ОК. Но вот с 4го начинаются траблы! При установке switchscreen и его назначении, после нажатия хоткея курсор возвращается в центр основного монитора, даже если он уже на нём — то есть: не меняет дисплеи, а просто центрует курсор на основном мониторе вне зависимости от того на каком мониторе находится курсор…

    • Далее установил XBMC — включаю — в настройках выбираю оконный режим — завожу скрипт — и на телевизоре xbmc появится на секунду в оконном режиме и тут же закрывается вместе со скриптом. Путём изменения в скрипте параметра «sleep 1» на значение к примеру 10 — окно плеера оставалось активным дольше, но тем не менее закрывалось через 10 секунд и т.д.
      wmctrl — установлен.
      Да, и вот ещё: без разграничения мониторов (то есть чтобы мышь могла бегать между ними) при включении XBMC (полноэкранный режим) мышь и клавиатура блокируются на нём и уйти невозможно даже хоткеем со скриптом…

      Очень надеюсь на вашу помощь.
      Заранее большое спасибо!
      ПС: В линухе я нуб полнейший, по сему прошу ответ дать, как можно более развёрнутый.

    • Да, и после активации второго монитора по вашей инструкции: при выведения компьютера из спящего режима — на обоих мониторах чёрный экран и видно только курсор мышь — помогает только ребут ((

      Будут идеи?

    • С большинством из описанных вами проблем я не сталкивался, поэтому с ответами на все из них затрудняюсь.

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

      А вот блокировка мыши и клавиатуры на себя — это стандартное поведение XBMC при запуске в стандартном полноэкранном режиме. Так что проверьте, чтобы в настройках XBMC был выбран именно оконный режим. Смысл манипуляций со скриптом — избавиться от блокировки мыши и клавиатуры благодаря запуску в оконном режиме. При этом оконный режим визуально выглядит как полноэкранный, поскольку благодаря скрипту окно растягивается на весь экран и лишается декораций.

      С проблемами спящего режима я тоже не сталкивался, поскольку режим этот не использую. Вероятнее всего — проблема с драйверами.

      А вообще, как я успел заметить, Ubuntu до версии 11.10 включительно крайне нестабильно работает с обоими режимами («TwinView» и «Separate X screen»).

      Зато в 12.04 режим «TwinView» починили и он работает гораздо лучше, чем на предыдущих версиях Ubuntu. Я сейчас пишу эти строки, глядя на два монитора в бете Ubuntu 12.04, и очень доволен работой «TwinView». Правда это все же бета, и в ней присутствует куча других нестабильностей . Но с «TwinView» действительно все в порядке. А вот «Separate X screen» я даже не пробовал в 12.04, что-то мне подсказывает, что ничего хорошего из этого не выйдет. Плюс некогда — помимо игр с системой нужно заниматься ежедневной работой.
      Ждем стабильного релиза 12.04 🙂

    • беда (
      с TwinView впринципе меня всё полностью устраивает !
      За исключением одного — Когда на телевизор вытаскиваю фильм, в нём изображение как бы рвётся … По видео бежит полоса сверху вниз какбы (сложно объяснить ))) разрывающая изображение. Пробовал всё и кодеки менять и плееры, не знаю что делать (
      А вот с вашим советом видео идёт хорошо, да вот только в момент просмотра фильма — компьютер блокирован =(
      Может посоветуете чтонить — как решить проблему с рваным видео !?

    • Так а проверяли то, о чем я говорил — в настройках XBMC точно выставлен оконный режим?
      По рваному видео ничего подсказать не могу к сожалению.

    • Конечно, проверял оконный режим, и с ним и без него не катит (
      Есть мнение, что проблема в разрядности ядра то есть в том, что ос 64бита установлена.
      Может какие-то дополнительные модули нужно ставить?

    • Кстати, вот ещё вопросик …
      При выполнении скрипта на запуск плеера — после выполнения окно терминала должно закрыться или оставаться активным !?
      Если должно пропадать, то возможно проблема кроется где-то в том, что при выполнении скрипта открывается окно терминала и в нём бегут строки — после чего появляется ХБМС, но окно терминала остаётся активным и в нём повторяющиеся строки:

      (FEH.py:3600): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «pixmap»,

      Также окно ХБМС открыто не на весь экран.

      ПС: Если есть желание помочь мне разобраться с этой бедой, то может организуем тандемчик Skype+TeamViewer?

    • Кстати вот ещё заметил, цифра в строке (FEH.py:3600): Gtk-WARNING **: Загружаемый модуль тем не найден в module_path: «pixmap»,
      с каждым запуском изменяется …

    • Так, проблема с злощастной строкой решилась!

      sudo su
      apt-get install gtk2-engines-pixbuf

      Но теперь обстоятельства таковы:
      при запуске скрипта на оболочку второго дисплея (DISPLAY=:0.1 metacity) в терминале пишет:

      Предупреждение менеджера окон: У экрана 0 дисплея «:0.1» уже есть менеджер окон. Попробуйте использовать параметр —replace, чтобы заместить текущий менеджер окон.

      Хотя на втором дисплее крестик меняется на стрелочку…
      При старте скрипта ХБМС прога открывается, но в оконном режиме (может слишком большое разрешение дисплея 1920х1080?), и не забирает на себя клавиатуру…
      Также активно пустое окно терминала, которое не закрывается даже после закрытия программы…

      Идеи?…

    • Проблема с переключателем дисплеев также актуатльна…
      Может выложите свой файл (togglescreen.sh)?

      • Так я в этом файле не менял ничего. Он у меня ровно такой, как в указанном в статье архиве.

      • Нет, вы меня не поняли …
        Я имел ввиду ваш конфиг /usr/local/bin/togglescreen.sh

        И как на счёт «тандема», a? 🙂

    • OMFG
      Разобрался !!! =-|
      Для того чтобы скрипт на запуск ХБМС работал нормально — нужно при двойном щелчке по файлу скрипта выбирать «Запустить», а не «Запустить в терминале». При выборе второго варианта — окно ХБМС просто появляется на долю секунды и закрывается (так как я писал выше !)

      ПС, я понимаю, что скорее всего уже надоел )
      Но, тем не менее…
      Проблема с переключателем мышки всё ещё актуальна…

    • С переключением по вашей методике разобраться так и не смог — не работает, хоть убейся ((
      Но нашёл немного другой способ ))

      Сделал 2 комбинации кнопок: одна для переключения курсора на телевизор, а вторая для переключения обратно на монитор.
      switchscreen 1 -c 960,540 и switchscreen 0 -c 840,525 соответственно…

      PS. Прошу включить мои терзания в статью )) Я думаю, они многим могут быть полезны.
      PSS. Дальше буду рыть в сторону решения проблемы о которой писал sd—Anti (проблема с верхней полоской «состояния»), как будут внятные идеи — отпишусь!

      • ОК, спасибо, что отписываетесь 🙂
        Думаю, ваши терзания будут очень полезны и в виде комментариев — их ведь люди тоже читают. Конфигурации у всех разные, и всех нюансов в статье все равно не учтешь, а в комментариях вполне можно расширить их список.

    • Если кому ещё интересно, то проблему с верхнеей полосой «состояния» удалось решить переходом на Unity 2D !
      Но к сожалению по непонятным причинам вернулась проблема с «рваным» видео ((( Вроде частота обновления монитора не та — в настройках ХБМС показывает что установлена 50Гц, где бы и как я её менять не пытался — всёравно показывает 50Гц =(

      В общем ушёл я с убунты обратно на вин.
      Буду ждать 12 версию!

  9. Спасибо за статью, но вылезла такая проблемка:
    При переключении на экран проектора все происходит нормально. А вот обратно на монитор фокус не возвращается. Начал экспериментировать и получил следующее: команда switchscreen 1 (переключение на проектор) работает отлично. И из терминала, и с помощью горячих клавиш. А вот вариант switchscreen 0 работает только из теминала… С помощью клавиш никак не переключается… Куда покопать можно?

    Видеокарта NVidia, система Убунту 12.04

    • Честно сказать — не знаю, у меня таких проблем не было.
      Вы эти команды вводите вручную, или используете скрипт «togglescreen.sh»?
      У меня при использовании скрипта никаких проблем не возникало, а запускать эти команды вручную даже не пробовал (не было надобности).

      • В том то и дело что разницы никакой нет. Скрипт тоже переключает только в одну сторону. Я так понял все что он делает это определяет какой экран активный, сохраняет позицию мыши и выдает туже самую команду switchscreen. Впечатления такие что при переключении на экран проектора отваливаются горячие клавиши… С другой стороны Ctrl+Alt+T работает и открывает терминал. И уже введя в него команду можно попасть на другой экран…

  10. Чего-то не получается запустить на разных экранах разные WM. На первом хочу оставить compiz а на втором metacity, но при DISPLAY=:0.1 metacity WM меняется как на втором экране так и на первом.
    Куда копать? Просто из-за compiz на втором экране жестоко тормозит xbmc.

  11. Огромное спасибо за статью!
    Давно пытался перейти на Linux но не мог настроить второй монитор для просмотра в браузере онлайн фильмов.
    Воспользовался Вашим советом и все получилось.
    Только запускаю не XMBC а FireFox и горячие клавиши и сдвиг на 100 не использую.

  12. Если ось win7:
    Гор клавиша win+P
    Переключение между монами с ярлыка:
    1. Создать ярлык: C:\Window s\System32\Disp laySwitch.exe 4
    2. Создать ярлык: C:\Window s\System32\Disp laySwitch.exe 1

  13. В Ubuntu 12.04 никак не удается вернуться обратно после switchscreen. Приходится нажимать Super, запускать терминал и вводить команду. Это уже раньше было в комментах. Клавиатура выпадает из фокуса. Всю голову сломал.

  14. Здравствуйте! Начал настройку по вашей статье, и при установке Switchscreen выдается ошибка

    make
    gcc -O2 -Wall -I/usr/X11R6/include -c -o switchscreen.o switchscreen.c
    switchscreen.c:23:22: фатальная ошибка: X11/Xlib.h: Нет такого файла или каталога
    компиляция прервана.
    make: *** [switchscreen.o ] Ошибка 1

    Подскажите, что делать дальше? Спасибо!

    • Этот вопрос снят, но есть другой. В настройках обоих мониторов в установлен режим Separate X screen, при этом при загрузке у второго монитора серый фон и указатель в виде креста. После выполнения команды DISPLAY=:0.1 metacity выдается ошибка:

      Предупреждение менеджера окон: У экрана 0 дисплея «:0.1» уже есть менеджер окон. Попробуйте использовать параметр —replace, чтобы заместить текущий менеджер окон

      …и курсор на втором мониторе при этом становится стрелочкой. Затем сделал все по вашей статье, добавил 100 к координатам (теперь курсор не убегает) и установил switchscreen. При нажатии на комбинацию клавиш переключения монитора курсор прост встает в центр моего основного монитора…
      Поясню, что мне необходимо просто крутить ролики на втором мониторе.

      • Откровенно говоря, я уже давно отказался от подобного режима двух мониторов, поскольку в данный момент режим «TwinView» меня вполне устраивает.

        У вас из нерешенных вопросов я так понимаю осталось только переключение курсора между мониторами.
        Не знаю, насколько хорошо скрипт switchscreen работает в последних версиях Ubuntu, возможно это с ним проблемы.
        В любом случае, switchscreen — это стороннее решение, и вы можете поискать другие решения подобного рода, но рабочие. Плюс при желании в любой момент можно вернуться к использованию мыши для переключения между мониторами.

        • Спасибо за ответ, вообще задача для меня такая: есть компьютер с ubuntu 12.04 + видеокарта GeForce 8600 GT, за этим ПК работаю я. За стеной моего кабинета висит телевизор, на котором необходимо проигрывать различные видеоролики. Сначала к нему был подключен плеер, т.е. приходилось выходить из кабинета и с пульта ТВ включать нужный файл. Тогда то и подумал подключить ТВ к компьютеру, и разделить картинку на 2 экрана, за одним я работаю как раньше, на втором видео, но при этом чтобы изображение монитора ТВ было видно и на моем ПК ( т.к. сам монитор за стенкой), т.е как по примеру удаленного доступа, сделал что нужно на том мониторе, переключился на свой,но только на одном ПК. Что посоветуете, и на сколько реально такое реализовать?

        • Плюс при желании в любой момент можно вернуться к использованию мыши для переключения между мониторами.

          да, а как переключится мышью на второй монитор? 😕 В окне «настройка экранов» у меня только один монитор…

          • В окне «настройка экранов» у меня только один монитор…

            Ну так может в этом и проблема?
            Телевизор должен определяться как второй монитор.
            Видеокарта же NVidia у вас? В конфигураторе «NVIDIA X Server Settings» на вкладке «X Server Display Configuration» два монитора?
            Потаскайте мышкой изображение рамки экрана, второй экран может прятаться под первым. Плюс в выпадающем списке «Selection» должны быть видны оба экрана.

          • Да, с этим тоже разобрался. Но это немного не то что нужно, не получится включать ролики на телевизоре..-(

  15. Автору привет)
    Такая ситуация: Все сделал, вроде все работает, но второй монитор вечно черный. НО на нем крутится скринсейвер (салют, пузырьки), если скринсейвер еще не запущен — монитор черный. Я так полагаю он все таки жив и работает, но почему он черный и я не могу на него переключиться? Если умер, то почему скринсейвер на нем крутится? (скринсейвер кстати крутится отличный от первого монитора, что указывает на работу в separate режиме)

  16. Вопрос по использованию двух мониторов:
    когда мышку перетаскиваю из одного на другой она как бы «цепляется» на границе… Как можно отключить это дурацкое «прохождение таможни»? Бесит просто, если не резко перетаскиваешь.
    Ubuntu 12.04.5 LTS x86_64, kernel 3.2.0-86-generi c

    • Вопрос снят, раздуплился)))
      Шестеренка -> System settings -> Displays -> перевести свич Sticky Edges в положение off.

  17. Xubuntu 15.04 — встало без особенных танцев с бубном. Единственное — перезагрузил систему.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *