<div dir="ltr"><div>I tried a couple of things, mostly based on your other PR about documenting xfconf...</div><div>edited the .config/xfce4/xfconf/xfce-perchanel-xml/xfwm4.xml</div><div>tried adding the following section both under the original <property name="general"... or directly under the <channel name="xfwm4"... neither seemed to do anything for me:</div><div>(i tried adding fences as an 'array' or as 'empty' (empty was documented in your PR, the code about fences said explicitly it needed to be an array, tried both... no avail) <br></div><div><br></div><div>I'm quite interested in this feature, though i don't know if it needs to be part of xfwm4<br></div><div><br></div><div><div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:"Droid Sans Mono","monospace",monospace;font-weight:normal;font-size:14px;line-height:19px;white-space:pre"><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"fences"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"array"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">      </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"one"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"array"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"title"</span><span style="color:rgb(212,212,212)">            </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"string"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"first one"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"geometry"</span><span style="color:rgb(212,212,212)">         </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"string"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"=1000x1000+100+55"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"background-color"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"string"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"rgba(155,50,50,0.3)"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"border-color"</span><span style="color:rgb(212,212,212)">     </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"string"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"red"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"auto-maximize"</span><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"bool"</span><span style="color:rgb(212,212,212)">   </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"true"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">      </span><span style="color:rgb(128,128,128)"></</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(128,128,128)">></span></div><div><span style="color:rgb(212,212,212)">      </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"two"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"array"</span><span style="color:rgb(128,128,128)">></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"title"</span><span style="color:rgb(212,212,212)">            </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"string"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"second one"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"geometry"</span><span style="color:rgb(212,212,212)">         </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"string"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"=800x800+1400+50"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"background-color"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"string"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"rgba(10,10,255,0.3)"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"border-color"</span><span style="color:rgb(212,212,212)">     </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"string"</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"blue"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">        </span><span style="color:rgb(128,128,128)"><</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">name</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"auto-maximize"</span><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">type</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"bool"</span><span style="color:rgb(212,212,212)">   </span><span style="color:rgb(156,220,254)">value</span><span style="color:rgb(212,212,212)">=</span><span style="color:rgb(206,145,120)">"true"</span><span style="color:rgb(128,128,128)">/></span></div><div><span style="color:rgb(212,212,212)">      </span><span style="color:rgb(128,128,128)"></</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(128,128,128)">></span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(128,128,128)"></</span><span style="color:rgb(86,156,214)">property</span><span style="color:rgb(128,128,128)">></span></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 28, 2022 at 12:17 PM samuel <<a href="mailto:samuel.verstraete@gmail.com">samuel.verstraete@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Enrico, you have an example on how i could set this up?<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Oct 19, 2022 at 5:08 PM Enrico Weigelt, metux IT consult <<a href="mailto:lkml@metux.net" target="_blank">lkml@metux.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello folks,<br>
<br>
I've like to announce another feature that I've implemented recently:<br>
<br>
<a href="https://gitlab.xfce.org/xfce/xfwm4/-/merge_requests/59" rel="noreferrer" target="_blank">https://gitlab.xfce.org/xfce/xfwm4/-/merge_requests/59</a><br>
<br>
Window fences:<br>
---------------<br>
<br>
* user can define "fences", regions on screen (via xfconf) where clients<br>
   are maximized into (instead of whole monitor)<br>
* fences optionally can be configured to auto-maximize the window if is<br>
   moved in<br>
* behavior outside any fences (or when no fence configured) remains<br>
   unchanged<br>
* current fence is communicated by window property<br>
* clients can switch to another fence (or outside) updating the the<br>
   window property<br>
* initial fence can be configured by window policy<br>
<br>
Rationale: allows somewhat similar behavior like tiling, but with more<br>
flexibility:<br>
<br>
* mixed w/ floating windows<br>
* fence regions can defined arbitrarily and by fixed geometry<br>
* easy to configure automatically w/o manual intervention (CASC, auto-<br>
   provisioners, ...)<br>
* clients can be put into certain regions (w/o extra client side<br>
   support)<br>
* via policies (see my previous mail), this can be defined via window<br>
   class, title, window type, etc<br>
<br>
Further work (planned / WIP):<br>
<br>
* auto-provisioning of fences by monitor or split-monitor<br>
* dynamic reconfiguration (eg. on monitor failure or replacement), incl. <br>
* auto-repositioning (on fence reconfiguration)<br>
* fence switch via window menu<br>
* optional permanent border markings<br>
* interactive configuration UI<br>
<br>
If you like it, feel free to leave your thumb up.<br>
<br>
<br>
--mtx<br>
<br>
-- <br>
---<br>
Hinweis: unverschlüsselte E-Mails können leicht abgehört und manipuliert<br>
werden ! Für eine vertrauliche Kommunikation senden Sie bitte ihren<br>
GPG/PGP-Schlüssel zu.<br>
---<br>
Enrico Weigelt, metux IT consult<br>
Free software and Linux embedded engineering<br>
<a href="mailto:info@metux.net" target="_blank">info@metux.net</a> -- +49-151-27565287<br>
_______________________________________________<br>
Xfce4-dev mailing list<br>
<a href="mailto:Xfce4-dev@xfce.org" target="_blank">Xfce4-dev@xfce.org</a><br>
<a href="https://mail.xfce.org/mailman/listinfo/xfce4-dev" rel="noreferrer" target="_blank">https://mail.xfce.org/mailman/listinfo/xfce4-dev</a></blockquote></div>
</blockquote></div>