2009-06-22 2 views
24

Учитывая идентификатор окна X-клиента, есть ли способ переместить это окно или изменить его геометрию из командной строки?X11: переместить существующее окно через командную строку?

$ xlsclients -a 
Window 0x3000001: 
    Machine: ohm 
    Name: Terminal 
    Icon Name: foo 
    Command: foo 
    Instance/Class: foo/bar 

$ xmovewindow -id 0x3000001 --geometry +100+200 <-- this is what I would like to do 

ответ

32

Я думаю, что xdotool выполнит эту работу.

xdotool позволяет вам программно (или вручную) имитировать ввод и перемещение клавиатуры, перемещать и изменять размер окон и т. Д. Это делается с использованием расширения XTEST X11 и других функций Xlib.

E.g.

$ xdotool windowfocus 0x1a00ad2 

будет сфокусирован на окне с идентификатором 0x1a00ad2. Также есть команда windowmove, которая, вероятно, является той, которую вы ищете.

wmctrl является более продвинутым. Он совместим с менеджерами окон EWMH/NetWM X, как вы можете прочитать на their website. Я не думаю, что вам это понадобится, чтобы быть совместимым с ними.

+4

Существует также DevilsPie, в котором используется libwnck; что также должно быть совместимо с менеджерами окон EWMH/NetWM в целом. – ephemient

+0

Отличный инструмент, я не знал об этом! Благодаря ! –