Xfce Wiki

Sub domains

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


Different implementations are possible. Below are suggestions open for discussion.


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)


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.


  • 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