27
votes

Given an X client window ID, is there a way to move that window or change its geometry from the command line?

$ 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
1
To get the hex window id, I needed to use xlsclients -l, not -a (Mac 10.15.7, XQuartz 2.8.1 (xorg-server 1.20.11), xlsclients 1.1.4)DouglasDD

1 Answers

40
votes

I think xdotool will do the job.

xdotool lets you programatically (or manually) simulate keyboard input and mouse activity, move and resize windows, etc. It does this using X11's XTEST extension and other Xlib functions.

E.g.

$ xdotool windowfocus 0x1a00ad2

will focus the window with id 0x1a00ad2. There's also a windowmove command which is probably the one you're looking for.

wmctrl is slighty more advanced. It is compatible with EWMH/NetWM X window managers as you can read on their website. I don't think you'll need it to be compatible with those though.