====== Merge dialogs contextually ====== This link will be updated from time to time during development. WIP: [[http://imgur.com/5zSKa1L,i2rTrMf,XmPg2tB,C2oayj3,IHFrTFy,HMTR6hP,codtXCZ,FdlhM9U|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