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
- Focus model
- New window focus
- Raise on focus
- Raise on click
- Focus stealing/hints
- When a window raises itself
- 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
- General
- Margins
- Behavior (xfwm4 workspaces)
Keyboard Settings
- Behavior
- Application Shortcuts
- Window Manager Shortcuts (if xfwm4 is installed)
- Layout
Appearance Settings
- Style
- Icons
- Window Borders (if xfwm4 is installed)
- Fonts
- Settings
Implementation
Different implementations are possible. Below are suggestions open for discussion.
Detection
How should xfwm4 be detected:
- running instance (detect the current running window manager)
- xfconf channel presence
- xfwm4 binary included in PATH
How should xfce4-settings be detected:
- running instance of xfsettingsd (part of the session)
- xfconf channel presence
- xfce4-keyboard-settings and xfce4-appearance-settings present in PATH (or .desktop file)
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
- The next logical move seems to be a merge of the xfwm4 and xfwm4-tweaks dialogs, however, this bears a few problems:
- There'd be 2 tabs with the same title (Focus), they'd either have to be merged or one of them renamed
- There'd be 8 tabs (or 7, if Focus tabs are merged) in this dialog, which seems a bit hefty