This is an old revision of the document!
Merge dialogs contextually
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
Window Manager Settings
Style(if xfce4-settings is installed)Keyboard(if xfce4-settings is installed)- Focus
- Advanced
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
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