Используя язык сценариев оболочки, Python или что-нибудь, как я могу переместить окно от одной области просмотра до другого?
В то время как я являюсь довольно разрозненным, я предпочел бы решение работать в фоновом режиме. Как в, нет activate window 1, move window 1, active window 2, move window 2, ...
, в то время как я должен сидеть и ждать всего этого для случая. (Я назову это медленной проблемой активации.)
Я даже ценил бы ссылки туда, где еще я должен задать этот вопрос, как форумы людей, хорошо осведомленных о Linux и менеджерах окон.
Я использую Ретроспективный кадр Gnome с Compiz (не Единица или Метагород). Я нахожусь на Ubuntu 14.04, но надо надеяться решения работали бы над другими версиями, поскольку я намереваюсь обновить.
Только командная строка наполняет существующими программами.
Во-первых, wmctrl
действительно не работает, по-видимому, с compiz. Вот то, с чем я добираюсь wmctrl -d
:
$ wmctrl -d
0 * DG: N/A VP: N/A WA: N/A N/A
wmctrl -l
не абсолютно бесполезно, но это не показывает все окна. Например, я выполнил его сейчас, и это сообщило о 8 окнах Chrome, но я знаю, что у меня есть по крайней мере 21. Слабый открыто, но не находится в списке окон.
Я использовал compiz-dbus плагин с put
плагин и попробованное использование ./compiz-send.py put put_viewport_1_key
, но это имеет несколько проблем:
Я очень не хочу перезапустить свой компьютер, потому что все окна запускаются на единственной области просмотра, и мне требуются несколько минут для положения обратно всех моих окон к областям просмотра, они были ранее включены. Например, у меня будет несколько окон Chrome на области просмотра 1, несколько на области просмотра 2, и т.д. Это - большое перемещение окна, каждый раз, когда я перезапускаю свой компьютер.
Часто, я не перезапускаю свой компьютер в течение длительных периодов из-за этой боли, которая сильна для исправлений безопасности и т.д. Почему у меня есть столько окон открытым? Я - подрядчик и работаю над несколькими проектами одновременно, каждым с его собственными проблемами, требующими веб-исследования, записи кода, материала командной строки, и т.д. У меня есть 32 ГБ RAM, столько окон не является проблемой производительности.
Обычно окна достаточно легко определить заголовком, где я хотел бы, чтобы они были. Например, я всегда хочу, "чтобы Gmail - Google Chrome" был на области просмотра 1.
Также можно использовать плагин Place Windows в CompizConfig Settings Manager , чтобы программы всегда открывались в определенном окне просмотра. Плагин Place Windows находится в категории Управление окнами .
Оказавшись внутри плагина Place Windows , перейдите на вкладку Fixed Window Placement вверху. Внизу вы увидите окно с фиксированным окном просмотра . Нажмите кнопку New , чтобы добавить новую программу. Затем нажмите зеленый плюс, чтобы настроить, какие окна должны быть расположены. Используйте Тип из Класс окна . Используйте кнопку Grab , чтобы получить информацию из открытого окна того типа, который вы хотите расположить при запуске. Вам также нужно будет установить горизонтальное и вертикальное расположение области просмотра, где вы хотите разместить программу при запуске.
Эта информация взята из статьи webupd8.org , озаглавленной «Делать приложения всегда открытыми в данной рабочей области (область просмотра) с помощью Compiz» . На этой странице также есть ссылка на скринкаст, в котором рассказывается об этих шагах.
См. этот ответ на вопрос « Сохранить Unity Desktop Session ». Ответ содержит ссылку на скрипт, ~ / session.config , который поможет вам настроить скрипт, ~ / .sessionconfig с автоматическим запуском файла рабочего стола, ~ / .config /autostart/sessionconf.desktop.
Я использовал этот сценарий в течение некоторого времени. Единственный недостаток в том, что он использует физические размеры дисплея по умолчанию. Это означает, что если вы подключите внешний адаптер дисплея к вашему ноутбуку с разными размерами, программы не будут размещены в нужном окне просмотра.