3.0 release notes items

Major changes in GNOME 3.0, to be mentioned in the release notes. Please make a list here when we reach feature freeze.

Please note that this does not need to be pretty. It's just a list that will be used to make the actual release notes. In fact, if it's too pretty, people will link to it and complain that it's not perfect.

See also the advice about the schedule and translation.

/!\ Attention: Press/reviewers: This is a work in progress. Items aren't checked for correctness. Statements may be completely wrong. Very large changes could be forgotten. Please wait until the final release notes are done. This page will not contain everything that will be in the final release notes.

How-to

Major changes are those that:

  • Affect lots of people (users, administrators, or developers.)
  • Are something people have been hoping for or discussing widely.
  • Feature, usability, performance, internationalization or accessibility improvements.

{i} Provide this information:

  • What the module (application) is.
  • What the change is.
    • Why it is important.
    • How it can be accessed.

Be as descriptive as you like.

What's new for users

Core Desktop

New look

  • New default wallpaper
  • New GTK theme
  • New default font
  • Beautiful, high resolution icons
  • Symbolic icons

Desktop shell

I'm not sure whether it makes sense to describe this in terms of 'features' or key advantages. Let's start with a brainstorm list of both and see how it pans out. AllanDay

Features
  • Easy access to search - will be expanded to enable you to quickly and easily search everything (including web and local files)
  • Static top panel
    • Allows easy access to key system functionality blends into the background
    • A permanent anchor which allows the user to orientate themselves at all times
    • 'System owned' - displays the status of the system and provides quick access to key system settings: networking, a11y, volume, bluetooth, input language
  • Calendar: quick access to calendar information and appointments; data is integrated with Evolution
  • Activities overview - a place to get an overview of all your activities
    • Window view - see all your windows, easily select the window that you want. User see what's going on before they decide what to switch to next.
    • Applications view :
    • Dash to indicate running apps and favourites
  • Integrated messaging
    • No need to switch windows in order to chat
  • Notifications
    • Subtle and non-invasive - let's you get on with your work
      • Expand to give more information - you decide whether to investigate or not
    • Can be used to switch tasks
    • Include buttons for common actions
  • Messaging tray
    • Stores missed notifications so you can deal with them when you are ready
    • Pops up when you return to your computer so you can see what's been going on while you've been away
    • Access your recent conversations
    • Easy access to background activities - can quickly pause and skip tracks in Rhythmbox
  • Window snapping
    • Full-screen and half-screen drag-to-snap
  • Workspaces
    • Super easy to use
    • Workspace thumbnails make it easy to find the workspace you are looking for
    • Launch an app on a workspace of your choosing by dragging it there
    • Automatically manage themselves - empty workspaces are automatically removed - GNOME tidies up after you

Selling points
  • Designed for a range of modern hardware
    • Different screen sizes
    • Good for poor quality touchpads and input devices
    • Designed with touch in mind
  • Distraction avoidance and focus
    • Messages persist - you deal with them when you are ready for them
    • Messaging tray
    • No distracting dock/window switcher
    • Dark panel means that everything other than your windows fades into the background
    • Distraction avoidance is a response to the needs of contemporary users. Research has demonstrated how distraction is becoming an increasing problem for computer users.
  • Overcomes problems with other desktops (and GNOME 2)
    • Overpopulated notification area
    • Minimise to tray
    • Nested menus require high degree of precision
    • ..
  • Incorporates modern functionality
    • Integrated search - search anything, quickly search the web from your desktop
    • Integrated messaging
  • Enhanced productivity
    • Focus/distraction avoidance
    • Side-by-side windows
    • Super fast launching and switching using keyboard only search
  • Satisfaction and enjoyment
    • Use of physical movement is deeply satisfying
      • Dragging windows to resize
      • Panning overview with swipe
    • Elegant visual design
    • Never bombarding the user with too many options at once
    • GNOME 3 as obedient - interuptions are annoying; we avoid those. GNOME 3 works for the user; not the other way round
    • No flashy animations or bright lights. It's beautiful without being distracting/annoying/overbearing.
    • Assertive quality to the UI - removal of minimise means you focus on what you want to focus on
  • Overview
    • Allows you to view all your activities before you switch task
    • Easily clear up unwanted windows

Redesigned system settings

  • New control center shell - makes it quick and easy to browse all your system settings, avoids long menues (difficult to use for many users, particularly if they have a poor quality pointing device)
  • Search the settings
  • New categories and groupings
    • Easier to understand and to navigate
  • Redesigned settings panels - much much easier to use, uses new widgets (switches)
  • Reduced the bloat - streamlining to give you access to what you need
  • A few newly added settings panels (Language selection, Date & Time, Printers) that were only available as distribution specific tools before

gnome-panel in fallback mode

It probably makes sense to describe some of the changes, so people using the fallback mode to keep a GNOME 2.x feeling know about them.

  • New default layout. UNDECIDED: might be used by default for all users, unless users explicitly choose to migrate their panel configuration
  • Actions to "edit" panels/applets (add/move/remove panels and/or applets) are now only available if user press alt while right-clicking. The rationale is that those actions are not used often, and we don't want people to change/break their config with accidental right-clicks.

Applications

Nautilus

  • Fresh new redesign!
    • New connect to server dialog - much easier to use
    • New sidebar - looks great, organises your locations in an easy to understand way - makes it easy to navigate
    • New toolbar - big cleanup - fresh, clean, streamlined, modern
    • Smart status information - new status bar gives you information when you need it and stays out of the way the rest of the time

Cheese

Epiphany

  • New downloads UI: non intrusive, simpler, no popup windows.
  • New floating statusbar: no need for a permanent one, reducing the window chrome.
  • Now groups tabs by site, just like the old tab-groups extension.
  • Uses libsoup's cache: makes navigation much faster and responsive
  • Fix font sizing: uses desktop-wide fonts by default but allow users to specify custom ones.
    • Note: font sizes are in points not pixels. Firefox and Chrome use pixels. GNOME uses points.
  • New error pages: incredibly nice pages are loaded everytime you hit a navigation error
  • Removed the spinner from the toolbar.
  • Use full content zoom by default
  • Enable the geolocation support of WebKitGTK+ (the user is asked if he wants to share his location)
  • Includes a full year of fixes in WebKitGTK+ 1.4.0
  • about:plugins will likely work again (to be confirmed)
  • BAD, but likely to happen: Flash doesn't work with GTK+ 3.0 :-(

Evince

Totem

  • Support for saving audio and video streams

Evolution

Empathy

  • The spelling suggestions menu has been improved to display one sub-menu per language and you can now add your own words to the dictionnaries.
  • The contact list is now able to display a phone icon when a contact is connected using a mobile device.
  • Empathy is now able to prompt you for your password when it's needed, rather than requiring you to save it when you create the account.
  • Certificates management has been greatly improved and are now integrated with the whole desktop. You can now save any kind of certificate exception.
  • You can now search for contacts on servers.
  • Password of protected rooms can be saved.
  • New incoming calls are now automatically rejected when there is another call active. A notification bubble is displayed telling you about the call you just missed.
  • You can now block annoying contacts.

gedit

  • new search popup similar to chrome
  • mallard help
  • allows to open documents with invalid chars
  • new api for plugins using libpeas
  • added tab groups that allow the user to see several document side by side
  • full support for compressed files, (save/load compressed files)
  • smarter spell checking, it shows spell errors in comments and strings when editing some programming code
  • Added mallard snippets
  • reworked single instance management that provide more commandline options (i.e --wait)
  • Reworked message bus api
  • Tabs dnd use gtk+ implementation instead of homemade one.

Eye of GNOME

  • Switched rendering from GDK to (hopefully faster) Cairo
  • Use a dark theme variant if available to improve image contrast
  • New plugin API using libpeas
  • Clipboard support (eog can copy to the clipboard, but not paste from it)

What's new for administrators

What's new for developers

Massive cleanup and consolidation

Smaller, more consolidated platform.

Depreciation of obsoleted dependencies: libdbus, libglade, libunique, (most of) libsexy, libgnome(ui) (useful functionality partially moved to gtk+ or gnome-desktop), libgnomeprint(ui), libbonobo(ui)

Advantages: simpler platform, quicker and easier to use.

Cairo drawing throughout

GDK no longer wraps the antiquated X11 drawing API; we’ve made a clean break and exclusively rely on cairo for all our drawing needs now. This has also enabled us to remove several other X11-centric concepts such as GCs, colormaps and pixmaps. The hero who did most of this work is Benjamin Otte (Red Hat).

Advantages: more portable, cleaner code, faster - can optimise around Cairo.

Modern input device handling

With GTK+ 3.0, XInput2 is used if available, allowing for:

  • Input devices hotplugging
  • Complex input devices (tablets, ...) are supported out of the box
  • Handles multi*pointer*. Allows for writing collaborative UIs, with multiple users behind pointer/keyboard pairs.
  • Has planted the seed for multitouch handling, which will be available in XInput2.1, scheduled for Xorg 7.7 (August 2011)

Improved theming

GTK+ 3.0 sports a new theming infrastructure, the benefits are:

  • CSS syntax: A subset of the CSS3 syntax is handled, allowing for more complex UIs just using a language that many eyes can recognize.
  • Puts sophisticated visual effects in the hands of theme authors - curves, gradients and alpha colours
  • Thorough Cairo support
  • Colors are RGBA (still requires toplevel windows to have an ARGB colormap if you want transparent background in these)
  • Supports implicit animations
  • Allows 3rd parties to mimic GTK+ with a lot less hassle

Better layouts

More flexible geometry management, with support for height-for-width, for both widgets and cell renderers. After an initial SoC project by Mathias Hasselmann, this feature was finally brought over the finish line by Tristan Van Berkom (Openismus), who is also maintaining glade and keeping it up-to-date for GTK+ 3.

  • More flexible size allocation (width-for-height, inherited expand flag) = interfaces that are laid out with greater efficiency and elegance

Multiple backend support for GDK

With GTK+ 2.x, you had to recompile your application to have it work with a different GDK backend, since GDK backends were separate libraries. In 3.0, multiple GDK backends can be built into a single library and selected at runtime.

This will make it much easier to move from e.g. X11 to Wayland or from Quartz to X11.

Advantages: future proof - we're ready for the future. Enhances portability.

The GDK drawing API was mapped very closely to the core X drawing API which was invented 20 years ago. This posed a lot of issues when trying to port GTK to other platforms like Microsoft Windows, Apple’s Quartz rendering engine or OpenGL.

With GTK+3, GDK has been mapped to the Cairo API. Cairo is a modern 2D graphics library which supports bezier curves, antialiasing, translucent drawables, antialiased clipping and masking and resolution independence, all of which were not available in the GDK API.

This big refactoring has clear consequences:

- Better performace: In a lot of cases this was not even possible in the past or very complex due to the mentioned quirkiness of the old drawing operations. With Cairo there is room for optimization.

- Easier to port of GTK+ to other platforms: Previous backends, like the Apple’s Quartz backend, has been improved, the obsolete DirectFB backend has been removed and the experimental Wayland and Broadway/HTML5 backends has been introduced, and they will likely land in a future release.

- GDK has now been refactored to properly separate the backends from the generic “core” GDK code. It is now possible to compile multiple backends into the GDK library. This means the same GTK+ application can be run on multiple backends without recompilation.

Sources: http://blogs.gnome.org/otte/2010/07/27/rendering-cleanup/ http://blogs.gnome.org/kris/2010/12/29/gdk-3-0-on-mac-os-x/ http://hoegsberg.blogspot.com/2011/01/multiple-backends-for-gtk.html

Easy application support

With the integration of D-Bus support in GIO, we could finally add a GtkApplication class that handles a lot of the platform integration aspects of writing an application, such as keeping track of open windows, ensuring uniqueness, exporting actions, etc. This is still a bit of a work in progress, and will be expanded during the 3.x cycle. What we have now is there mainly thanks to the effort of Colin Walters (Red Hat) and Ryan Lortie (Codethink)

  • Allows setting up an application within gnome with less code
  • Support for unique instance and all sorts of fanciness [details here please!]
  • Allows setting up an application within gnome with less code
  • Support for unique instance and all sorts of fanciness [details here please!]

Advantages: makes creating applications faster and easier.

New widgets, improved stock UIs

GtkSwitch, GtkAppChooser, GtkGrid http://library.gnome.org/devel/gtk/2.99/switch.png http://library.gnome.org/devel/gtk/2.99/appchooserdialog.png

Of course, there’s some new widgets as well, such as a switch and an application chooser.

New settings framework

DConf: super fast, simple and logical API. GSettings: allows you to bind an object property to a setting "magically".

Much more developer-friendly configuration management system - a much better API than GConf [better as in simplified?]

You can bind class properties to configuration settings with very little code

  • Faster
  • Much more developer-friendly configuration management system - a much better API than GConf [better as in simplified?][better as in less code to link the UI to the settings database (property bindings)]
  • You can bind class properties to configuration settings with very little code

GObject Introspection

Up to date, first class bindings, all the time.

With GObject Introspection you will able to to access to the GNOME technologies with the language of your choice.

Historically in GNOME, the core platform has been binding-friendly, but there are several details not captured in the C+GObject layer that bindings have needed. The introspection project solves this by putting all of the metadata inside the GObject library itself, using annotations in the comments. This will lead to less duplicate work from binding authors, and a more reliable experience for binding consumers.

Additionally, because the introspection build process will occur inside the GObject libraries themselves, a goal is to encourage GObject authors to consider shaping their APIs to be more binding friendly from the start, rather than as an afterthought.

Other

- first-class dbus support in GIO: GDBus [can this be read as consolidation around dbus?] - good networking support in GIO (including TLS, proxy support, etc) - configuration support in GIO: GSettings, with support for easy binding to properties

Anjuta

Developer documentation

gnome-panel & applets

  • Applet authors are encouraged to think twice about using applets, as they won't work with gnome-shell.
  • Need to port applets to GTK+ 3 and new libpanel-applet library.
  • New libpanel-applet documentation contains useful hints.

Cheese

  • library to use the webcam with effects directly

What's new for accessibility users

mousetweaks

  • The code base has been internally adapted to GNOME 3
  • The Click-type Window of the dwell feature has been improved:
    • The user can now choose between vertical and horizontal orientation for the window
    • The window remembers position and size across restarts
  • The applets have not been ported to GNOME 3 yet
  • Dwelling in gesture mode has been disabled and will probably be completely removed if there is no serious opposition to its removal
  • Remark for distributions' package builders: As there are no gnome-panels in the gnome-shell, the building of the applets is now disabled by default. However, if your distribution continues to offer the gnome-panel, you are encouraged to enable the building of the applets for your distribution's package by using the provided configuration switches.

Regressions

Plans for the next release

TwoPointNinetyone/ReleaseNotes (last edited 2011-03-27 12:34:30 by IgnacioCasalQuinteiro)