Как я могу сделать поведение Opera open -newwindow согласованным независимо от того, существует ли запущенный экземпляр?

Я использую Ubuntu 10.04 LTS. У меня есть 4 рабочих пространства в стиле Gnome — только одно из 4 рабочих мест отображается на экране одновременно.

Мне как программисту периодически нужно запускать встроенный браузер из bash-скрипта.

Основная функция, которая мне нужна, заключается в том, что браузер должен открываться в той же рабочей области, что и bash-скрипт, из которого он вызывается, даже если другой экземпляр браузера работает в другой (неактивной) рабочей области.

СЛУЧАЙ 1: ни один экземпляр не запущен

  1. Running the Opera browser from the script with the URL as the sole parameter displays the Speed-Dial tab, and a second tab with my content. UNDESIRED BEHAVIOUR
  2. Even worse, if I add the -newwindow in the above case, two windows get spawned, one with the Speed-Dial tab, and a second with with my content. UNDESIRED BEHAVIOUR
  3. Running the Opera browser from the script with the URL as a parameter along with -activetab displays my content as the sole tab of the browser in my current workspace. THIS IS THE BEHAVIOUR I WANT!
  4. If I specify both -newwindow and -activetab, in the above case, it appears that -activetab is ignored. REFERENCE BEHAVIOUR

СЛУЧАЙ 2: запущен другой экземпляр

  1. Running the Opera browser from the script without the URL as the sole parameter outputs "Activated running instance" and the webpage opens in that browser. UNDESIRED BEHAVIOUR
  2. Running the Opera browser with the -newwindow option launches a new window in my current workspace with my content as the sole tab of the browser. THIS IS THE BEHAVIOUR I WANT.
  3. Running the Opera browser from the script with the URL as a parameter along with -activetab displays replaces the content in that workspace and displays only "Activated Running Instance" in the script window. UNDESIRED BEHAVIOUR
  4. If I specify both -newwindow and -activetab, in the above case, it appears that -newwindow is ignored. INCONSISTENT BEHAVIOUR

person vo1stv    schedule 14.05.2012    source источник
comment
------------------- Приложение Что такое встроенный браузер? Я выбрал Оперу. (Прежде чем предлагать другое, пожалуйста, прочитайте мое определение ниже.) Для целей, указанных выше, встроенный браузер — это браузер, который я могу устанавливать и удалять по мере необходимости, не беспокоясь о том, что он будет мешать настройке и предпочтениям пользователя (что делает меня программистом). После установки я могу быть уверен, что он будет работать в соответствии с моими ожиданиями. Небольшой размер Opera и поддержка альтернативных имен пакетов при установке делают ее идеальной.   -  person vo1stv    schedule 15.05.2012
comment
Следующая ссылка предлагает обходной путь: stackoverflow.com/q/2000050/201008. Как минимум, я могу вызвать wmctrl -R Speed Dial - Opera, который, в отличие от документации, переключает рабочий стол туда, где находится текущий экземпляр Opera.   -  person vo1stv    schedule 15.05.2012
comment
Другой вариант (предоставленный мне в автономном режиме) — использовать ps для поиска альтернативного имени пакета Opera, указанного (во время установки) в списке запущенных процессов. Если процесс запущен, опустите -newwindow и используйте вместо него -activetab.   -  person vo1stv    schedule 15.05.2012


Ответы (1)


Решение, которое я принял, это:

  1. Always provide the URL and -newwindow as the only parameters.
  2. After launching the window, use wmctrl to get rid of the unwanted "Speed Dial" browser window (if it was created) by issuing:
        wmctrl -c "Speed Dial - Opera"
person vo1stv    schedule 18.05.2012
comment
Вот другой, но связанный с этим вопрос, отправленный в AskUbuntu: askubuntu.com/questions/18502/ - person vo1stv; 18.05.2012