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命令可以用这些信息来判断文件类型,而不必打开它。
- 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
linux桌面系统的约定的更多相关文章
- Linux 桌面玩家指南:04. Linux 桌面系统字体配置要略
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- linux桌面系统开启windows远程访问
本文基于centos系统,且默认你的桌面系统已经安装完成 1.在linux中安装如下软件 sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epe ...
- 5种经典的Linux桌面系统
最近一直在准备Linux相关的PPT,对于一个老码农来说Linux系统自然是比较熟悉了,随口可以说出好几种Linux的版本,然而对于计算机初学者可能就知道windows操作系统.也许你告诉他你可以安装 ...
- Linux 桌面系统字体配置要略
字体显示效果测试 这一段是为了测试宋体字的显示效果,包括宋体里面自带的英文字体,“This is english,how does it look like?”.这一行是小字.后面几个字是加粗的宋体. ...
- ★Linux桌面系统技巧(作为客户端)
[安装chrome浏览器]* 下载(已下载完成):32位:wget https://dl.google.com/linux/direct/google-chrome-stable_current_i3 ...
- Linux桌面系统常用软件和笔记(更新)
(一).下文涉及到的环境 manjaro.deepin.Arch等 有些可以通用 有些不可以通用 (二).常用软件下载 一.桌面美化软件 1.桌面壁纸下载软件: varirety 下载方式:可以在多个 ...
- 将centos 7改造为LINUX桌面系统
http://www.3566t.com/news/ckan/1410774.html CentOS 桌面版安装配置(以CentOS 7为例) http://blog.csdn.net/zhanghu ...
- linux桌面系统 镜像下载
1.Ubuntu 官方下载地址(不推荐,网速较慢):https://www.ubuntu.com/download 阿里云:http://mirrors.aliyun.com/ubuntu-relea ...
- Windows使用VNC远程连接Linux桌面系统
sudo yum -y install tigervnc-server #安装 su - your_user #切换用户 vncpasswd #设置密码 sudo cp /lib/systemd/s ...
随机推荐
- 装上这 10 个插件,你就是这条 Gai 最靓的仔!
直奔主题,给大家推荐 10 个好用的插件. 1.「Adblock Plus」 世界排名第一的免费广告拦截程序 相信大家都有这样的体验,进某个论坛.新闻或者购物网站,广告满天飞,关掉之后还时不时弹出 ...
- 在 VS Code 中遇到的一些问题
1.在安装时未配置右键快捷菜单,想重新添加 最简单的就是重新安装一遍,在安装过程中选择好. 其次可以通过以下注册表脚本导入(保存为 .reg 文件),注意因为有中文字符,需要使用记事本保存为 ANSI ...
- JavaScript初探 四 (程序结构)
JavaScript 结构 JavaScript 程序结构 JavaScript支持几乎和C语言一样的程序结构 分支结构 循环结构 分支结构 条件分支 if-else if语句:判断条件为true则执 ...
- SIP协议分析
- SIP流程 一个标准的SIP通话流程如下: 1. A向B发送一个INVITE消息,邀请B通话. 2.B振铃,向A回复一个RING消息,通知A振铃中,A等待. 3.B提机,向A发一个OK消息, 通 ...
- 简单文件传输协议TFTP分析还原
- 协议介绍 TFTP有如下特征: 1.UDP承载,请求端口固定为69: 2.没有列出目录内容功能: 3.无验证和加密机制: 4.仅有读取或写入文件功能: 5.支持三种不同的传输模式:"ne ...
- 记录MySql错误消息
本章列出了当你用任何主机语言调用MySQL时可能出现的错误.首先列出了服务器错误消息.其次列出了客户端程序消息. B.. 服务器错误代码和消息 服务器错误信息来自下述源文件: · 错误消息信息列在sh ...
- 【原创】CentOS 7 安装解压版mysql5.7
1.将mysql压缩包解压至 /usr/local 文件夹下,将其改名为mysql #解压 tar -zxf mysql-5.7.27-el7-x86_64.tar.gz -C /usr/local/ ...
- Odoo12 之主题创建或扩展
初次使用 Odoo 来制作网站,因Odoo自带代码块效果单一,无法满足当前网站展示效果,需要对当前代码块进行添加或扩展.而这个代码块是属于网站中的布局设计这一块,Odoo 将所有的布局以及逻辑行为,都 ...
- Linux中的硬链接和软链接的概念、区别及用法
概念: 硬链接(hard link): A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指 ...
- Linux-TCP之深入浅出send和recv【转】
转自:https://www.cnblogs.com/JohnABC/p/7238417.html 内容摘自:TCP之深入浅出send和recv.再次深入理解TCP网络编程中的send和recv 建议 ...