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 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 ;)
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
sudo apt-get install --reinstall <nom_du_paquet>
où <nom_du_paquet> sera à remplacer par
- unity-2d-panel : si vous avez suivi la section
- unity-2d-launcher : pour la section
- unity-2d-places : pour la section
- unity-2d-spread : pour la section
Le tableau de bord : Home Dash
Modifier la fonction d'accueil du Tableau de Bord
Ceci rendra l'accueil habituel du tableau de bord Home Dash inaccessible : sa fonction d'affichage redirigera vers une autre fonction.
- 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 1).
- 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 :
function activateHome() { }
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 :
function activateHome() { activateLens("applications.lens") }
Au prochain démarrage d'Unity 2D, le bouton Ubuntu devrait maintenant afficher la fonction que vous avez choisie.
Retirer l'icône du Home Dash
Unity 2D <= 5.4
- Ouvrez le fichier /usr/share/unity-2d/places/LensBar.qml.
- Chercher vers la ligne 96 un code similaire à celui-ci:
/* 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 }
- Remplacez-le par :
/* 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 }
La lens Home ne devrait plus s'afficher la prochaine fois que vous ouvrirez votre session.
Unity 2D >= 5.4
- Ouvrez le fichier /usr/share/unity-2d/shell/dash/LensBar.qml.
- Chercher un code similaire à celui-ci (proche de la ligne 97) :
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 } }
- Remplacez-le par :
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 } }
Les loupes
Avoir les loupe en haut à droite du Tableau de bord
- Ouvrez le fichier /usr/share/unity-2d/places/dash.qml
- Cherchez ce code :
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 } }
- Remplacez-le par :
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 } }
Retirer le rectangle noir transparent derrière les loupes
- Ouvrez le fichier /usr/share/unity-2d/places/LensBar.qml
- Dans le haut du fichier, cherchez :
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 }
- Remplacez opacity: 0.22 par opacity: 0
Contributeurs: