Merge dialogs contextually
This link will be updated from time to time during development.
WIP: Screenshots
Unified Xfwm4 Settings
[ Style ] (if xfce4-settings is installed)
[ Keyboard ] (if xfce4-settings is installed)
Focus
Placement (+ xfwm4 advanced)
Windows snapping
Wrap workspaces when reaching the screen edge
Hide content of windows
Double click action
Min size to trigger smart placement
By default, place windows:
Cycling (as is)
Compositor (as is)
Accessibility (as is)
Workspace Settings
Keyboard Settings
Appearance Settings
Implementation
Different implementations are possible.
Below are suggestions open for discussion.
Detection
How should xfwm4 be detected:
How should xfce4-settings be detected:
libxfce4kbd
xfwm4_shortcut_values in libxfce4kbd-private/xfce-shortcuts-xfwm4.c needs to match xfwm4 src/settings.h KEY enum.
Meaning libxfce4kbd can't be updated independently from xfwm4 in case of a shortcut change. (Appending is possible)
Possible solutions:
Accept we can only append (add a comment)
Add a mapping table to xfwm4
Move the mapping to xfwm4 and solve the xfce4-keyboard-settings in a different way
Add the enum to libxfce4kbd and use static linking on the mappings
Don't use the enum, use g_intern_string or GQuark
Embed xfwm's tabs
Use a GtkPlug/GtkSocket setup to embed the specific xfwm tabs into the settings dialogs. It would be similar to how the settings manager embeds processes and keep coupling loose for new shortcut/settings updates.
Discussion