• linux桌面系统的约定


    linux系统的桌面系统基本遵循同样的约定。

    mime类型

    在linux下,关于文件类型的信息通常放在/usr/share/mime、/usr/local/share/mime和用户目录下,所有应用程序可以共享这些信息。在该目录下,一般会有以下这些文件:

    • aliases:文件类型的别名。比如application/pdf 有时也称为application/x-pdf 。
    • magic:各种文件的内部标识,用于从文件内容来判断文件类型。如BMP图片文件以BM开头。
    • globs:扩展名与文件类型的对应关系。如*.cpp文件是text/x-c++src类型的。
    • packages目录:用于安装新文件类型用。
    • 其它子目录及其下的文件:更详细的描述各种文件类型。比如image下的jpeg.xml文件描述了jpeg文件类型。为了方便国际化,这些描述信息有各种语言版本。

    mime类型和图标的关联

    各种图标的位置在/usr/share/icons目录下,不同的文件类型可以展示不同的图标。
    图标文件与数据文件的关联。
    在资源管理器中,通常用不同的图标来区分不同的文件类型。同时图标也是桌面主题相关的,主题不同,图标的大小和外观也不一样。图标文件通常存放在/usr/share/icons/主题/大小/mimetypes目录下。

    mime类型和desktop的关联

    desktop类型的文件通常在/usr/share/applications,/usr/local/share/applitcations,~/.local/share/applications等目录下,每个.desktop文件就是一个图标。

    上下文菜单

    上下文菜单放在~/.config/deepin/dde-file-manager目录下,如果想把一个程序添加到上下文菜单中,只需要为该程序在此目录下创建一个json文件。

    • MenuType 菜单类型(必须指定)

    • SingleFile  选中单个文件

    • MultiFiles 选中多个文件

    • SingleDir 选中单个目录

    • MultiDirs 选中多个目录

    • MultiFileDirs 选中多个文件和目录

    • EmptyArea 空白区域

    • Icon 菜单项的指示图标(可选)

    • Icon: /home/djf/Music/usb_normal_16px.svg

    • Text[local] 根据不同的语言环境给出不同的菜单文本(必须指定)

    • Text[zh_CN]: sub文件SingleFile

    • Text[en]: sub文件SingleFile

    • Exec 点击菜单项执行的命令(必须指定)

    • Exec: dde-file-manager 启动文件管理器

    • SubMenu :子菜单列表,子菜单列表不需要再次指定MenuType字段,其他字段参数一样,支持SubMenu中嵌套无限层级级菜单。

    如果MenuType为SingleFile 或者MultiFiles,可以增加下面MimeType和Suffix两个字段来细化菜单控制
    MimeType 文件的MimeType类型,如果指定了这个参数,表示只拓展这个类型的文件右键菜单;以;隔开

    • MimeType:text/plain;image/jpeg
      Suffix 文件的后缀,如果指定了这个参数,表示只拓展后缀名为指定后缀的文件的右键菜单;以;隔开

    • Suffix: md;txt
      如果MimeType和Suffix两个参数同时指定,表示文件类型为MimeType且后缀名为Suffix的文件才支持扩展右键菜单

    壁纸

    /usr/share/wallpapers/deepin
    直接把图片添加到此目录即可。

    Linux比windows的做法科学之处。

    1.  Linux采用了双保险机制,对文件类型的判断更正确,出错的概率更小。
    2.  Linux分离文件类型判断信息和文件关联方式,这样文件类型信息可以被重用。比如file命令可以用这些信息来判断文件类型,而不必打开它。
    3. windows使用注册表方式管理图标,程序之间的关联,而注册表是二进制文件。linux使用纯文本方式管理程序/文件/图标之间的对应关系。

    参考资料

    https://blog.csdn.net/jggyff/article/details/84083655
    http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-0.13.html
    http://www.freedesktop.org/wiki/Standards_2fAddingMIMETutor
    上下文菜单:https://www.jianshu.com/p/48e25cfce842

  • 相关阅读:
    C#开发代码的小技巧1
    17. 装箱、拆箱的最小化
    Google Map开发(一) ASP.NET中调用Google Map API实现简单的地图显示
    C#可空类型
    C#如何扩展类型的内置方法
    Linq合并两个DataTable
    <br style="clear:both" /><br />
    GridView内容<br />换行
    数据库连接字符串大全
    JS将Table导出到Excel
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/12019552.html
Copyright © 2020-2023  润新知