/ 中存储网

如何在Ubuntu上添加桌面图标?的方法及命令

2014-12-19 00:00:00 来源:中存储网

声明

这篇文章是我依据我的薄学而写,用以记录知识,不保证这篇文章是正确的!我的实验环境是Ubuntu x32 11.04,桌面环境是GNOME和LXDE。

这篇文章依照知识共享-署名-相同方式共享 3.0 协议释出内容。

背景知识

Ubuntu是Linux的发行版之一。Linux原本是命令行界面的,为了让它变得像Windows那样有图形界面,于是有了桌面环境的概念。

常用的桌面环境有GNOME、KDE、LXDE、Xfce。为什么它们能作Linux的桌面环境呢,必然是它们有一组共性,使得Linux能跟它们沟通。footnote{用面向对象的语言来说,gnome、KDE、LXDE、Xfce都实现了一个接口。}这些共性可以在http://www.freedesktop.org查阅。

虽然有了这组共性,但谁利用这组共性呢?不是Linux内核本身,而是X Window系统(不要写成Windows)。所以,可以把GNOME、KDE、LXDE、Xfce等更准确地称作X桌面环境。一个新兴的视窗系统是Wayland,它有可能替代臃肿的X Windows系统。

在个别用户全部桌面系统上添加图标

进入/home/loveright/桌面,在此添加的文件都会显示在桌面上。abc.txt, xx.tar等等自然不用多说了,但有一类文件需要特别关注,它们是桌面配置相关文件。参见第ref{sec:desktop file}节“桌面配置相关文件简述”。

在~/桌面里创建一个文件(推荐以.desktop结尾,见第pageref{extension}页脚注),按照第ref{sec:desktop file}节“桌面配置相关文件简述”填上相应的信息。

此时该桌面图标会在所有桌面上显示。

在个别用户个别桌面系统上添加图标
先按上一节介绍的方法,用桌面配置相关文件添加图标,然后在该文件中追加一行,如

OnlyShowIn=LXDE;GNOME;

于是该图标仅在LXDE和GNOME桌面环境中显示。你也可以用NotShowIn字段。

在全部用户全部桌面系统上添加图标

对于此问题似乎没有什么很好的办法,不像在Windows下直接在一个文件夹里一放就行了。在Linux下,此问题要分两步走,1)为所有现有用户添加图标;2)通过设置,使得将来的新用户自动有此图标。

为所有现有用户添加图标

这部分可以手动完成,也可以写一个脚本来完成。总之就是创建一个文件(普通文件或桌面配置相关文件),写好内容,复制到各个用户的~{/桌面}里去。

注意复制过去的文件的所有者和所有组最好是那个用户及那个用户的主组footnote{一般情况下,用户名和用户的主组名是一样的。用ls -l可以看到,第二列是所有者的名称,第三列是所有者的主组的名称。},读写权限自己注意。对于桌面配置相关文件,要设置为可执行。

使将来的新用户自动有此图标

当创建新用户或新用户第一次登陆时,/etc/skel里的文件会自动复制到该用户的家目录里。于是你可以在/etc/skel里创建子文件夹桌面,然后把所有用户都应有的图标--例如firefox.desktop--放进去。那么新创建的用户登录后,火狐浏览器的启动器就自动出现在他的桌面上了。
我Google到另一种方法footnote{http://ubuntuforums.org/showthread.php?t=199027,查阅于2011年7月20日,帖子发表于2006年6月18日},但我没试过:

安装Sabayon,单击“系统->系统管理->User profile editor”
在User profile editor里,单击Add以添加一个新的配置相关文件,然后单击Edit,编辑新创建的配置相关文件。您的当前会话内,将打开一个新的窗口,该窗口是一个新的X会话

用上文教过的方式在桌面上添加一个图标
点击“Edit->Change”,看看有什么变更。保险起见,仅打勾与添加图标有关的代码
一旦你想固定你的图标,就单击相应行上的锁定图标。“Permanent”在这里是指每个用户登录后,图标总是会出现,即使用户先前把它删除了。我还打勾了“Edit->Enforce Mandatory”;除了锁定配置相关文件窗口中的变更,我不知道它究竟还干什么
关闭配置相关文件窗口中变更,然后在Editing Profile window中选择“Profile->Save”,以便退出此窗口
在User Profile Editor window,单击Users,选择哪些用户需要应用此设置,然后关闭此窗口
退出User profile editor。

在全部用户个别桌面系统上添加图标
按上一节介绍的方法,用桌面配置相关文件添加图标,然后在该文件中追加一行,如

OnlyShowIn=LXDE;GNOME;

于是该图标仅在LXDE和GNOME桌面环境中显示。你也可以用NotShowIn字段。

桌面配置相关文件简述
label{sec:desktop file}

一个基本的桌面配置相关文件是这样的:

[Desktop Entry] 
Version=1.0 
Name=Firefox Web Browser 
Name[zh_CN]=Firefox 网络浏览器 
Comment=Browse the World Wide Web 
Comment[zh_CN]=浏览互联网 
GenericName=Web Browser 
GenericName[zh_CN]=网络浏览器 
Exec=firefox %u 
Terminal=false 
X-MultipleArgs=false 
Type=Application 
Icon=firefox 
StartupWMClass=Firefox 
StartupNotify=true 

它其实是用来运行火狐浏览器的,一旦你系统里已经安装了火狐(不是便携版的),你可以把这段代码存为firefox.desktopfootnote{label{extension}扩展名通常是.desktop;但因为Linux不仅仅靠扩展名判断文件类型,只要文件内容符合freedesktop的规范就行。}放进~/桌面。