##(see the SpecSpec for an explanation) ||<>|| * '''Launchpad entry''': (none) * '''Created''': 07-12-2013 * '''Contributors''': [[StephenMWebb|Stephen M. Webb]] * '''Packages affected''': unity This is the specification for the task of adjusting Unity7 to adapt to high-DPI displays. == Introduction == === Purpose === This specification defines the work required to modify the Unity 7 Desktop Environment to support higher-DPI display hardware. === Scope === This specification applies to the unity Version 7 Desktop Shell and some of the software suite required to implement that product. === Definitions, Acronyms, and Abbreviations === DPI:: dots per inch -- a measure of pixel density on a display em:: a unit of measure: effectively the same number of puxels as the width of the letter ''m'' in the current font. high-DPI:: more than 100 pixels per inch (eg. 3200 x 1800 on a 15" display) === Overview === This specification consists of an overall description of the changes required to the Unity 7 Desktop Shell to adapt to and improve the user experience on high-DPI display hardware, followed by descriptions of changes required to the individual components that make up the Unity 7 Desktop Shell. == Overall Description == === Product Perspective === The Unity 7 Desktop shell is a primary interface for launching and control of applications on a desk computer. In 2013, a number of readily-available consumer grade device are appearing on the market with display devices capable of high-resolution (high pixels-per-inch), sometimes up to 3200 x 1800 pixels on a 15 inch screen. When Unity 7 is run in such a device's native resolution, the controls shrink to an unusable size. Increasing the system font size to accommodate the shrinkage causes problems because some text fields have hard-coded sizes, and has no effect on control sizes (for example, the close button on windows). Because the Unity 7 product does not adjust well to higher pixel density displays at their native resolution, the user is forced to run their device at a lower, non-native resolution. This defeats the purpose of such a device and causes frustration and product dissatisfaction. === Product Functions === Modifications to the Unity 7 Desktop Shell must include the ability to scale text fields, decorations, icons, and spacing automatically to adjust to font size changes. To this end, all decoration and widget sizes should be expressible in ''em'' units. The ability to scale all graphics on a display device to adjust for different DPI is required. Each display shall have a different adjustable configurable scale factor with a reasonable default based on a multiplier ration to the original designed 96 DPI. === User Characteristics === Expected user of the high-DPI Unity 7 Desktop Shell range from casual users with a modern laptop computer to artists or engineers with a multiple-monitor setup including one or more 4K displays. Set up and adjustment of high-DPI behaviour must be simple and straightforward. === Constraints === The scope of adjusting the Unity 7 Desktop Shell for high-DPI devices is large and the resources for completing this task in the Ubuntu cadence timeframe are few. It is possible or even likely that not all required tasks can be completed by the 14.04 LTS release dates. === Apportioning of Requirements === Modules and tasks not complete by the Ubuntu 14.04 LTS feature freeze may need to be delayed indefinitely. == Specific Requirements == === External interface requirements === ==== User Interfaces ==== ===== Unity Font Settings ===== ===== Display-Specific Scaling Settings ===== ==== Hardware Interfaces ==== ===== Autodetection of Display Addition and Removal ===== ==== Software Interfaces ==== ===== System Notifications of Changes ===== === Modules === ==== Dash ==== ==== Launcher ==== ==== Panel ==== ==== Shortcuts ==== ==== Shutdown Dialogs ==== ==== Switcher ==== ==== Tooltips ==== ==== Decorations ==== === Performance Requirements === == References == [[http://askubuntu.com/questions/197828/how-to-find-and-change-the-screen-dpi|How to find and change the screen DPI]] ''(from askUbuntu, last updated 2013-12-20)'' ---- CategorySpec