Feature: window policies (defaults and override per window/clients)

Enrico Weigelt, metux IT consult lkml at metux.net
Wed Oct 19 17:40:45 CEST 2022

On 19.10.22 16:56, Olivier Fourdan wrote:


> However, historically, we've always left that to third party tools 
> rather than having such mechanisms implemented in the window manager 
> itself. On purpose.
> That's part o the philosophy of xfce from the beginning, keeps things 
> simple, bloat free and modular enough that people can achieve whatever 
> (or at least most of what) they need without having everything 
> implemented in the window manager. I kinda still like that philosophy.

By the same argument, we could move *a lot* from the xfwm to external
programs, eg. tabwin, workspaces, frames and decorations, placement
policies, session management, etc, etc.

If that's really your philosophy, be by guest, let's split the big
monolith into pieces.

> Also, xfconf is not really designed to implement such complex 
> configurations, it's meant to store basic preferences. 

I wouldn't call this "complex", it easily maps to simple key+value
pairs. That would even fit in the old rc file.

> And without a 
> proper GUI to configure the feature, I'm afraid that would remain mostly 
> unused by most people.

I just haven't had the time to code a config gui for that. OTOH, for
those who don't like to edit the xml file directly (indeed, not very
intuitive and robust), we have xfce4-settings-editor.

If folks can't use settings they don't know of, that's because we're
still lacking documentation for them. Yet another big bullet on my
2do list I just haven't time to fix it yet.

> So to me, that sounds like a feature for a very specific use case of 
> yours, but not necessarily something that the vast majority of users 
> would require.

Actually, it's quite generic for lots of things, we sometimes even have
user requests for, unanswered for aeons now.

This patch queue introduces the basic infrastructure for *many* policies
that now can be added easily. The last commit - forcing borders on
usually borderless windows (yes, just to borrow your terminology: 
increases the user's freedom :P) could actually a one-liner if there
wasn't pretty verbose coding style. And yes, we already had actual
user requests for those things.

> Also, worth noting that windows can get restored on their previous 
> location when using session management, the state and location of 
> windows is saved on logout and xfwm4 will try its best to restore the 
> previous location when the session is loaded again.

Yes, but that isn't the whole point of this queue. Major differences:

a) session is dynamic *state*, not configuration (you really don't want
    provisioners to mess those files, nor have it in /etc/skel/ etc)
b) it only stores how things have been before, for all windows,
    not just selected ones that the user wishes to tweak
c) it can't do things like wildcard matches, nor act on window type,
    eg. if one wants certain behavior just for dialogs, but all of them,
    no matter which client they come from
d) can't be changed at runtime - xfconf already gives that for free


Hinweis: unverschlüsselte E-Mails können leicht abgehört und manipuliert
werden ! Für eine vertrauliche Kommunikation senden Sie bitte ihren
GPG/PGP-Schlüssel zu.
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
info at metux.net -- +49-151-27565287

More information about the Xfce4-dev mailing list