Xfce Wiki

Sub domains


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:display [2012/10/11 16:34]
ochosi [Status / Implementation]
design:xfce4-settings:display [2018/10/12 22:42]
Line 1: Line 1:
-==== Rationale ​==== +==== Roadmap ​====
-The current implementation of the display dialog does mostly support cloning your display to a second monitor. Xrandr and xfconf can do a lot more than that (e.g. extend and adjust resolutions) and this should be made more accessible to users. In fact this is one of the more frequently asked questions, or requested features. (There was even an episode in the 2011 FOSDEM where an Xfce-dev couldn'​t get the beamer to work from his notebook for his presentation.)+
-==== Current design ==== +Code: [[http://​git.xfce.org/xfce/xfce4-settings/log/?​h=bluesabre/​display-settings|bluesabre/​display-settings branch]]
-Currently there'​s only a list of displays and a few combobuttons to change settingsThe list is a bit too much in my opinion, because most people won't have //many// more than 2 displays maximum.+
-==== Features ​ToDo ====+== Stage 1 == 
 +Target: Xfce 4.12, Implementation:​ 100% 
 +  * Support extended desktop mode for multiple monitors 
 +  * Improve minimal dialog 
 +Status: Wait for testing/bugreports for 4.11.0.
-This is the list of features we want to implement in the first stage+== Stage 2 == 
-  * Support ​extended desktop mode for 2 monitors +Target: , Implementation75% 
-  * Reflect this in the settings dialogs+  * Replace treeview with iconview (DONE) 
 +  * Support ​xfce4-notifyd'​s themes ​for the identity-popups 
 +  * Support setting ​the primary monitor (Related bug: [[https://​bugzilla.xfce.org/​show_bug.cgi?​id=9338|9338]]) (DONE) 
 +  * Create "​display profiles"​ (save setups based on EDID) (DONE)
-Other features / problems: +==== Changelog Version 4.11.0 ==== 
-  * Support setting the primary monitor (Related bug: [[https://​bugzilla.xfce.org/​show_bug.cgi?id=9338|9338]]) +  * Implement support for extended desktop mode 
-  * Improve ​visual representation of monitor-positions (e.g. via using iconview over treeview) +  * Improve ​minimal dialog 
-  * Save settings ​based on EDID (automatic "​display-setup-profiles"​),​ i.e. different EDIDs at work and at home would result in always having the right config automatically,​ even if the screens have the same resolution (this would be particularly interesting ​with having primary monitor support in the panel)+  * Use new big icons to make minimal dialog easier to understand 
 +  * Implement display identification popups 
 +  * Improve applying new settings (now works with Nvidia'​s proprietary driver as well) 
 +  * Fix small naming inconsistencies
-==== Settings Dialogs ​====+==== Status Quo ====
 === Minimal Dialog === === Minimal Dialog ===
-The minimal dialog ​should only be called ​automatically ​when a new display is plugged in. It should provide users quick access to the most-used modes: +The minimal dialog ​can be called when a new display is plugged in (given that the laptop send the appropriate signal). It should provide users quick access to four of the most-used modes: 
-  * Extend desktop to the left+  * Only Display 1
   * Extend desktop to the right   * Extend desktop to the right
   * Mirror displays   * Mirror displays
 +  * Only Display 2
-Furthermore it should contain a button ​linking to the display-settings ​dialog ​(see next section), in case the user wants to configure the new display more in depth (e.g. laptop docking). An additional checkbox should enable/​disable presentation mode (see section above). +The "​Advanced" ​button ​opens the normal ​display-dialog.
- +
-Theoretically (and according to Ubuntu'​s Multi-Monitor Spec) it's possible to (heuristically) detect whether the connected device is a TV or a Projector or an external monitor. We could try to use this information to set the window-title (at least).+
 {{:​design:​xfce4-settings:​minimal.png?​direct&​200|}} {{:​design:​xfce4-settings:​minimal.png?​direct&​200|}}
-This design currently features three 128px icons for the three basic modes, a tickbox for presentation-mode and a button to launch the display settings dialog. 
 === Display Settings Dialog === === Display Settings Dialog ===
-This dialog will enable the user to change all the settings of all connected displays. The set of options basically depends on what RandR and the display drivers offer. 
-== Improve ​the current dialog == +The main thing that changed here are the comboboxes ​to change ​the monitor position and the mirror-checkbox(Note: ​the mirror-mode in the position-combobox only sets the currently selected display to mirror _one_ other displayThis is mostly relevant ​in 2+ displays setups.) The comboboxes give the user a way of positioning always 2 displays relative to each other. In total, users can still position as many displays as they have
-To improve Xfce's dialog one would have to implement ​the "​extended desktop"​-mode of RandR, i.e. positioning ​the monitors "left-of" and "right-of"(Theoretically there'​s also "​above"​ and "​below",​ but in most scenarios multiple monitors are aligned horizontally.) +Four positions are availableleft-of, above, right-of, below.
-The "​mirror displays"​-checkbox would make the combobox for choosing the position ​of the screen insensitive+
-== Mockups == 
 {{:​design:​xfce4-settings:​dialog.png?​direct&​200|}} {{:​design:​xfce4-settings:​dialog.png?​direct&​200|}}
 +=== Identification Popups ===
-==== Status / Implementation ​====+For users to more easily know what display they'​re currently modifying, we decided to implement "​identity-popups"​. These show the name of the display (same as in the treeview) and the resolution. 
 +These popups are currently shown at the bottom of the respective display. 
 +==== Open Issues ​==== 
 +**Hotplugging Scenarios** 
 +  * with an external display connected, internal display disabled, we want to re-enable the internal display when the cable gets __disconnected__ 
 +  * when __connecting__ an external/​additional display, we could show a notification-popup with an action-button to either enable the display directly and/or open the display-dialog 
 +  * when the laptop-lid gets closed (e.g. in a docking-station),​ we should disable the display (currently this doesn'​t happen reliably with xfce4-power-manager,​ maybe this functionality should reside in xfsettingsd?​)
 Minimal dialog: Minimal dialog:
   * Add the 10sec-reset-timeout dialog just to be sure   * Add the 10sec-reset-timeout dialog just to be sure
-  * Debug/fix segfault after setting Mirror, then Extend Right 
-  * <​del>​4 options: Only Primary, Mirror, Extend Right, Only Secondary</​del>​ 
-    * <​del>​draw icons</​del>​ 
-    * <​del>​implement in code</​del>​ 
-  * <​del>​Hook up Advanced button</​del>​ 
-  * <​del>​Consider dropping "​presentation mode"</​del>​ 
-Normal dialog: 
-  * Fix xfconf channel binding warning 
-  * <​del>​Add code for "​identifying popups"</​del>​ 
-    * Use xfce4-notifyd'​s gtk-style 
-    * Fix wrong position and values after a display has been disabled 
-    * <​del>​Re-color the currently selected display</​del>​ 
-  * Check why xrandr works better with Nvidia proprietary than our code 
-    * Applying new positions works every second time. Debugging output about desktop dimensions only gets printed every second time (TRACE[displays.c:​800] xfce_displays_helper_channel_apply():​ Desktop dimensions: 3200x1200 (px), 722x271 (mm).) I would assume that the problem lies there: the desktop dimensions don't get changed in time for the first try, so the driver falls back to mirror-mode. The second time the desktop dimensions are already changed from the last try and then applying new positions works. What supports this hypothesis is that switching from right-of to left-of seems to work fine. But e.g. from right-of to below it takes 2 tries again and vice versa (because the desktop dimensions would again have to be changed). --- //[[simon]] 2012/10/11 10:55// 
-  * Code review 
-  * <​del>​Fix rotation code with extended desktop mode</​del>​ 
-  * <​del>​Change rotation-combo-entry-name from "​normal"​ to "​none"</​del>​ 
 General: General:
-  * Fix 3 commit authors (merge locally, then rebase interactive on origin/​master and set a new committer)+  * <del>Fix 3 commit authors (merge locally, then rebase interactive on origin/​master and set a new committer)</​del>​
   * Celebrate the release!   * Celebrate the release!
-==== Problems ==== 
-  * The vertical/​horizontal alignment of monitors (especially those with different resolutions) cannot be set in the current proposals. E.g. an external monitor with 1280x1024 and a laptop monitor with 1280x768, the ext-mon could be right of the laptop but then either at X=0 or at X=1024-768 depending on how you're using your desktop (panels etc.) 
-  * Not all drivers send proper notifications so that we can trigger the --minimal dialog.