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:52]
ochosi [Keyboard Settings]
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 (if xfwm4 is installed)+  * 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