Рейтинг:0

Как добавить интервал между значками на панели задач в Plasma 5.22?

флаг cn

Сегодня я потратил свой день на настройку своего ноутбука. Мне удалось сделать это:

настроенный снимок экрана

Теперь проблема с вышеизложенным находится в этой конкретной области в верхней строке меню:

скриншот системного трея

Этот плазмоид в системном трее не предоставляет каких-либо настроек для настройки интервала, и, как мне было указано во многих других руководствах, я должен отредактировать этот файл, известный как /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
        }
    }
}

Я также не смог найти никаких связанных настроек в приложении настроек.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.