Делаю медиасистему, в качестве оболочки использую xbmc, но хочется еще и рабочий стол иметь на котором будет браузер и пару дендивских игра.
Подскажите концепцию этого решение ?
Концепций море, зависит от избранного вами пути. Какой дистр выбрали, какие опции ядра, файловой системы, какие проигрыватели хотите, кодеки и т.д. и т.п.
Я телепат только на троечку, дальше 2 метров мысли читать не умею.
Использую ArchLinux, в данный момент установлен xbmc и openbox, запущено это на разных икс серверах и переключаюсь я между ними с пульта ду командами chvt 7/8. По мне, так запуск двух исксервером это тяжеловато, поэтому искал решение запуска xbmc и браузера на разных рабочих столах опенбокса, многочисленные эксперименты показали, что xbmc никак не хочет оставаться на том рабочем столе на котором открыт, и всегда перелазиет на активный рабочий стол.
Медиаплеер готов, но переключение иксов мне не нравится, если кто знает лучшее решение, буду рад услышать!
#! /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
if [ "`ps -C xbmc.bin -o comm=`" != 'xbmc.bin' ]; then
nohup xbmc &
exit 1
fi &
# 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
я так запускаю на ЖК телеке который по HDMI к видюхе подцеплен
сей скрипт запускаю через irexec
text
begin irexec
begin
prog = irexec
button = KEY_POWER
# по нажатию кнопки KEY_POWER запускается запускается xbmc и управление передается в xbmc (согласно файлу Lircmap).
repeat = 0
config = sh ~/.scripts/irexec/xbmc.sh
mode = xbmc
end
##
### MediaKeys
begin
prog = irexec
button = KEY_SUBTITLE
mode = xbmc
repeat = 1
delay = 5
config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_ZOOM
mode = xbmc
repeat = 1
delay = 5
config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
##
end irexec
begin xbmc
# Получается, что описывать обработку кнопок для xbmc в файле .lircrc не нужно (не считая кнопки для выхода из программы).
# При нажатии кнопки power запускается одновременно две функции обработки:
# 1. Стандартная xbmc(выход из программы, желательно не настраивать в этом случае на выключение)
# 2. Переход(возврат) в mode=irexec (см. ниже)
begin
prog = irexec
button = KEY_POWER
repeat = 0
mode = irexec
end
begin
prog = irexec
button = KEY_SUBTITLE
repeat = 0
mode = irexec
end
begin
prog = irexec
button = KEY_ZOOM
repeat = 0
mode = irexec
end
end xbmc
в итоге все работает на ура. Вот сейчас жена на телеке фильм смотрит, а я вот пишу сей пост на компе
Большое спасибо, наконец то я нашел, что искал, не знал что wmctrl так многофункциональна, я ей только рабочии столы переключал.
Теперь xbmc не пытается перелезть на другой рабочий стол,только немного дергается при перемещении на другой рабочий стол.
wmctrl -x -r XBMC Media Center -b toggle,fullscreen
Кстати, не знаете почему по умолчанию она ведет себя ни как отдельное приложение, а как DE ?
flags8192 у тебя в коде, где проверка, запущено окно или нет
[console]# 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[/console]
в цикле секундная задержка, я ее убрал и поставил счетчик, котороый показывает сколько раз цикл выполнился, в среднем этот цикл на моей машине выполняется 60 раз, пока не запустится окно xbmc.
Без твоей секундной задержки xbmc запускается, так что даже рамка окна не успевает появиться ( с секундной зажержкой рамку окна видно, не красиво).
Мне кажется 60 циклов это не критично, но создает красивый эффект, как будто бы все запустилось как положено.
flags8192 у тебя в коде, где проверка, запущено окно или нет
[console]# 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[/console]
в цикле секундная задержка, я ее убрал и поставил счетчик, котороый показывает сколько раз цикл выполнился, в среднем этот цикл на моей машине выполняется 60 раз, пока не запустится окно xbmc.
Без твоей секундной задержки xbmc запускается, так что даже рамка окна не успевает появиться ( с секундной зажержкой рамку окна видно, не красиво).
Мне кажется 60 циклов это не критично, но создает красивый эффект, как будто бы все запустилось как положено.
вот
text
# Start XBMC without blocking this script
if [ "`ps -C xbmc.bin -o comm=`" != 'xbmc.bin' ]; then
nohup xbmc &
exit 1
fi &
flags8192 у тебя в коде, где проверка, запущено окно или нет
[console]# 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[/console]
в цикле секундная задержка, я ее убрал и поставил счетчик, котороый показывает сколько раз цикл выполнился, в среднем этот цикл на моей машине выполняется 60 раз, пока не запустится окно xbmc.
Без твоей секундной задержки xbmc запускается, так что даже рамка окна не успевает появиться ( с секундной зажержкой рамку окна видно, не красиво).
Мне кажется 60 циклов это не критично, но создает красивый эффект, как будто бы все запустилось как положено.
вот
text
# Start XBMC without blocking this script
if [ "`ps -C xbmc.bin -o comm=`" != 'xbmc.bin' ]; then
nohup xbmc &
exit 1
fi &
В данный момент пока не перешел на систмему с одним икс сервером и двумя рабочими столами, а используя два икс сервера, один для xbmc, другой для openbox. Для openbox настроил пульт ДУ, чтобы курсор передвигать кнопками с пульта. Настройка заключается в следующем:
1) Создать новый xorg.conf (у меня xorg_ir.conf) с дополнительной секцией в которой описан девайс мыши - пульт ду
2) Демон, который преобразует нажатия кнопкок пульта в действия мыши называется lircmd и его нужно настроить:
/etc/lircmd.conf
text
PROTOCOL MouseSystems
MOVE_N Kreolz down
MOVE_S Kreolz up
MOVE_W Kreolz left
MOVE_E Kreolz right
BUTTON1_CLICK Kreolz ok
Где Kreolz это название пульта из файла /etc/lirc/lircd.conf
down,up,left,right,ok это название кнопоки из /etc/lirc/lircd.conf
Сначало запускаем демон с опцией -u, это создает устройство /dev/input/mouse1, которое прописано в xorg.conf
text
lircmd -u
И запускаем искы
text
xinit openbox.sh -- :1 vt8 -config xorg_ir.conf
Теперь с пульта можно передвигать курсор, если приспособиться становится удобно просматривать интернет.
Есть проблема в этом!!!
XBMC управляется с пульта, настройки для пульта прописаны в Lircmap.xml, и там прописаны теже кнопки, что и для управления мышью.
Когда я упраляю xbmc с пульта, то все нормально, так как он запущен со своим xorg.conf, но если я перехожу в openbox и там начинаю управлять с пульта, то xbmc отлавливает нажатия и выполняет их у себя. Как бы мне заблокировать управлния с пульта для xbmc, когда я в openbox ???
В данный момент пока не перешел на систмему с одним икс сервером и двумя рабочими столами, а используя два икс сервера, один для xbmc, другой для openbox. Для openbox настроил пульт ДУ, чтобы курсор передвигать кнопками с пульта. Настройка заключается в следующем:
1) Создать новый xorg.conf (у меня xorg_ir.conf) с дополнительной секцией в которой описан девайс мыши - пульт ду
2) Демон, который преобразует нажатия кнопкок пульта в действия мыши называется lircmd и его нужно настроить:
/etc/lircmd.conf
text
PROTOCOL MouseSystems
MOVE_N Kreolz down
MOVE_S Kreolz up
MOVE_W Kreolz left
MOVE_E Kreolz right
BUTTON1_CLICK Kreolz ok
Где Kreolz это название пульта из файла /etc/lirc/lircd.conf
down,up,left,right,ok это название кнопоки из /etc/lirc/lircd.conf
Сначало запускаем демон с опцией -u, это создает устройство /dev/input/mouse1, которое прописано в xorg.conf
text
lircmd -u
И запускаем искы
text
xinit openbox.sh -- :1 vt8 -config xorg_ir.conf
Теперь с пульта можно передвигать курсор, если приспособиться становится удобно просматривать интернет.
Есть проблема в этом!!!
XBMC управляется с пульта, настройки для пульта прописаны в Lircmap.xml, и там прописаны теже кнопки, что и для управления мышью.
Когда я упраляю xbmc с пульта, то все нормально, так как он запущен со своим xorg.conf, но если я перехожу в openbox и там начинаю управлять с пульта, то xbmc отлавливает нажатия и выполняет их у себя. Как бы мне заблокировать управлния с пульта для xbmc, когда я в openbox ???
Как у тебя я сделал, но пока не использую. Надо решить проблему, когда я на рабочем столе, где xbmc, пульт должен работать только для xbmc, а когда я на рабочем столе, где openbox, то там уже другие настройки пульта.
Интересно можно ли как нибудь сделать проверкой, если 0 рабочий стол, то используется один конфиг lirc, если 1 рабочий стол то другой??