восстановить окна chromium / firefox в исходное рабочее пространство / рабочий стол

9

У меня есть три монитора с двумя мониторами, управляемыми непосредственно Ubuntu 12.04 для общей рабочей области / рабочего стола 3840x1200 of. Я обычно работаю с 5 виртуальными рабочими пространствами, часто больше, если я работаю над несколькими проектами параллельно. У меня обычно открыто как минимум 15 окон браузера (в основном Firefox-nightly, но также и стандартные 12.04 Firefox и Chrome).

Всякий раз, когда браузеры должны перезапускаться в результате обновления (сбой cq) или запускаться после входа в систему, окна браузера возвращаются на исходные позиции, но все находятся в одной рабочей области. После этого мне нужно утомительно переместить не менее 80% окон в другое рабочее пространство².

Ни Firefox, ни Chrome не сохраняют дополнительную информацию EWMH , необходимую для восстановления в исходное рабочее пространство. Я читал неразрешенные сообщения об ошибках 4-5 лет назад.

Кажется, что, по крайней мере, несколько лет назад KDE управлял рабочими пространствами с большими смещениями (шире, чем ширина экрана), что позволило браузеру восстановить правильное рабочее пространство. Но это больше не похоже на случай (вычитается из сообщения об ошибке, а не из личного опыта).

Существует ли менеджер рабочего пространства / десктопа, который не имеет такого поведения восстановления всех в одном рабочем пространстве с Firefox и Chrome (предпочтительно для Ubuntu или Linux Mint)?

Или есть другой способ улучшить Firefox и Chrome (например, надстройку), чтобы усилить это поведение?

У меня не фиксированный макет, где Browser X в рабочей области Y всегда открывается по определенному URL. Функция восстановления дает мне окна, позиции и URL-адреса именно так, как я хочу их. Они «просто» должны быть в правильном рабочем пространстве.

¹ Третья 1200x1920 монитор на отдельной машине с x2vncиспользоваться совместно использовать одну мышь и клавиатуру. Благодаря этому мои материалы для чтения, такие как справочные страницы и документация, доступны (в портретном режиме).
² Все материалы U & L находятся в рабочей области 3. Обычно я оставляю машину включенной и оставляюсь в ней в течение нескольких недель, одной из причин которой является восстановление различных окон.

Энтон
источник

Ответы:

6

Кажется, нет особой мотивации для реализации поддержки EWMH ни в Firefox, ни в Chrome, хотя это позволило бы решить проблему восстановления рабочего пространства с большим количеством рабочих столов. Ошибка была открыта для Firefox с 2007 года и один для Chrome с 2009 года.

Что вы можете сделать за пределами Firefox и Chrome, если активные вкладки в разных окнах браузера указывают на разные URL-адреса, это использовать тенденцию, что разные URL-адреса обычно имеют разные заголовки, связанные со страницами и, следовательно, с окном, в котором они отображаются.

Начиная с этой идеи, вы можете использовать вывод, wmctrl -l -G -pкоторый предоставляет вам

  • идентификатор окна
  • номер рабочего пространства
  • идентификатор процесса
  • х, у позиция окна
  • ширина и высота окна
  • имя машины
  • заголовок окна (если есть)

для каждого окна. Учитывая PID идентификатора процесса, вы можете видеть, куда /proc/PID/exeуказывает ссылка, и отфильтровывать не-браузерные окна. Для окон, связанных с браузером, сохраните как минимум заголовок окна и номер рабочего пространства (возможно, также тип браузера и всю другую информацию).

После запуска (перезапуска) браузера, когда все окна восстановлены, но в одной рабочей области, используйте сохраненные данные, чтобы найти новый идентификатор окна, WID, связанный с конкретным заголовком, и отправить его в извлеченную связанную рабочую область с помощью wmctrl -i -r WID -t workspacenumber.


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

sudo pip install ruamel.bws

после чего bwsкоманда должна быть доступна с параметрами: save(сохраняется несколько сохранений, по умолчанию 10), list(показывать сохраненные даты с количеством сохраненных окон) или restore(по умолчанию последняя сохраненная информация).

Энтон
источник
Firefox 75 включает API, необходимый для этого, с несколькими оговорками. Hg.mozilla.org/integration/autoland/rev/323e2a212629
Braiam