Сегодня я потратил свой день на настройку своего ноутбука. Мне удалось сделать это:
Теперь проблема с вышеизложенным находится в этой конкретной области в верхней строке меню:
Этот плазмоид в системном трее не предоставляет каких-либо настроек для настройки интервала, и, как мне было указано во многих других руководствах, я должен отредактировать этот файл, известный как /usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml
Как вы можете видеть на скриншоте, я сначала попытался найти эту опцию, известную как интервал: 0
но я обнаружил, что люди в kde изменили его на сетку с расстояние между столбцами
и расстояние между рядами
параметры. Я попытался изменить их, но не получил никаких результатов. Я даже пытался добавить интервал
параметр сам, но это тоже не сработало. Итак, есть ли способ изменить файл qml в Plasma 5.22, чтобы добиться настраиваемого интервала между значками на панели задач.
Вот файл qml, если нужно:
/*
* Copyright 2011 Марко Мартин <[email protected]>
* Copyright 2020 Конрад Матерка <[email protected]>
*
* Эта программа является бесплатным программным обеспечением; вы можете распространять его и/или изменять
* на условиях Стандартной общественной лицензии GNU Library, как
* опубликовано Фондом свободного программного обеспечения; либо версия 2, либо
* (на ваш выбор) любая более поздняя версия.
*
*Данная программа распространяется в надежде, что она будет полезна,
* но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии
* КОММЕРЧЕСКАЯ ПРИГОДНОСТЬ или ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. См.
* Стандартная общественная лицензия библиотеки GNU для более подробной информации.
*
* Вы должны были получить копию GNU Library General Public
* Лицензия вместе с этой программой; если нет, напишите в
* Фонд свободного программного обеспечения, Inc.,
* 51 Франклин-стрит, пятый этаж, Бостон, Массачусетс 02110-1301, США.
*/
импортировать QtQuick 2.5
импортировать QtQuick.Layouts 1.1
импортировать org.kde.plasma.core 2.1 как PlasmaCore
импортировать org.kde.plasma.plasmoid 2.0
импортировать org.kde.draganddrop 2.0 как DnD
импортировать org.kde.kirigami 2.5 как Kirigami
импортировать "предметы"
Область мыши {
идентификатор: корень
свойство только для чтения bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical
Layout.minimumWidth: вертикальный? PlasmaCore.Units.iconSizes.small : mainLayout.implicitWidth + PlasmaCore.Units.smallSpacing
Layout.minimumHeight: вертикальный? mainLayout.implicitHeight + PlasmaCore.Units.smallSpacing : PlasmaCore.Units.iconSizes.small
LayoutMirroring.enabled: !vertical && Qt.application.layoutDirection === Qt.RightToLeft
LayoutMirroring.childrenInherit: true
псевдоним свойства только для чтения systemTrayState: systemTrayState
Псевдоним свойства только для чтения itemSize: tasksGrid.itemSize
псевдоним свойства только для чтения visibleLayout: tasksGrid
Псевдоним свойства только для чтения hiddenLayout: expandRepresentation.hiddenLayout
на колесе: {
// Не распространять необработанные события колеса
колесо.принято = правда;
}
SystemTrayState {
идентификатор: systemTrayState
}
//нахождение там приводит к полной загрузке элементов, и они будут переназначены во всплывающем окне один за другим, этот элемент *никогда* не виден
Предмет {
идентификатор: preloadedStorage
видимый: ложь
}
CurrentItemHighLight {
местоположение: плазмоид.местоположение
родитель: корень
}
DnD.DropArea {
anchors.fill: родитель
предотвратить кражу: правда;
/** Извлекает имя апплета системного трея из данных перетаскивания, если оно присутствует
* иначе возвращает ноль*/
функция systemTrayAppletName(событие) {
если (event.mimeData.formats.indexOf("text/x-plasmoidservicename") < 0) {
вернуть ноль;
}
var plasmoidId = event.mimeData.getDataAsByteArray("text/x-plasmoidservicename");
если (!plasmoid.nativeInterface.isSystemTrayApplet(plasmoidId)) {
вернуть ноль;
}
вернуть идентификатор плазмоида;
}
onDragEnter: {
если (!systemTrayAppletName(событие)) {
событие.игнорировать();
}
}
onDrop: {
var plasmoidId = systemTrayAppletName(event);
если (!плазмоидId) {
событие.игнорировать();
возвращаться;
}
если (plasmoid.configuration.extraItems.indexOf(plasmoidId) < 0) {
var extraItems = plasmoid.configuration.extraItems;
extraItems.push(Id плазмоида);
plasmoid.configuration.extraItems = дополнительные предметы;
}
}
}
//Основной макет
Макет сетки {
идентификатор: mainLayout
Расстояние между строками: 0
Интервал столбца: 0
anchors.fill: родитель
поток: вертикальный? GridLayout.TopToBottom : GridLayout.LeftToRight
Вид сетки {
идентификатор: tasksGrid
Макет.выравнивание: Qt.AlignCenter
интерактивный: false // отключаем функции, которые нам не нужны
поток: вертикальный? GridView.LeftToRight: GridView.TopToBottom
// Размер значка для отображения, когда не используется настройка автоматического масштабирования
свойство только для чтения int smallIconSize: PlasmaCore.Units.iconSizes.smallMedium
свойство только для чтения bool autoSize: plasmoid.configuration.scaleIconsToFit
свойство только для чтения int gridThickness: root.vertical ? корень.ширина : корень.высота
// Должно измениться на 2 строки/столбца на панели 56px (в стандартном DPI)
свойство только для чтения int rowsOrColumns: autoSize ? 1 : Math.max(1, Math.min(count, Math.floor(gridThickness/(smallIconSize + PlasmaCore.Units.smallSpacing))))
// Добавляйте поля только в том случае, если панель больше, чем маленькая иконка (чтобы избежать больших промежутков между крошечными иконками)
свойство только для чтения int smallSizeCellLength: gridThickness < smallIconSize ? smallIconSize : smallIconSize + PlasmaCore.Units.smallSpacing * 2
высота ячейки: {
если (корень.вертикаль) {
вернуть авторазмер? root.width + PlasmaCore.Units.smallSpacing : smallSizeCellLength
} еще {
вернуть авторазмер? root.height : Math.floor (root.height / rowsOrColumns)
}
}
ширина ячейки: {
если (корень.вертикаль) {
вернуть авторазмер? root.width : Math.floor (root.width / rowsOrColumns)
} еще {
вернуть авторазмер? root.height + PlasmaCore.Units.smallSpacing : smallSizeCellLength
}
}
//в зависимости от форм-фактора мы рассчитываем только одно измерение, второе всегда совпадает с корнем/родителем
implicitHeight: root.vertical ? cellHeight * Math.ceil (количество / rowsOrColumns): root.height
неявная ширина: !root.vertical ? ширина ячейки * Math.ceil (количество / rowsOrColumns): root.width
// Используется только в AbstractItem, но проще всего оставить его здесь, так как он
// использует размеры из этого элемента для расчета окончательного значения
свойство только для чтения int itemSize: {
если (авторазмер) {
const size = Math.min (неявная ширина / строки или столбцы, неявная высота / строки или столбцы)
вернуть PlasmaCore.Units.roundToIconSize (Math.min (размер, PlasmaCore.Units.iconSizes.enormous))
} еще {
возврат smallIconSize
}
}
модель: PlasmaCore.SortFilterModel {
исходная модель: plasmoid.nativeInterface.systemTrayModel
filterRole: "эффективный статус"
filterCallback: функция (исходная_строка, значение) {
возвращаемое значение === PlasmaCore.Types.ActiveStatus
}
}
делегат: ItemLoader {}
добавить: переход {
включено: itemSize > 0
ЧислоАнимация {
свойство: "масштаб"
от: 0
до: 1
easing.type: easing.InOutQuad
продолжительность: PlasmaCore.Units.longDuration
}
}
смещено: переход {
//убедитесь, что значение шкалы возвращается к 1,0
//https://doc.qt.io/qt-5/qml-qtquick-viewtransition.html#handling-interrupted-animations
ЧислоАнимация {
свойство: "масштаб"
до: 1
easing.type: easing.InOutQuad
продолжительность: PlasmaCore.Units.longDuration
}
}
двигаться: Переход {
ЧислоАнимация {
свойства: "х, у"
easing.type: easing.InOutQuad
продолжительность: PlasmaCore.Units.longDuration
}
}
}
ExpanderArrow {
идентификатор: расширитель
Layout.fillWidth: вертикальный
Layout.fillHeight: !вертикальный
Layout.alignment: вертикальное? Qt.AlignVCenter : Qt.AlignHCenter
видимый: root.hiddenLayout.itemCount > 0
}
}
//Главное всплывающее окно
PlasmaCore.Диалог {
идентификатор: диалог
VisualParent: корень
флаги: Qt.WindowStaysOnTopHint
местоположение: плазмоид.местоположение
hideOnWindowDeactivate: !plasmoid.configuration.pin
видимый: systemTrayState.expanded
onVisibleChanged: {
systemTrayState.expanded = видимый
}
mainItem: Расширенное представление {
идентификатор: расширенное представление
Ключи.onEscapePressed: {
systemTrayState.expanded = ложь
}
LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
LayoutMirroring.childrenInherit: true
}
}
}
Я также не смог найти никаких связанных настроек в приложении настроек.