将子文件夹添加到 vinagre 3.18.2 书签

将子文件夹添加到 vinagre 3.18.2 书签

我想使用 vinagre 3.18.2 中集成的书签功能来组织我的 VNC 连接。由于 GUI 显然不支持添加子文件夹,因此我查看了~/.local/share/vinagre/vinagre-bookmarks.xml.然而,由于缺乏文档,我无法弄清楚向 XML 结构添加子文件夹的正确语法是什么。因此我查看了 vinagre 的源代码,发现VINAGRE_BOOKMARKS_ENTRY_NODE_FOLDER在几个与书签相关的 C 和 C 头文件中使用了该变量。但不幸的是,我也无法从解析器的代码中找到编辑书签 XML 文件的正确语法。

这是我搜索到的文件: ./vinagre/vinagre-window.c ./vinagre/vinagre-bookmarks.c ./vinagre/vinagre-bookmarks-entry.h ./vinagre/vinagre-bookmarks-migration.c ./vinagre/vinagre-bookmarks-tree.c ./vinagre/vinagre-bookmarks-entry.c ./vinagre/vinagre-bookmarks-ui.c

无论如何,如何将子文件夹添加到书签?

答案1

找到了答案vinagre-书签-迁移

要引入子文件夹,请执行以下操作

<folder name="folder name">[..]</folder>

其中[..]可能是项目或进一步的子文件夹。

更新:

我创建了一个简单的 XSD 文件来解析书签:

<?xml version="1.0" encoding="utf-8"?>

<!--
Vinagre bookmarks XML Schema Description

Maintainer: Richard Neumann <r dot neumann at homeinfo fullstop de>

XXX: Use Venetian Blind Design
-->

<!--<xs:schema
    xmlns="https://wiki.gnome.org/Apps/Vinagre/vinagre-bookmarks.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0"
    targetNamespace="https://wiki.gnome.org/Apps/Vinagre/vinagre-bookmarks.xsd">-->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">

    <xs:element name="vinagre-bookmarks" type="VinagreBookmarksRoot">
        <xs:annotation>
            <xs:documentation xml:lang="en">
                Root element for vinagre bookmarks
            </xs:documentation>
        </xs:annotation>
    </xs:element>


    <xs:complexType name="VinagreBookmarksRoot">
        <xs:annotation>
            <xs:documentation xml:lang="en">
                Vinagre bookmarks root folder type
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="folder" type="Folder" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en">
                        Sub-folders
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="item" type="Item" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en">
                        Connection items
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>


    <xs:complexType name="Folder">
        <xs:annotation>
            <xs:documentation xml:lang="en">
                Folder type
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="VinagreBookmarksRoot">
                <xs:attribute name="name" type="xs:string" use="required"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>


    <xs:complexType name="Item">
        <xs:annotation>
            <xs:documentation xml:lang="en">
                A connection item
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="protocol" type="xs:string"/>
            <xs:element name="name" type="xs:string"/>
            <xs:element name="host" type="xs:string"/>
            <xs:element name="username" type="xs:string"/>
            <xs:element name="port" type="xs:unsignedShort"/>
            <xs:element name="fullscreen" type="xs:boolean"/>
            <xs:element name="width" type="xs:unsignedInt"/>
            <xs:element name="height" type="xs:unsignedInt"/>
            <xs:element name="view_only" type="xs:boolean"/>
            <xs:element name="scaling" type="xs:boolean"/>
            <xs:element name="keep_ratio" type="xs:boolean"/>
            <xs:element name="depth_profile" type="xs:unsignedByte"/>
            <xs:element name="lossy_encoding" type="xs:boolean"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>

相关内容