ewmh
The lightweight ewmh
window manager module, used to be bundled with blender python, may not be any more, anyhow instead of a long comment under your answer, here is similar using ewmh
on linux crunched into blenders python console.
>>> import ewmh
>>> wm = ewmh.EWMH()
>>> bwin = wm.getActiveWindow()
>>> bwin.get_wm_class()
('Blender', 'Blender')
>>> bwin.get_wm_name()
'Blender'
>>> for w in wm.getClientListStacking():
... w.get_wm_name(), w.get_wm_class()
...
('Desktop', ('desktop_window', 'Nautilus'))
('Settings', ('gnome-control-center', 'Gnome-control-center'))
('operator_simple.py', ('NeovimGtk', 'NeovimGtk'))
('batfinger@shitbox2: ~/blender-git', ('gnome-terminal-server', 'Gnome-terminal'))
('batfinger@shitbox2: ~/blender', ('gnome-terminal-server', 'Gnome-terminal'))
('scripting - can the system console window default position be adjusted? - Blender Stack Exchange - Mozilla Firefox', ('Navigator', 'Firefox'))
('Blender', ('Blender', 'Blender'))
>>> wm.setMoveResizeWindow(
setMoveResizeWindow(self, win, gravity=0, x=None, y=None, w=None, h=None)
Set the property _NET_MOVERESIZE_WINDOW to move or resize the given
window. Flags are automatically calculated if x, y, w or h are defined.
:param win: the window object
:param gravity: gravity (one of the Xlib.X.*Gravity constant or 0)
:param x: int or None
:param y: int or None
:param w: int or None
:param h: int or None
>>> wm.setMoveResizeWindow(bwin, 0, 10, 10, 1000, 599)
>>> wm.display.flush()
ewmh
in a start up script. $\endgroup$ – batFINGER Jan 13 '20 at 10:23