如何在Ubuntu上添加桌面图标?
声明
本文是我依据我的薄学而写,用以记录知识,不保证本文是正确的!我的实验环境是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.desktop\footnote{\label{extension}扩展名通常是.desktop;但因为Linux不仅仅靠扩展名判断文件类型,只要文件内容符合freedesktop的规范就行。}放进
~/桌面。你可以在
http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys获得更多的字段信息。