Mi-am petrecut ziua de azi personalizând laptopul. Am reusit sa fac asta:
Acum problema cu cele de mai sus este la această regiune specifică din bara de meniu de sus:
Acest plasmoid din bara de sistem nu oferă nicio setare pentru a configura spațierea și, așa cum am fost îndrumat de multe alte ghiduri, ar trebui să editez acest fișier cunoscut ca /usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml
După cum puteți vedea în captura de ecran, am încercat mai întâi să găsesc această opțiune cunoscută ca spatie: 0
dar am descoperit că oamenii de la kde l-au schimbat într-un aspect de grilă cu columnSpacing
și rowSpacing
parametrii. Am incercat sa le modific dar nu am obtinut niciun rezultat. Am încercat chiar să adaug spaţiere
parametru de unul singur, dar nici asta nu a funcționat. Deci, există oricum pentru a modifica fișierul qml în Plasma 5.22 pentru a obține o spațiere personalizată între pictograme din bara de sistem.
Iată fișierul qml dacă este necesar:
/*
* Drepturi de autor 2011 Marco Martin <[email protected]>
* Copyright 2020 Konrad Materka <[email protected]>
*
* Acest program este software gratuit; îl puteți redistribui și/sau modifica
* în conformitate cu termenii Licenței Publice Generale a Bibliotecii GNU ca
* publicat de Free Software Foundation; fie versiunea 2, fie
* (la alegerea dvs.) orice versiune ulterioară.
*
* Acest program este distribuit în speranța că va fi util,
* dar FĂRĂ NICIO GARANȚIE; fără măcar garanția implicită a
* VANTABILITATE sau ADECVENȚĂ PENTRU UN ANUMIT SCOP. Vezi
* GNU Library General Public License pentru mai multe detalii
*
* Ar fi trebuit să primiți o copie a Bibliotecii GNU General Public
* Licență împreună cu acest program; dacă nu, scrie la
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, SUA.
*/
importa QtQuick 2.5
import QtQuick.Layouts 1.1
importați org.kde.plasma.core 2.1 ca PlasmaCore
import org.kde.plasma.plasmoid 2.0
importați org.kde.dragandrop 2.0 ca DnD
importați org.kde.kirigami 2.5 ca Kirigami
importa "articole"
MouseArea {
id: rădăcină
proprietate readonly bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical
Layout.minimumWidth: vertical ? PlasmaCore.Units.iconSizes.small : mainLayout.implicitWidth + PlasmaCore.Units.smallSpacing
Layout.minimumHeight: vertical ? mainLayout.implicitHeight + PlasmaCore.Units.smallSpacing : PlasmaCore.Units.iconSizes.small
LayoutMirroring.enabled: !vertical && Qt.application.layoutDirection === Qt.RightToLeft
LayoutMirroring.childrenInherit: adevărat
alias de proprietate numai în citire systemTrayState: systemTrayState
alias de proprietate numai în citire itemSize: tasksGrid.itemSize
Alias de proprietate numai în citire visibleLayout: tasksGrid
Alias de proprietate numai în citire hiddenLayout: expandedRepresentation.hiddenLayout
pe roată: {
// Nu propaga evenimente de roată necontrolate
roată.acceptat = adevărat;
}
SystemTrayState {
id: systemTrayState
}
//fiind acolo forțează elementele să se încarce complet, iar acestea vor fi reparentate în fereastra pop-up unul câte unul, acest articol nu este *niciodată* vizibil
articol {
id: preloadedStorage
vizibil: fals
}
CurrentItemHighLight {
localizare: plasmoid.localizare
părinte: rădăcină
}
DnD.DropArea {
ancore.fill: părinte
previne Furtul: adevărat;
/** Extrage numele applet-ului barei de sistem din datele de glisare, dacă este prezent
* altfel returnează null*/
funcția systemTrayAppletName(eveniment) {
if (event.mimeData.formats.indexOf("text/x-plasmoidservicename") < 0) {
returnează nul;
}
var plasmoidId = event.mimeData.getDataAsByteArray("text/x-plasmoidservicename");
dacă (!plasmoid.nativeInterface.isSystemTrayApplet(plasmoidId)) {
returnează nul;
}
return plasmoidId;
}
onDragEnter: {
dacă (!systemTrayAppletName(eveniment)) {
event.ignore();
}
}
onDrop: {
var plasmoidId = systemTrayAppletName(eveniment);
if (!plasmoidId) {
event.ignore();
întoarcere;
}
if (plasmoid.configuration.extraItems.indexOf(plasmoidId) < 0) {
var extraItems = plasmoid.configuration.extraItems;
extraItems.push(plasmoidId);
plasmoid.configuration.extraItems = extraItems;
}
}
}
//Aspect principal
GridLayout {
id: mainLayout
rowSpacing: 0
spațiere coloane: 0
ancore.fill: părinte
flux: vertical ? GridLayout.TopToBottom : GridLayout.LeftToRight
GridView {
id: tasksGrid
Layout.alignment: Qt.AlignCenter
interactiv: false //dezactivează funcțiile de care nu avem nevoie
flux: vertical ? GridView.LeftToRight : GridView.TopToBottom
// Dimensiunea pictogramei de afișat atunci când nu utilizați setarea de scalare automată
proprietate readonly int smallIconSize: PlasmaCore.Units.iconSizes.smallMedium
proprietate readonly bool autoSize: plasmoid.configuration.scaleIconsToFit
proprietate readonly int gridThickness: root.vertical ? root.width : root.height
// Ar trebui să se schimbe la 2 rânduri/coloane pe un panou de 56 px (în DPI standard)
proprietate readonly int rowsOrColumns: autoSize ? 1 : Math.max(1, Math.min(număr, Math.floor(gridThickness / (smallIconSize + PlasmaCore.Units.smallSpacing))))
// Adăugați margini numai dacă panoul este mai mare decât o pictogramă mică (pentru a evita spațiile mari între pictogramele mici)
proprietate readonly int smallSizeCellLength: gridThickness < smallIconSize ? smallIconSize : smallIconSize + PlasmaCore.Units.smallSpacing * 2
CellHeight: {
dacă (rădăcină.verticală) {
returnează autoSize? root.width + PlasmaCore.Units.smallSpacing : smallSizeCellLength
} altfel {
returnează autoSize? root.height : Math.floor(root.height / rowsOrColumns)
}
}
cellWidth: {
dacă (rădăcină.verticală) {
returnează autoSize? root.width : Math.floor(root.width / rowsOrColumns)
} altfel {
returnează autoSize? root.height + PlasmaCore.Units.smallSpacing : smallSizeCellLength
}
}
//în funcție de factorul de formă, calculăm o singură dimensiune, a doua este întotdeauna aceeași cu rădăcină/părinte
implicitHeight: root.vertical ? cellHeight * Math.ceil(count / rowsOrColumns) : root.height
implicitWidth: !root.vertical ? cellWidth * Math.ceil(count / rowsOrColumns) : root.width
// Folosit numai de AbstractItem, dar este cel mai ușor să-l păstrați aici de când este
// folosește dimensiunile din acest articol pentru a calcula valoarea finală
proprietate numai citire int itemSize: {
if (autoSize) {
dimensiune const = Math.min(Lățime implicită / rowsOrColumns, implicitHeight / rowsOrColumns)
return PlasmaCore.Units.roundToIconSize(Math.min(size, PlasmaCore.Units.iconSizes.enormous))
} altfel {
returnează smallIconSize
}
}
model: PlasmaCore.SortFilterModel {
sourceModel: plasmoid.nativeInterface.systemTrayModel
filterRole: „effectiveStatus”
filterCallback: function(source_row, value) {
valoarea returnată === PlasmaCore.Types.ActiveStatus
}
}
delegat: ItemLoader {}
adăugați: Tranziție {
activat: itemSize > 0
NumberAnimation {
proprietate: "scale"
de la: 0
la: 1
easing.type: Easing.InOutQuad
durata: PlasmaCore.Units.longDuration
}
}
deplasat: tranziție {
//asigură-te că valoarea scalei revine la 1.0
//https://doc.qt.io/qt-5/qml-qtquick-viewtransition.html#handling-interrupted-animations
NumberAnimation {
proprietate: "scale"
la: 1
easing.type: Easing.InOutQuad
durata: PlasmaCore.Units.longDuration
}
}
mutare: tranziție {
NumberAnimation {
proprietăți: "x,y"
easing.type: Easing.InOutQuad
durata: PlasmaCore.Units.longDuration
}
}
}
ExpanderArrow {
id: expander
Layout.fillWidth: verticală
Layout.fillHeight: !vertical
Layout.alignment: vertical ? Qt.AlignVCenter : Qt.AlignHCenter
vizibil: root.hiddenLayout.itemCount > 0
}
}
//Fără pop-up principală
PlasmaCore.Dialog {
id: dialog
visualParent: rădăcină
steaguri: Qt.WindowStaysOnTopHint
localizare: plasmoid.localizare
hideOnWindowDeactivate: !plasmoid.configuration.pin
vizibil: systemTrayState.expanded
onVisibleChanged: {
systemTrayState.expanded = vizibil
}
mainItem: ExpandedRepresentation {
id: expandedRepresentation
Keys.onEscapePressed: {
systemTrayState.expanded = fals
}
LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
LayoutMirroring.childrenInherit: adevărat
}
}
}
Nu am reușit să găsesc nicio setare asociată în aplicația de setări.