Интересно, могу ли я "отправить" оконную программу в определенную рабочую область, когда я запускаю ее через командную строку.
Например, я хотел бы запустить свой компьютер с определенного числа оконных программ, открытых в различных рабочих областях. Действительно ли это возможно? Каковы некоторые фундаментальные понятия позади этого?
Я использую Единицу на Ubuntu 14.04.
Я также пытался запуститься gdevilspie
но это, кажется, затронуто ошибкой.
спасибо! :)
Используя wmctrl
, пример gedit
:
gedit & sleep 3; wmctrl -i -r `wmctrl -l -p | grep $! | awk '{ print $1 }'` -t 1
gedit &
работает, gedit во сне backgroudsleep 3
в течение 3 секунд ожидают создания окна (моя машина немного замедляются) $!
PID возврата предыдущей команды (т.е.: изодромный с предварением gedit) wmctrl -l -p | grep PID | awk '{ print $1 }'
получают WID от окна перемещения gedit PIDwmctrl -i -r WID -t 1
с WID на 2-й рабочий стол Иначе:
wmctrl -s 1 ; gedit & sleep 3; wmctrl -s 0;
Ссылка:
использованияЭто - в основном тот же @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