Xfce Wiki

Sub domains
 

Differences

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

Link to this comparison view

Next revision
Previous revision
design:xfce4-settings:mergedialogs [2014/03/28 17:40]
ochosi created
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 5: Line 34:
   * Behavior   * Behavior
   * Application Shortcuts   * Application Shortcuts
-  * Window Manager Shortcuts ​– conditionally show+  * Window Manager Shortcuts ​//(if xfwm4 is installed)//​
   * Layout   * Layout
  
 ==== Appearance Settings ==== ==== Appearance Settings ====
  
-  * Gtk themes +  * Style 
-  * Icon themes +  * Icons 
-  * Xfwm4 themes – conditionally show+  * Window Borders //(if xfwm4 is installed)//​
   * Fonts   * Fonts
   * Settings   * Settings
  
-==== Window Manager Settings ==== 
  
-  ​Style conditionally hide + 
-  * Keyboard ​conditionally hide +===== 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