Запуск оконной программы в определенной рабочей области, из командной строки

Интересно, могу ли я "отправить" оконную программу в определенную рабочую область, когда я запускаю ее через командную строку.

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

Я использую Единицу на Ubuntu 14.04.

Я также пытался запуститься gdevilspie но это, кажется, затронуто ошибкой.

спасибо! :)

3
задан 2 May 2014 в 08:06

2 ответа

Используя wmctrl, пример gedit:

gedit & sleep 3; wmctrl -i -r `wmctrl -l -p | grep $! | awk '{ print $1 }'` -t 1
  • gedit & работает, gedit во сне backgroud
  • sleep 3 в течение 3 секунд ожидают создания окна (моя машина немного замедляются)
  • $! PID возврата предыдущей команды (т.е.: изодромный с предварением gedit)
  • wmctrl -l -p | grep PID | awk '{ print $1 }' получают WID от окна перемещения gedit PID
  • wmctrl -i -r WID -t 1 с WID на 2-й рабочий стол

Иначе:

wmctrl -s 1 ; gedit & sleep 3; wmctrl -s 0;
  • Переключатель на 2-й рабочий стол, запустите gedit, ожидайте 3 секунды; переключитесь назад на 1-й рабочий стол

Ссылка:

использования
3
ответ дан 17 November 2019 в 20:52

Это - в основном тот же @user.dz, которому отвечают, просто параметризованный и вместо того, чтобы спать в течение 3 секунд для обработчика окон, который будет создан, эти циклы до находят его.

# workspace target
_WS=3
export DISPLAY=:0 

gedit &
_PID="$!" 
_WID=""
while [[ $_WID == "" ]]; do
  _WID=$(wmctrl -l -p 2>/dev/null | grep $_PID | awk '{ print $1 }')
sleep 1
done

wmctrl -i -r $_WID -t $_WS
0
ответ дан 17 November 2019 в 20:52

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

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