Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
configuration-avancee-unity-2d [Le 14/05/2012, 07:48] fabux retouche |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Unity personnalisation}} | ||
- | ---- | ||
- | ====== Configuration avancée d'Unity 2D ====== | ||
- | Les outils étant encore rares, voire inexistants, pour personnaliser [[:Unity 2D]], cette page se propose de modifier les fichiers en //.qml// qui permettent de configurer à votre goût cet [[:environnements|environnement]].\\ | ||
- | Notez cependant que les changements réalisés affecteront tous les utilisateurs du système et pas seulement vous. S'il y a plus d'un utilisateur sur votre PC, demandez leur avis avant d'appliquer les changements ;)\\ | ||
- | |||
- | <note>Ces modifications seront à renouveler après chaque mise à jour d'[[:Unity 2D]]</note> | ||
- | |||
- | <note important>Bien qu'elles semblent fonctionner sans problème, les manipulations données ci-dessous peuvent engendrer des bugs par la suite et rendre [[:unity_2d|Unity-2D]] instable. C'est pourquoi, il est fortement conseillé __avant__ toute modification de fichier, d'en faire en une [[:tutoriel:comment_sauver_et_restaurer_un_fichier|sauvegarde]]. | ||
- | |||
- | Et si toutefois la configuration ne fonctionnait pas et la restauration du fichier d'origine n'arrangeait rien, il est possible de réinstaller le paquet associé selon la section concernée par la [[:commande_shell|commande]] | ||
- | <code>sudo apt-get install --reinstall <nom_du_paquet></code> | ||
- | où <nom_du_paquet> sera à remplacer par | ||
- | * //unity-2d-panel// : si vous avez suivi la section FIXME | ||
- | * //unity-2d-launcher// : pour la section FIXME | ||
- | * //unity-2d-places// : pour la section FIXME | ||
- | * //unity-2d-spread// : pour la section FIXME | ||
- | </note> | ||
- | |||
- | ===== Le tableau de bord : Home Dash ===== | ||
- | ==== Modifier la fonction d'accueil du Tableau de Bord ==== | ||
- | |||
- | Ceci rendra l'accueil habituel du [[:unity#tableau_de_bord_dash|tableau de bord]] //Home Dash// inaccessible : sa fonction d'affichage redirigera vers une autre fonction. | ||
- | |||
- | * [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/usr/share/unity-2d/places/dash.qml** ou le cas échéant **/usr/share/unity-2d/shell/dash/Dash.qml** ((pour Unity 2D >= 5.4)). | ||
- | * Cherchez vers la ligne 110 la fonction **function activateHome() {** | ||
- | * Retirez le contenu de cette fonction en faisant attention aux parenthèses (il faut bien supprimer jusqu'au bout de la fonction de façon à n'avoir plus que :<code cpp-qt> function activateHome() { | ||
- | } | ||
- | </code>Cette fonction correspond à l'action à effectuer lorsque l'on clique sur le bouton Ubuntu. | ||
- | * Ajoutez entre les accolades //activateLens("<lensId>")// où <lensID> sera remplacé par le nom ou le numéro de la lens que vous voulez avoir à l'ouverture: | ||
- | * **applications.lens** pour les applications | ||
- | * **commands.lens** pour saisir une commande | ||
- | * **files.lens** pour accéder au fichier | ||
- | * **music.lens** pour accéder au dossier **Musique** dans votre //Dossier Personnel// | ||
- | Après modification, votre fonction devrait ressembler à ça : | ||
- | <code cpp-qt> function activateHome() { | ||
- | activateLens("applications.lens") | ||
- | } | ||
- | </code> | ||
- | Au prochain démarrage d'Unity 2D, le bouton Ubuntu devrait maintenant afficher la fonction que vous avez choisi. | ||
- | |||
- | ==== Retirer l'icône du Home Dash ==== | ||
- | === Unity 2D <= 5.4 === | ||
- | * [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/usr/share/unity-2d/places/LensBar.qml**. | ||
- | * Chercher vers la ligne 96 un code similaire à celui-ci: <code cpp-qt> /* Need to manually include the Home lens */ | ||
- | LensButton { | ||
- | id: homeLens | ||
- | |||
- | Accessible.name: u2d.tr("home") | ||
- | |||
- | focus: true | ||
- | icon: "artwork/lens-nav-home.svg" | ||
- | onClicked: dash.activateHome() | ||
- | active: ( dashView.activeLens == "" ) | ||
- | iconWidth: lensBar.iconWidth | ||
- | iconSpacing: lensBar.iconSpacing | ||
- | width: iconWidth+iconSpacing | ||
- | height: lensContainer.height | ||
- | } | ||
- | </code> | ||
- | * Remplacez-le par : <code cpp-qt> /* Need to manually include the Home lens */ | ||
- | LensButton { | ||
- | id: homeLens | ||
- | |||
- | Accessible.name: u2d.tr("home") | ||
- | |||
- | focus: false | ||
- | icon: "" | ||
- | onClicked: dash.activateHome() | ||
- | active:false | ||
- | iconWidth: 0 | ||
- | iconSpacing: 0 | ||
- | width: 0 | ||
- | height: 0 | ||
- | } | ||
- | </code> | ||
- | La lens //Home// ne devrait plus s'afficher la prochaine fois que vous ouvrirez votre session. | ||
- | |||
- | === Unity 2D >= 5.4 === | ||
- | * [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/usr/share/unity-2d/shell/dash/LensBar.qml**. | ||
- | * Chercher un code similaire à celui-ci (proche de la ligne 97) : <code cpp-qt> Repeater{ | ||
- | id: repeater | ||
- | |||
- | model: visibleLenses | ||
- | delegate: LensButton { | ||
- | Accessible.name: u2d.tr(item.name) | ||
- | |||
- | /* Heuristic: if iconHint does not contain a '/' then it is an icon name */ | ||
- | icon: { | ||
- | if (item.id == "home.lens") { | ||
- | return "artwork/lens-nav-home.svg" | ||
- | } | ||
- | item.iconHint.indexOf("/") == -1 ? "image://icons/" + item.iconHint : item.iconHint | ||
- | } | ||
- | active: { | ||
- | /* we need this in order to activate the arrow when using a custom shortcuts file */ | ||
- | if (item.id == "home.lens" && declarativeView.activeLens == "") { | ||
- | return true | ||
- | } | ||
- | return item.viewType == Lens.LensView | ||
- | } | ||
- | onClicked: { | ||
- | if (item.id == "home.lens") { | ||
- | dash.activateHome() | ||
- | } else { | ||
- | dash.activateLens(item.id) | ||
- | } | ||
- | } | ||
- | iconWidth: lensBar.iconWidth | ||
- | iconSpacing: lensBar.iconSpacing | ||
- | width: iconWidth+iconSpacing | ||
- | height: lensContainer.height | ||
- | } | ||
- | } | ||
- | </code> | ||
- | * Remplacez-le par : <code cpp-qt> Repeater{ | ||
- | id: repeater | ||
- | |||
- | model: visibleLenses | ||
- | delegate: LensButton { | ||
- | Accessible.name: u2d.tr(item.name) | ||
- | |||
- | /* Heuristic: if iconHint does not contain a '/' then it is an icon name */ | ||
- | icon: { | ||
- | if (item.id == "home.lens") { | ||
- | return "" | ||
- | } | ||
- | item.iconHint.indexOf("/") == -1 ? "image://icons/" + item.iconHint : item.iconHint | ||
- | } | ||
- | active: { | ||
- | return item.viewType == Lens.LensView | ||
- | } | ||
- | onClicked: { | ||
- | dash.activateLens(item.id) | ||
- | } | ||
- | iconWidth: lensBar.iconWidth | ||
- | iconSpacing: lensBar.iconSpacing | ||
- | width: iconWidth+iconSpacing | ||
- | height: lensContainer.height | ||
- | } | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Les loupes ===== | ||
- | ==== Avoir les loupe en haut à droite du Tableau de bord ==== | ||
- | <note important>Ceci a été testé pour Unity 2D 5.2, il peut donc y avoir des différences avec les anciennes versions d'Unity 2D.</note> | ||
- | |||
- | * [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/usr/share/unity-2d/places/dash.qml** | ||
- | * Cherchez ce code : <code cpp-qt> | ||
- | Item { | ||
- | id: content | ||
- | |||
- | anchors.fill: parent | ||
- | /* Margins in DesktopMode set so that the content does not overlap with | ||
- | the border defined by the background image. | ||
- | */ | ||
- | anchors.bottomMargin: background.bottomBorderThickness | ||
- | anchors.rightMargin: background.rightBorderThickness | ||
- | |||
- | /* Unhandled keys will always be forwarded to the search bar. That way | ||
- | the user can type and search from anywhere in the interface without | ||
- | necessarily focusing the search bar first. */ | ||
- | /* FIXME: deactivated because it makes the user lose the focus very often */ | ||
- | //Keys.forwardTo: [search_entry] | ||
- | |||
- | SearchEntry { | ||
- | id: search_entry | ||
- | |||
- | focus: true | ||
- | /* FIXME: check on visible necessary; fixed in Qt Quick 1.1 | ||
- | ref: http://bugreports.qt.nokia.com/browse/QTBUG-15862 | ||
- | */ | ||
- | KeyNavigation.right: filterPane.visible ? filterPane : search_entry | ||
- | KeyNavigation.down: pageLoader | ||
- | |||
- | anchors.top: parent.top | ||
- | anchors.topMargin: 11 | ||
- | anchors.left: parent.left | ||
- | anchors.leftMargin: 10 | ||
- | anchors.right: filterPane.left | ||
- | anchors.rightMargin: 15 | ||
- | |||
- | height: 42 | ||
- | |||
- | active: dash.active | ||
- | placeHolderText: { | ||
- | if(dash.currentPage != undefined && dash.currentPage.model.searchHint) | ||
- | return dash.currentPage.model.searchHint | ||
- | else | ||
- | return u2d.tr("Search") | ||
- | } | ||
- | |||
- | onSearchQueryChanged: if (dash.currentPage != undefined) dash.currentPage.model.searchQuery = searchQuery | ||
- | onActivateFirstResult: if (dash.currentPage != undefined) dash.currentPage.activateFirstResult() | ||
- | } | ||
- | |||
- | FilterPane { | ||
- | id: filterPane | ||
- | |||
- | KeyNavigation.left: search_entry | ||
- | |||
- | /* FilterPane is only to be displayed for lenses, not in the home page or Alt+F2 Run page */ | ||
- | visible: declarativeView.activeLens != "home.lens" && declarativeView.activeLens != "" && declarativeView.activeLens != "commands.lens" | ||
- | lens: visible && currentPage != undefined ? currentPage.model : undefined | ||
- | |||
- | anchors.top: search_entry.anchors.top | ||
- | anchors.topMargin: search_entry.anchors.topMargin | ||
- | anchors.bottom: lensBar.top | ||
- | headerHeight: search_entry.height | ||
- | width: 300 | ||
- | anchors.right: parent.right | ||
- | anchors.rightMargin: 15 | ||
- | } | ||
- | |||
- | Loader { | ||
- | id: pageLoader | ||
- | objectName: "pageLoader" | ||
- | |||
- | Accessible.name: "loader" | ||
- | /* FIXME: check on visible necessary; fixed in Qt Quick 1.1 | ||
- | ref: http://bugreports.qt.nokia.com/browse/QTBUG-15862 | ||
- | */ | ||
- | KeyNavigation.right: filterPane.visible && !filterPane.folded ? filterPane : pageLoader | ||
- | KeyNavigation.up: search_entry | ||
- | KeyNavigation.down: lensBar | ||
- | |||
- | anchors.top: search_entry.bottom | ||
- | anchors.topMargin: 9 | ||
- | anchors.bottom: lensBar.top | ||
- | anchors.left: parent.left | ||
- | anchors.right: !filterPane.visible || filterPane.folded ? parent.right : filterPane.left | ||
- | anchors.rightMargin: !filterPane.visible || filterPane.folded ? 0 : 15 | ||
- | onLoaded: item.focus = true | ||
- | |||
- | /* Workaround loss of focus issue happening when the loaded item has | ||
- | active focus and is then destroyed. The active focus was completely | ||
- | lost instead of being relinquished to the Loader. | ||
- | |||
- | Ref.: https://bugreports.qt.nokia.com/browse/QTBUG-22939 | ||
- | */ | ||
- | function setSource(newSource) { | ||
- | var hadActiveFocus = activeFocus | ||
- | source = newSource | ||
- | if (hadActiveFocus) forceActiveFocus() | ||
- | } | ||
- | } | ||
- | |||
- | LensBar { | ||
- | id: lensBar | ||
- | |||
- | KeyNavigation.up: pageLoader | ||
- | |||
- | anchors.bottom: parent.bottom | ||
- | anchors.left: parent.left | ||
- | anchors.right: parent.right | ||
- | height: 44 | ||
- | visible: declarativeView.expanded | ||
- | } | ||
- | } | ||
- | </code> | ||
- | * Remplacez-le par : <code cpp-qt> | ||
- | Item { | ||
- | id: content | ||
- | |||
- | anchors.fill: parent | ||
- | /* Margins in DesktopMode set so that the content does not overlap with | ||
- | the border defined by the background image. | ||
- | */ | ||
- | anchors.bottomMargin: dashView.dashMode == DashDeclarativeView.DesktopMode ? 39 : 0 | ||
- | anchors.rightMargin: dashView.dashMode == DashDeclarativeView.DesktopMode ? 37 : 0 | ||
- | |||
- | visible: dashView.active | ||
- | |||
- | /* Unhandled keys will always be forwarded to the search bar. That way | ||
- | the user can type and search from anywhere in the interface without | ||
- | necessarily focusing the search bar first. */ | ||
- | /* FIXME: deactivated because it makes the user lose the focus very often */ | ||
- | //Keys.forwardTo: [search_entry] | ||
- | |||
- | |||
- | SearchEntry { | ||
- | id: search_entry | ||
- | |||
- | focus: true | ||
- | /* FIXME: check on visible necessary; fixed in Qt Quick 1.1 | ||
- | ref: http://bugreports.qt.nokia.com/browse/QTBUG-15862 | ||
- | */ | ||
- | KeyNavigation.right: filterPane.visible ? filterPane : search_entry | ||
- | KeyNavigation.down: pageLoader | ||
- | |||
- | anchors.top: parent.top | ||
- | anchors.topMargin: 11 | ||
- | anchors.left: parent.left | ||
- | anchors.leftMargin: 10 | ||
- | anchors.right: filterPane.left | ||
- | anchors.rightMargin: 0 | ||
- | |||
- | height: 42 | ||
- | } | ||
- | |||
- | LensBar { | ||
- | id: lensBar | ||
- | |||
- | KeyNavigation.up: pageLoader | ||
- | | ||
- | anchors.top: parent.top | ||
- | anchors.topMargin: 11 | ||
- | anchors.left: search_entry.anchors.right | ||
- | anchors.right: parent.right | ||
- | anchors.rightMargin: 20 | ||
- | | ||
- | height: 42 | ||
- | } | ||
- | |||
- | Loader { | ||
- | id: pageLoader | ||
- | |||
- | Accessible.name: "loader" | ||
- | /* FIXME: check on visible necessary; fixed in Qt Quick 1.1 | ||
- | ref: http://bugreports.qt.nokia.com/browse/QTBUG-15862 | ||
- | */ | ||
- | KeyNavigation.right: filterPane.visible && !filterPane.folded ? filterPane : pageLoader | ||
- | KeyNavigation.up: search_entry | ||
- | KeyNavigation.down: lensBar | ||
- | |||
- | anchors.top: search_entry.bottom | ||
- | anchors.topMargin: 9 | ||
- | anchors.bottom: parent.bottom | ||
- | anchors.left: parent.left | ||
- | anchors.right: !filterPane.visible || filterPane.folded ? parent.right : filterPane.left | ||
- | anchors.rightMargin: !filterPane.visible || filterPane.folded ? 0 : 15 | ||
- | onLoaded: item.focus = true | ||
- | } | ||
- | | ||
- | FilterPane { | ||
- | id: filterPane | ||
- | |||
- | KeyNavigation.left: search_entry | ||
- | |||
- | /* FilterPane is only to be displayed for lenses, not in the home page or Alt+F2 Run page */ | ||
- | visible: dashView.activeLens != "" && dashView.activeLens != "commands.lens" | ||
- | lens: visible && currentPage != undefined ? currentPage.model : undefined | ||
- | |||
- | anchors.top: search_entry.bottom | ||
- | anchors.topMargin: 12 | ||
- | anchors.bottom: parent.bottom | ||
- | headerHeight: 10 | ||
- | width: 300 | ||
- | anchors.right: parent.right | ||
- | anchors.rightMargin: 20 | ||
- | } | ||
- | } | ||
- | </code> | ||
- | |||
- | ==== Retirer le rectangle noir transparent derrière les loupes ==== | ||
- | |||
- | * [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/usr/share/unity-2d/places/LensBar.qml** | ||
- | * Dans le haut du fichier, cherchez :<code cpp-qt > | ||
- | FocusScope { | ||
- | id: lensBar | ||
- | |||
- | /* declare width & spacing of icons as required for layout calculations */ | ||
- | property int iconWidth: 24 | ||
- | property int iconSpacing: 36 | ||
- | |||
- | property variant visibleLenses: SortFilterProxyModel { | ||
- | model: dash.lenses | ||
- | dynamicSortFilter: true | ||
- | |||
- | filterRole: Lenses.RoleVisible | ||
- | filterRegExp: RegExp("^true$") | ||
- | } | ||
- | |||
- | Rectangle { | ||
- | id: background | ||
- | |||
- | anchors.fill: parent | ||
- | color: "black" | ||
- | opacity: 0.22 | ||
- | } | ||
- | </code> | ||
- | * Remplacez **opacity: 0.22** par **opacity: 0** | ||
- | |||
- | ---- | ||
- | //Contributeurs:FIXME // |