[Enhancement] The one screensaver/lock screen entry point (xflock4)
What does [`xflock4`](https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.17.1/scripts/xflock4) do?
1. [Tries to run](https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.17.1/scripts/xflock4#L29-37) the command set in the session's xfconf channel.
2. [Tries to run](https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.17.1/scripts/xflock4#L39-45) `xscreensaver-command`, `light-locker-command`, `xfce4-screensaver-command`.
Where is it called?
1. In `xfce4-session`: `Run xflock4 before suspending or hibernating the system` (BTW, [it](https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.17.1/settings/xfce4-session-settings.ui#L271) is not true: `xfce4_screensaver_lock` [tries](https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.17.1/xfce4-session/xfce-screensaver.c#L497) other options before [running `xflock4`](https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.17.1/xfce4-session/xfce-screensaver.c#L553-560).)
2. [The same for `xfce4-power-manager`](https://gitlab.xfce.org/xfce/xfce4-power-manager/-/blob/xfce4-power-manager-4.17.0/src/xfce-screensaver.c#L569) (but [without a tooltip](https://gitlab.xfce.org/xfce/xfce4-power-manager/-/blob/xfce4-power-manager-4.17.0/data/interfaces/xfpm-settings.ui#L2068)).
3. [In `xfce4-panel`](https://gitlab.xfce.org/xfce/xfce4-panel/-/blob/xfce4-panel-4.17.4/plugins/actions/actions.c#L1110-1112).
4. As a [keyboard shortcut](https://gitlab.xfce.org/xfce/libxfce4ui/-/blob/libxfce4ui-4.17.8/libxfce4kbd-private/xfce4-keyboard-shortcuts.xml#L14).
5. In several plugins.
So, in pp. 3-5 it is called directly.
But in in pp. 1, 2, D-Bus-based screensavers are tried first. And then, `xflock4` is called (which [tries to call `xfce4-screensaver-command`](https://gitlab.xfce.org/xfce/xfce4-session/-/blob/xfce4-session-4.17.1/scripts/xflock4#L39-45) and [is a fork bomb](https://gitlab.xfce.org/xfce/xfce4-session/-/issues/120), among other things). As I understand, `xfce4-screensaver` provides a D-Bus-based screensaver entry point. So, `xflock` tries to call it one more time.
So: sometimes, `xflock4` is a screensaver/lock screen entry point. Sometimes, it's not. Sometimes, it will be recursive.
I have an idea: to have **one screensave/lock screen entry point**. Maybe in Bash, maybe in C. Which tries (or doesn't try - **according to command line/XfConf options**) to send relevant DBus messages, run relevant binaries.
Everything will call it. By one line. To one behavior only.
---
See also / possibly related / possibly will (partially) solve / is solving by:
* https://bugzilla.xfce.org/show_bug.cgi?id=11488,
* https://bugzilla.xfce.org/show_bug.cgi?id=15151,
* https://bugzilla.xfce.org/show_bug.cgi?id=15300,
* https://bugzilla.xfce.org/show_bug.cgi?id=16738,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/15 / https://gitlab.xfce.org/xfce/libxfce4ui/-/issues/70,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/17,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/68,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/69,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/79,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/108,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/110,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/115,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/120,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/148,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/150,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/175,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/178,
* https://gitlab.xfce.org/xfce/xfce4-session/-/issues/182,
* https://gitlab.xfce.org/xfce/xfce4-session/-/merge_requests/20,
* https://gitlab.xfce.org/xfce/xfce4-session/-/merge_requests/23,
* https://gitlab.xfce.org/xfce/xfce4-session/-/merge_requests/24,
* https://gitlab.xfce.org/xfce/xfce4-session/-/merge_requests/41,
* https://gitlab.xfce.org/xfce/xfce4-session/-/commit/7c846f57a5776f831d2777687b6d4b154c55b505,
* https://gitlab.xfce.org/xfce/xfce4-session/-/commit/ec4f05ba944085c00798f91fe53b7a975ea496a0,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/5,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/7,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/12,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/19,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/28,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/51 / https://gitlab.xfce.org/xfce/libxfce4ui/-/issues/63,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/65,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/68,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/71,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/81,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/83,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/84,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/113,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/127 / https://gitlab.xfce.org/xfce/libxfce4ui/-/issues/64,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/142,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/153,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/187,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/202,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/209,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/210,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/248,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/250,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/252,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/merge_requests/24,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/merge_requests/32,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/merge_requests/43,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/merge_requests/50,
* https://gitlab.xfce.org/xfce/xfce4-power-manager/-/merge_requests/52,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/1 (and many duplicates),
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/12 (and many duplicates),
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/20,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/28,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/36,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/53,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/75,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/78,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/96,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/104 / https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/159 / https://gitlab.xfce.org/xfce/xfce4-power-manager/-/issues/251,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/107,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/111,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/129,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/130,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/133,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/134,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/138,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/140,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/143,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/146,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/merge_requests/21,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/commit/b4ede5236656532a3c05925c1909c7aabb07f733,
* https://gitlab.xfce.org/apps/xfce4-screensaver/-/commit/9df3ad56d7c607dbdd101afc3ff6bcce6d565832,
* https://gitlab.xfce.org/xfce/xfwm4/-/issues/541,
* https://gitlab.xfce.org/xfce/xfwm4/-/issues/715,
* https://gitlab.xfce.org/xfce/xfwm4/-/issues/753,
* https://gitlab.xfce.org/xfce/libxfce4ui/-/issues/62,
* https://gitlab.xfce.org/xfce/libxfce4ui/-/merge_requests/97,
* https://gitlab.xfce.org/xfce/libxfce4ui/-/merge_requests/98,
* https://gitlab.xfce.org/xfce/libxfce4ui/-/merge_requests/99,
* https://gitlab.xfce.org/xfce/libxfce4ui/-/commit/a25f036b656546f2d5ad840ea2aa1a49d8ece232,
* https://gitlab.xfce.org/xfce/libxfce4ui/-/commit/32f761266658e2f59093af259655e44efecf31a9,
* https://gitlab.xfce.org/xfce/xfce4-panel/-/issues/55,
* https://gitlab.xfce.org/xfce/xfce4-panel/-/issues/843,
* https://forum.xfce.org/viewtopic.php?id=16953,
* https://gitlab.gnome.org/GNOME/gtk/-/issues/3659,
* https://bugs.launchpad.net/ubuntu/+source/xscreensaver/+bug/1858027.
issue