# Unity (environnement de bureau)

Unity est un environnement de bureau développé par Canonical Ltd pour son système d'exploitation Ubuntu. Unity fut inclus tout d'abord dans la Netbook Edition d'Ubuntu 10.10 (2010). Il est prévu à l'origine pour utiliser de manière plus efficace le peu d'espace écran disponible sur les netbooks en incluant, par exemple, un lanceur d'application vertical. Au travers de son tableau de bord, Unity permet de faire de la recherche de contenu à la fois localement et en ligne.

## Développement

Même si Ubuntu a jusque-là utilisé l'environnement de bureau GNOME (v2) le fondateur du système d'exploitation, Mark Shuttleworth, a évoqué des différences d'opinions philosophiques à propos de l'expérience utilisateur envers l'équipe de GNOME pour expliquer pourquoi Ubuntu utiliserait désormais Unity comme bureau par défaut à la place de GNOME Shell (v3), à partir d'avril 2011, avec Ubuntu Natty Narwhal (11.04) :
   « Nous participions au fil de discussion de GNOME Shell, et nous avons mis en avant nos points de vue et ils n'ont pas été adoptés par les concepteurs. Nous avons divergé des gens de GNOME Shell sur des points clés de la conception, par exemple combien de menus d'applications devraient apparaître dans le système, comment on devrait chercher pour trouver des applications, comment les applications préférées de chacun devraient être présentées. »
— Mark Shuttleworth.
En novembre 2010, le Community manager d'Ubuntu Jono Bacon expliqua les relations entre GNOME et Unity au sein de la distribution : « Je veux rendre une chose claire comme de l'eau de roche : Ubuntu est une distribution GNOME. Nous livrons la structure GNOME, nous continuerons d'inclure des applications GNOME, et nous optimisons Ubuntu pour GNOME. La seule différence est qu'Unity est un Shell différent pour GNOME, mais nous continuerons à supporter les derniers développements de GNOME Shell dans les archives d'Ubuntu ».
L'interface Shell Unity est maintenant un plugin du gestionnaire de fenêtres Compiz, que Canonical prétend plus rapide que Mutter, le gestionnaire de fenêtres pour lequel GNOME Shell est un plugin. Canonical annonça qu'ils avaient conçu Unity pour les ordinateurs de bureau également et qu'ils feront d'Unity le Shell par défaut pour Ubuntu dans sa version 11.04.
GNOME Shell ne sera pas inclus dans Ubuntu 11.04 Natty Narwhal, parce que son développement n'est pas terminé, mais sera disponible via un PPA (Personal Package Archives), et est attendu pour Ubuntu 11.10.
En novembre 2010, Mark Shuttleworth annonça son intention de faire tourner finalement Unity sur Wayland, à la place de X utilisé sur quasiment tous les systèmes GNU/Linux.
En décembre 2010 quelques utilisateurs ont demandé que le lanceur (en) (ou dock) soit déplaçable de la gauche vers d'autre bords de l'écran, mais Mark Shuttleworth a répondu : « Je crains que ça ne colle pas avec notre objectif de conception, donc nous n'allons pas l'implémenter. Nous voulons le lanceur toujours près du bouton Ubuntu ».
Le 14 janvier 2011, Canonical a également sorti un aperçu de la version 2D d'Unity basée sur Qt et écrite en QML$^,$.
Le 5 avril 2017, Mark Shuttleworth annonce l'abandon de Unity8 (ainsi que des versions mobiles). La version 18.04 d'Ubuntu intègre à la place l'interface Gnome. Le fondateur d'Ubuntu et de Canonical explique ce choix par la fragmentation qu'a causé le choix de développer une interface différente, plus que l'innovation qu'elle aurait dû apporter.

## Licence

Unity est soumis au « Canonical's contributor agreement », demandant aux contributeurs d'attribuer le copyright à Canonical, et permettant potentiellement à l'entreprise de le sortir sous une autre licence. Cette licence pourrait devenir propriétaire.

## Recherche de contenu via le service SmartScopes

Unity permet de rechercher du contenu, qu'il soit stocké en local sur son ordinateur ou en ligne. Pour cela, il agrège des sources de données multiples appelées « scopes ». Il est considéré que le contenu recherché par un utilisateur peut être de nature multiple : vidéos ou musique en ligne, photos sur les réseaux sociaux, articles Wikipédia, articles scientifiques, élément graphiques, informations, ou boutique en ligne. Lorsque l'utilisateur fait une recherche dans le tableau de bord, cette recherche est envoyée au service Smartscopes chez Canonical. Le service va vérifier s'il existe des résultats pour la recherche dans les différentes sources de données agrégées et activées par l'utilisateur, puis va compléter ses résultats en interrogeant de nouveau les sources. Le service SmartScopes fait office alors de proxy. Les résultats sont alors renvoyés vers le poste de l'utilisateur et pondérés suivant différents critères, puis affichés soit dans le tableau de bord, soit dans une des vues matérialisées prévues à cet effet. La recherche en ligne peut toutefois être désactivée via les paramètres système et chaque source de données peut être activée ou désactivée dans les « greffons du tableau de bord ».
Plaçant ainsi des résultats commerciaux sur le bureau, Unity a provoqué les critiques de nombreux utilisateurs qui le considèrent comme un publiciel.

## Versions

Canonical développe deux versions de Unity visuellement identiques, mais techniquement très différentes.
Unity 3D est une extension pour Compiz écrit en C++ et en Vala ce qui permet d'avoir une accélération matérielle sur les systèmes compatibles. Il utilise un framework OpenGL peu connu appelé Nux.
Unity 2D est un ensemble de programmes écrit en QML le langage de Qt. Par défaut, Unity 2D utilise Metacity mais il peut aussi utiliser un gestionnaire de fenêtres accéléré comme Compiz ou KWin.
Unity 2D est utilisé à la place du bureau classique de GNOME sur les ordinateurs qui ne peuvent pas exécuter Unity 3D depuis Ubuntu 11.10.
Unity 2D n'est plus disponible depuis la version 12.10 (The Quantal Quetzal), Ubuntu émule depuis lors unity 3D, mais une baisse de performance en résulte.