Xfce Wiki

Sub domains
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
design:xfce4-settings:mergedialogs [2014/03/28 23:55]
ochosi
design:xfce4-settings:mergedialogs [2014/05/02 01:21] (current)
peter [Merge dialogs contextually]
Line 1: Line 1:
 ====== Merge dialogs contextually ====== ====== 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 ==== ==== Keyboard Settings ====
Line 16: Line 45:
   * Settings   * Settings
  
-==== Window Manager Settings ==== 
  
-  ​<​del>​Style</​del>​ //(if xfce4-settings ​is installed)// + 
-  * <​del>​Keyboard</​del> ​//(if xfce4-settings ​is installed)// +===== Implementation ===== 
-  * Focus + 
-  Advanced+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