Есть ли способ указать, какое рабочее пространство и / или окно запускать программу?

Я задал связанный, но более конкретный вопрос. Я хочу знать, есть ли способ указать, где вы хотите запустить программу. Я в основном хочу написать сценарий оболочки, который запускается каждый раз, когда я вхожу в систему, например

google-chrome www.gmail.com    -workspace=1 -monitor=1
google-chrome www.facebook.com -workspace=1 -monitor=2
google-chrome www.youtube.com  -workspace=1 -monitor=3

gedit a.txt b.txt c.txt        -workspace=2 -monitor=1
gedit d.txt e.txt f.txt        -workspace=2 -monitor=2
gedit g.txt h.txt i.txt        -workspace=2 -monitor=3

mplayer Terminator1.mkv        -workspace=3 -monitor=1
mplayer Terminator2.mkv        -workspace=3 -monitor=2
mplayer Terminator3.mkv        -workspace=3 -monitor=3

, здесь есть программа здесь , но она не срабатывает так многими способами, что Я даже не знаю, с чего начать. В принципе это просто, указать окно и переместить его. Но указание окон непросто, два браузера называются одинаковыми «Google Chrome». Можно использовать их уникальные идентификаторы окон, но получение этой информации не является тривиальным (AFAIK, это не возвращается после выполнения). Затем есть опция :ACTIVE:, которая является последней запущенной программой, но нет гарантии, что окно запускается, когда управление возвращается в командную строку. Чтобы ухудшить ситуацию, нужно указать глобальные координаты, а не дополнительные координаты в рабочей области / мониторе.

Вот такой подход, который я сейчас применяю. Я загрузил некоторые скрипты в GitHub (см. Здесь или здесь), которые используют wmctrl для перемещения окон вокруг.

1
задан 13 April 2017 в 15:25

1 ответ

Вы можете установить, в какую рабочую область запускается программа с помощью графического интерфейса, путем установки CompizConfig Settings Manager из Software Center.

Сначала откройте экземпляр программы, которую вы хотите разместить.

[d2 ] Запустите CCSM и перейдите в «Управление окнами» и активируйте «Место Windows», щелкните по нему и выберите «Место установки неподвижного окна».

В разделе «Windows с фиксированным видовым экраном» нажмите «Создать». В появившемся диалоговом окне нажмите кнопку «+». Затем в следующем диалоговом окне нажмите кнопку «Схватить», а затем нажмите запущенную программу и «Добавить». Затем установите значения для видовых экранов: X = 1, Y = 1 - верхний левый, X = 1, Y = 2 - нижний левый, X = 2, Y = 1 - верхний правый, X = 2, Y = 2 - нижний right.

Если вы ничего не сделаете, это установит его для класса окон, но есть другие параметры, такие как ID, Тип и многое другое, но ID - единственный, который вы не можете захватить. [!d4 ]

2
ответ дан 25 May 2018 в 17:59
  • 1
    Да, это похоже на wmctrl и другие, поскольку он лучше всего работает при перемещении либо уже открытых окон (в этом случае их просто просто перетащить), либо всех типов похожих окон (т. Е. Всех браузеров в рабочей области 1 монитор 1, все терминалы в W1 M2, все гедиты в W1M3 ...) Однако при открытии и перемещении окон на основе каждого окна он не выглядит довольно жалким. – puk 19 October 2011 в 23:22
  • 2
    contd: Это можно было бы легко устранить, если бы я мог вручную назначить уникальный идентификатор (например, идентификатор окна или заголовок окна), но оболочка не слишком хорошо взаимодействует с диспетчером окон. В настоящее время я пишу серию сценариев, чтобы справиться с этим, но они не работают. – puk 19 October 2011 в 23:25

Другие вопросы по тегам:

Похожие вопросы: