Điểm:0

Làm cách nào để thêm khoảng cách giữa các biểu tượng trên khay hệ thống trong Plasma 5.22?

lá cờ cn

Tôi đã dành cả ngày hôm nay để tùy chỉnh máy tính xách tay của mình. Tôi quản lý để làm điều này:

ảnh chụp màn hình tùy chỉnh

Bây giờ, vấn đề ở trên là ở khu vực cụ thể này trong thanh thực đơn trên cùng:

ảnh chụp màn hình khay hệ thống

Plasoid khay hệ thống này không cung cấp bất kỳ cài đặt nào để định cấu hình khoảng cách và vì tôi đã được hướng dẫn bởi nhiều hướng dẫn khác, tôi phải chỉnh sửa tệp này được gọi là /usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml

Như bạn có thể thấy trong ảnh chụp màn hình, lần đầu tiên tôi cố gắng tìm tùy chọn này được gọi là khoảng cách: 0 nhưng tôi thấy rằng mọi người ở kde đã thay đổi nó thành bố cục dạng lưới với khoảng cách cộtkhoảng cách hàng thông số. Tôi đã cố gắng sửa đổi chúng nhưng không nhận được bất kỳ kết quả nào. Tôi thậm chí đã cố gắng thêm khoảng cách tham số của tôi nhưng điều đó cũng không hoạt động. Vì vậy, có cách nào để sửa đổi tệp qml trong Plasma 5.22 để đạt được khoảng cách tùy chỉnh giữa các biểu tượng trong khay hệ thống.

Đây là tệp qml nếu cần:

/*
 * Bản quyền 2011 Marco Martin <[email protected]>
 * Bản quyền 2020 Konrad Materka <[email protected]>
 *
 * Chương trình này là phần mềm miễn phí; bạn có thể phân phối lại và/hoặc sửa đổi
 * nó theo các điều khoản của Giấy phép Công cộng Chung của Thư viện GNU như
 * do Free Software Foundation xuất bản; phiên bản 2 hoặc
 * (tùy chọn của bạn) bất kỳ phiên bản nào sau này.
 *
 * Chương trình này được phân phối với hy vọng rằng nó sẽ hữu ích,
 * nhưng KHÔNG CÓ BẤT KỲ BẢO HÀNH NÀO; thậm chí không có bảo hành ngụ ý của
 * KHẢ NĂNG BÁN ĐƯỢC hoặc SỰ PHÙ HỢP CHO MỘT MỤC ĐÍCH CỤ THỂ. xem
 * Giấy phép Công cộng Chung của Thư viện GNU để biết thêm chi tiết
 *
 * Bạn nên nhận được một bản sao của GNU Library General Public
 * Giấy phép cùng với chương trình này; nếu không, hãy viết thư cho
 * Tổ chức Phần mềm Tự do, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */

nhập QtQuick 2.5
nhập QtQuick.Layouts 1.1
nhập org.kde.plasma.core 2.1 dưới dạng PlasmaCore
nhập org.kde.plasma.plasmoid 2.0
nhập org.kde.draganddrop 2.0 dưới dạng DnD
nhập org.kde.kirigami 2.5 dưới dạng Kirigami

nhập "mặt hàng"

Vùng chuột {
    id: gốc

    thuộc tính chỉ đọc bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical

    Layout.minimumWidth: dọc? PlasmaCore.Units.iconSizes.small : mainLayout.implicitWidth + PlasmaCore.Units.smallSpacing
    Layout.minimumHeight: dọc ? mainLayout.implicitHeight + PlasmaCore.Units.smallSpacing : PlasmaCore.Units.iconSizes.small

    LayoutMirroring.enabled: !vertical && Qt.application.layoutDirection === Qt.RightToLeft
    LayoutMirroring.childrenInherit: true

    bí danh thuộc tính chỉ đọc systemTrayState: systemTrayState
    bí danh thuộc tính chỉ đọc itemSize: taskGrid.itemSize
    bí danh thuộc tính chỉ đọc có thể nhìn thấyLayout: taskGrid
    bí danh thuộc tính chỉ đọc hiddenLayout: expandRepresentation.hiddenLayout

    onWheel: {
        // Không lan truyền các sự kiện bánh xe chưa được xử lý
        bánh xe.accepted = true;
    }

    SystemTrayState {
        id: systemTrayState
    }

    // ở đó buộc các mục phải tải đầy đủ và chúng sẽ được sửa lại lần lượt trong cửa sổ bật lên, mục này *không bao giờ* hiển thị
    Mục {
        id: preloadedStorage
        hiển thị: sai
    }

    CurrentItemHighLight {
        vị trí: plasmoid.location
        cha mẹ: gốc
    }

    DnD.DropArea {
        neo.fill: cha mẹ

        ngăn chặn Ăn cắp: đúng;

        /** Trích xuất tên của applet khay hệ thống trong dữ liệu kéo nếu có
         * ngược lại trả về null*/
        chức năng systemTrayAppletName(sự kiện) {
            if (event.mimeData.formats.indexOf("text/x-plasmoidservicename") < 0) {
                trả về giá trị rỗng;
            }
            var plasmoidId = event.mimeData.getDataAsByteArray("text/x-plasmoidservicename");

            if (!plasmoid.nativeInterface.isSystemTrayApplet(plasmoidId)) {
                trả về giá trị rỗng;
            }
            trả lại plasmoidId;
        }

        onDragEnter: {
            if (!systemTrayAppletName(sự kiện)) {
                event.ignore();
            }
        }

        onDrop: {
            var plasmoidId = systemTrayAppletName(sự kiện);
            nếu (!plasmoidId) {
                event.ignore();
                trở lại;
            }

            nếu (plasmoid.configuration.extraItems.indexOf(plasmoidId) < 0) {
                var extraItems = plasmoid.configuration.extraItems;
                extraItems.push(plasmoidId);
                plasmoid.configuration.extraItems = extraItems;
            }
        }
    }

    // Bố cục chính
    GridLayout {
        id: mainLayout

        khoảng cách hàng: 0
        khoảng cách cột: 0

        neo.fill: cha mẹ

        dòng chảy: dọc? GridLayout.TopToBottom : GridLayout.LeftToRight

        Chế độ hiển thị theo ô {
            id: taskGrid

            Bố cục. Căn chỉnh: Qt.AlignCenter

            tương tác: sai // tắt các tính năng chúng tôi không cần
            dòng chảy: dọc? GridView.LeftToRight : GridView.TopToBottom

            // Kích thước biểu tượng sẽ hiển thị khi không sử dụng cài đặt tự động mở rộng
            thuộc tính chỉ đọc int smallIconSize: PlasmaCore.Units.iconSizes.smallMedium
            thuộc tính chỉ đọc bool autoSize: plasmoid.configuration.scaleIconsToFit

            thuộc tính chỉ đọc int gridThickness: root.vertical? root.width : root.height
            // Nên thay đổi thành 2 hàng/cột trên bảng 56px (ở DPI tiêu chuẩn)
            thuộc tính chỉ đọc int rowsOrColumns: autoSize? 1 : Math.max(1, Math.min(count, Math.floor(gridThickness / (smallIconSize + PlasmaCore.Units.smallSpacing))))

            // Chỉ thêm lề nếu bảng điều khiển lớn hơn biểu tượng nhỏ (để tránh khoảng cách lớn giữa các biểu tượng nhỏ)
            thuộc tính chỉ đọc int smallSizeCellLength: gridThickness < smallIconSize? smallIconSize : smallIconSize + PlasmaCore.Units.smallSpacing * 2
            chiều cao ô: {
                nếu (root.vertical) {
                    trả lại kích thước tự động? root.width + PlasmaCore.Units.smallSpacing : smallSizeCellLength
                } khác {
                    trả lại kích thước tự động? root.height : Math.floor(root.height / rowsOrColumns)
                }
            }
            chiều rộng ô: {
                nếu (root.vertical) {
                    trả lại kích thước tự động? root.width : Math.floor(root.width / rowsOrColumns)
                } khác {
                    trả lại kích thước tự động? root.height + PlasmaCore.Units.smallSpacing : smallSizeCellLength
                }
            }

            // tùy thuộc vào yếu tố hình thức, chúng tôi chỉ tính toán một chiều, thứ hai luôn giống với gốc/cha mẹ
            ngầm định: root.vertical? cellHeight * Math.ceil(count / rowsOrColumns): root.height
            implicitWidth: !root.vertical? cellWidth * Math.ceil(count / rowsOrColumns): root.width

            // Chỉ được sử dụng bởi AbstractItem, nhưng dễ nhất là giữ nó ở đây vì nó
            // sử dụng kích thước từ mục này để tính giá trị cuối cùng
            thuộc tính chỉ đọc int itemSize: {
                nếu (tự động kích thước) {
                    const size = Math.min(implicitWidth / rowsOrColumns, implicitHeight / rowsOrColumns)
                    trả về PlasmaCore.Units.roundToIconSize(Math.min(size, PlasmaCore.Units.iconSizes.enormous))
                } khác {
                    trả về smallIconSize
                }
            }

            mô hình: PlasmaCore.SortFilterModel {
                nguồnMô hình: plasmoid.nativeInterface.systemTrayModel
                vai trò bộ lọc: "Trạng thái hiệu quả"
                filterCallback: function(source_row, value) {
                    giá trị trả về === PlasmaCore.Types.ActiveStatus
                }
            }

            đại biểu: ItemLoader {}

            thêm: Chuyển đổi {
                đã bật: itemSize > 0

                SốHoạt hình {
                    tài sản: "quy mô"
                    từ: 0
                    đến 1
                    nới lỏng.type: Easing.InOutQuad
                    thời lượng: PlasmaCore.Units.longDuration
                }
            }

            di dời: Chuyển đổi {
                // đảm bảo giá trị tỷ lệ trở về 1.0
                //https://doc.qt.io/qt-5/qml-qtquick-viewtransition.html#handling-interrupted-animations
                SốHoạt hình {
                    tài sản: "quy mô"
                    đến 1
                    nới lỏng.type: Easing.InOutQuad
                    thời lượng: PlasmaCore.Units.longDuration
                }
            }

            di chuyển: Chuyển đổi {
                SốHoạt hình {
                    thuộc tính: "x,y"
                    nới lỏng.type: Easing.InOutQuad
                    thời lượng: PlasmaCore.Units.longDuration
                }
            }
        }

        Mũi tên mở rộng {
            id: mở rộng
            Layout.fillWidth: dọc
            Bố cục.fillHeight: !vertical
            Layout.alignment: dọc? Qt.AlignVCenter : Qt.AlignHCenter
            hiển thị: root.hiddenLayout.itemCount > 0
        }
    }

    // Cửa sổ bật lên chính
    PlasmaCore.Dialog {
        id: hộp thoại
        trực quan: gốc
        cờ: Qt.WindowStaysOnTopHint
        vị trí: plasmoid.location
        hideOnWindowDeactivate: !plasmoid.configuration.pin
        hiển thị: systemTrayState.expanded

        onVisibleChanged: {
            systemTrayState.expanded = có thể nhìn thấy
        }
        mainItem: ExpandedRepresentation {
            id: đại diện mở rộng

            Keys.onEscapePressed: {
                systemTrayState.expanded = false
            }

            LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
            LayoutMirroring.childrenInherit: true
        }
    }
}

Tôi cũng không thể tìm thấy bất kỳ cài đặt liên quan nào trong ứng dụng cài đặt.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.