Hi! It's very hard resize windows with touchbar. I suppose that resize area is only 1 pixel, it's very hard to move cursor into this single pixel.
Is it possible to increase resize at least to 3 or 5 pixels?
In #176, there is some discussion about making the resize area "invisible" (i.e., independent of what the theme sets it to).
It should be possible to make the border 1px wide for aesthetic purposes, without sacrificing usability. A minimum "invisible" resize region would allow this. If I'm understanding correctly from the other thread, some theme designers rely on the invisible resize region, because it is supported in other WMs. But XFWM does not support this invisible resize region, so themes that are usable with other WMs feel "broken" in XFCE.
I am not going to repeat the discussions from #176 here, an invisible border requires compositing and the compositor is optional in xfwm4.
As for theme designers of some distributions prioritizing aesthetics before usability, I am aware, but we (upstream) have no control over what distributions do - My only advice would be, if the theme doesn't suit you, change the theme to the upstream default theme (conveniently called Default) which even comes in different sizes for different DPI.
The resize area should not match the visual border thickness. Visual border is expected to be thin. 1 pixel for visual border is normal behavior - a lot of modern OS has 1 pixel borders (see OSx example - it has thin border).
an invisible border requires compositing and the compositor is optional in xfwm4
Is there absolutely no way to make invisible border (external or may be internal - inside the window)?
That might be your expectation but that doesn't make it a requirement, even less a rule.
Is there absolutely no way to make invisible border (external or may be internal - inside the window)?
External means using compositing, internal would cause havoc with apps as this would prevent interaction with the client window under those areas (typically applications rightfully expect their entire window to be usable for their own use).
I checked several environments: OSx, Gnome, Windows 10. They all have a thin border with invisible areas (OSx and Gnome - inside + outside, Windows 10 - outside only). Looks like a rule.
internal would cause havoc with apps as this would prevent interaction with the client window under those areas
2-3 pixel area would really cause any issue? Why don't OSx or Gnome has this issues? Could you please provide an example of an application that may suffer from the presence of a 3 pixel invisible zone?
Here is an OSx example. You can see small internal area that overlays application, seems like there is no issues in OSx (usually Apple UX designers know what they do).
Those environment you list all have a compositor forcibly enabled.
Please read what I wrote, having an invisible active area outside of the window requires using a compositor which is optional in xfwm4, I cannot make that sentence more explicit.
Also please note the client-side decoration windows (aka CSD) have that automatically when the compositor is enabled so yo get what you want for free with CSD.
To demonstrate what I am trying to explain, you can try the following:
Enable the compositor in xfwm4 (xfwm4-tweak-settings → Compositor → [x] Enable compositing)
Run a client using CSD, e.g. gnome-calculator
Notice that you can resize the window with the pointer outside of the frame, exactly what you ask for
Now turn the compositor off in xfwm4 (xfwm4-tweak-settings → Compositor → uncheck [ ] Enable compositing) while gnome-calculator is still running, notice the large black areas around that same gnome-calculator window… This is because without a compositor the areas supposed to appear “transparent” have become visible.
I don't really know anything about compositors or anything so apologies if this makes no sense at all, but is there a way to enable the active area for all windows (even those not using CSD) if the compositor is enabled?
And if there is not a way currently, how tricky would that be to implement? I wouldn't mind helping to contribute if anyone has a few code pointers to share :)