[Решено] xbmc на отдельном рабочем столе

Собираю медиа проигрыватель, который должен уметь помимо проигрывания фильмов, еще лезть в интернет и запускать некоторые программы (office, игры).
Интернет и запуск программ не основные функции, поэтому по дефолту грузится оболочка медиапроигрывателя XBMC, а из нее уже можно запустить рабочий стол с программами или браузер.
Посовещавшись с форумом решил, что xbmc, браузер и рабочий стол должны находиться на трех разных рабочих столах, а переключаться между ними можно командой wmctrl -s {0,1,2}.
Работает это так:
Стартует компьютер, запускается openbox, сразу же за ним xbmc. На home menu xbmc вынесена кнопка, например “браузер” за которой сидит скрипт bash
#!/bin/bash
wmctrl -s 1
/usr/bin/chromium
или питон скрипт
import os
pid = os.spawnv(os.P_NOWAIT,"/usr/bin/wmctrl -s 0",[])
pid = os.spawnv(os.P_NOWAIT,"/usr/bin/chromium",[])
)питон почему то не работает)

Нижимаю на кнопку и у меня срабатывает скрипт, я перемещаюсь на экран с браузером, но браузер я вижу долю секунды, после чего вновь появляется xbmc. Когда я закрываю xbmc, я остаюсь на экране с браузром. Такое положение вещей меня не устраивает совсем.

Если же на экране, где должен быть запущен xbmc запустить команду wmctrl -s 1 но с задержкой sleep 5, и в этот момент запустить xbmc, то по окончанию задержки рабочий стол переключится с xbmc на браузер нормально, как и надо.

Вот как мне из xbmc переключиться на другой рабочий стол, чтобы его еще и увидеть ??
Никогда не сталкивался с xbmc, но почему-то мне кажется, что это он переключает на себя. Можно поискать у него в настройках – вдруг это его свойство отключаемо. Ещё можно поэкспериментировать с нажатием на кнопку – возможно, xbmc реагирует не только на нажатие, но и на отпускание.
Вижу два варианта:
1) Запустить выполнение команды wmctrl -s 0 из xbmc, но она должна выполниться в той же среде, что и выполняются команды запускаемые из терминала.
2) Запустить питон скрипт, который переключает рабочий стол, в питоне не силен, но уже начал поиск как решить эту проблему, буду рад помощи.
Вот первй вариант, запускаю через xterm вот так
#!/bin/bash
/usr/bin/xterm -e wmctrl -s 0
Но результат старый, рабочий стол переключается, браузер вижу на секунду, и потом опять xbmc.
Среда тут ни при чём. Стол переключает назад или xbmc, или openbox. Вы же сами писали, что эффект пропадает, если вставить в скрипт задержку перед переключением. Значит, ЭТО происходит не после выполнения скрипта, а после активности в окне xbmc. Например, при отпускании кнопки. Вы проверили отпускание?
Стол переключает назад или xbmc, или openbox.
Нет. Скрипт срабатывает нормально, я попадаю на первый рабочий стол, но и xbmc перемещается со второго на первый стол.
Значит, ЭТО происходит не после выполнения скрипта, а после активности в окне xbmc. Например, при отпускании кнопки.
Действие выполняется првильно если в консоли запускаю sleep 5 && wmctrl -s 0, а затем из этой или из другой консоли запускаю xbmc, по наступлению 5 сек в консоли выполняется wmctrl -s 0, консоль находится под xbmc.
Если же запустить этот скрипт sleep 5 && wmctrl -s 0 из xbmc, то через 5 сек я увижу первый рабочий стол и опять же через сенунду увижу xbmc.
Вы проверили отпускание?
При нажатии на кнопку запуска скрипта ничего не происходит, срабатывание скрипта происходит только после того как я отпущу кнопку.
avis
Скрипт срабатывает нормально, я попадаю на первый рабочий стол, но и xbmc перемещается со второго на первый стол.
Вот с этого надо было начинать. НИКТО кроме самого xbmc не будет перемещать xbmc на другой стол! Значит, xbmc делает это САМ. Надо смотреть его настройки на предмет отображения на рабочих столах. Если это неотключаемо, придётся искать другие способы его скрытия, помимо переключения столов.
спасибо за помощь, на родном форуме xbmc молчат пока.
На xbmc форуме никто не отвечает, если из xbmc нельзя переключиться значит надо переключаться не из xbmc (приктика показала, что это работает), но инициироваться переключение должно из xbmc.
Я так понимаю, когда из xbmc выполняешь какую либо команду, она выполняется в дочернем процессе xbmc и зависит от xbmc.
А вот как бы так запустить скрипт переключения xbmc из xbmc, но чтобы он не был зависем от xbmc??
Скрипт независим от xbmc.
Это xbmc САМ реагирует на факт смены стола, либо просто на то, что вы трогаете окно xbmc мышкой.
 
Зарегистрироваться или войдите чтобы оставить сообщение.