Skip to content

Feature: window fences (generalization of tiling)

Enrico Weigelt requested to merge metux/xfwm4:submit/fences into master

This MR introduces a new feature called "window fences":

  • user can define "fences", regions on screen (via xfconf) where clients are maximized into (instead of whole monitor)
  • fences optionally can be configured to auto-maximize the window if is moved in
  • behavior outside any fences (or when no fence configured) remains unchanged
  • current fence is communicated by window property
  • clients can switch to another fence (or outside) updating the the window property
  • initial fence can be configured by window policy

Rationale: allows somewhat similar behavior like tiling, but with more flexibility:

  • mixed w/ floating windows
  • fence regions can defined arbitrarily and by fixed geometry
  • easy to configure automatically w/o manual intervention (CASC, auto-provisioners, ...)
  • clients can be put into certain regions (w/o extra client side support)
  • via policies, this can be defined via window class, title, window type, etc

Further work (planned / WIP):

  • auto-provisioning of fences by monitor or split-monitor
  • dynamic reconfiguration (eg. on monitor failure or replacement), incl. auto-repositioning
  • fence switch via window menu
  • optional permanent border markings
  • interactive configuration UI

Merge request reports