Implemented _NET_MOVERESIZE_WINDOW

Paul Schutte <[email protected]> Wed, 13 Aug 2025 19:09:21 +0200
Newsgroups gmane.comp.window-managers.ctwm
Message-ID <CAKHv7pgPrVuEpO3_sM7UUHKmiXizsrFsL2aJ5Pyzy9SV10i2RQ@mail.gmail.com>
--0000000000006f6ca9063c423877
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi all,

I=E2=80=99ve added support for the EWMH _NET_MOVERESIZE_WINDOW message to c=
twm.
The behaviour matches what I=E2=80=99ve seen in other window managers, and =
allows
compliant clients/tools (e.g. wmctrl -e 0,x,y,w,h) to request moves and
resizes directly.

If anyone=E2=80=99s interested, you can find the changes here:
https://github.com/sjpschutte/ctwm

I=E2=80=99ve been running ctwm with this patch for the past week without is=
sues.

I also wrote a small utility called *wmtile* for manual tiling. If there=E2=
=80=99s
interest, I can put it on GitHub.
Here are the .ctwmrc bindings I use for it:

"KP_Up"     =3D c|m1 : window : f.exec "wmtile top    ewmh"
"KP_Down"   =3D c|m1 : window : f.exec "wmtile bottom ewmh"
"KP_Left"   =3D c|m1 : window : f.exec "wmtile left   ewmh"
"KP_Right"  =3D c|m1 : window : f.exec "wmtile right  ewmh"
"KP_Home"   =3D c|m1 : window : f.exec "wmtile tl     ewmh"
"KP_End"    =3D c|m1 : window : f.exec "wmtile bl     ewmh"
"KP_Prior"  =3D c|m1 : window : f.exec "wmtile tr     ewmh"
"KP_Next"   =3D c|m1 : window : f.exec "wmtile br     ewmh"
"KP_Begin"  =3D c|m1 : window : f.fullzoom

Kind regards,
Paul

--0000000000006f6ca9063c423877
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote gmail_quote_container"><div dir=
=3D"ltr"><p>Hi all,</p>
<p>I=E2=80=99ve added support for the EWMH <code>_NET_MOVERESIZE_WINDOW</co=
de> message to ctwm.<br>
The behaviour matches what I=E2=80=99ve seen in other window managers, and =
allows compliant clients/tools (e.g. <code>wmctrl -e 0,x,y,w,h</code>) to r=
equest moves and resizes directly.</p>
<p>If anyone=E2=80=99s interested, you can find the changes here:<br>
<a href=3D"https://github.com/sjpschutte/ctwm" target=3D"_blank">https://gi=
thub.com/sjpschutte/ctwm</a></p>
<p>I=E2=80=99ve been running ctwm with this patch for the past week without=
 issues.</p>
<p>I also wrote a small utility called <b>wmtile</b> for manual tiling. If =
there=E2=80=99s interest, I can put it on GitHub.<br>
Here are the <code>.ctwmrc</code> bindings I use for it:</p>
<pre><code>&quot;KP_Up&quot;     =3D c|m1 : window : f.exec &quot;wmtile to=
p    ewmh&quot;
&quot;KP_Down&quot;   =3D c|m1 : window : f.exec &quot;wmtile bottom ewmh&q=
uot;
&quot;KP_Left&quot;   =3D c|m1 : window : f.exec &quot;wmtile left   ewmh&q=
uot;
&quot;KP_Right&quot;  =3D c|m1 : window : f.exec &quot;wmtile right  ewmh&q=
uot;
&quot;KP_Home&quot;   =3D c|m1 : window : f.exec &quot;wmtile tl     ewmh&q=
uot;
&quot;KP_End&quot;    =3D c|m1 : window : f.exec &quot;wmtile bl     ewmh&q=
uot;
&quot;KP_Prior&quot;  =3D c|m1 : window : f.exec &quot;wmtile tr     ewmh&q=
uot;
&quot;KP_Next&quot;   =3D c|m1 : window : f.exec &quot;wmtile br     ewmh&q=
uot;
&quot;KP_Begin&quot;  =3D c|m1 : window : f.fullzoom
</code></pre>
<p>Kind regards,<br>
Paul</p></div>
</div></div>

--0000000000006f6ca9063c423877--