Linux GNOME桌面环境Nautilus的研究及改进
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
地址改变有两种可能情况:一种是视图组件请 求改变地址;二是外壳自身改变地址,比如用户在地 址栏中输入URI,或按了后退和前进按钮,或选择书 签等。
当视图组件请求改变地址时,视图组件调用 Nautilus—ViewFrame—report—location—change,如前所
I期
倪贞等:Linux GNOME桌Байду номын сангаас环境Nautilus的研究及改进
Key words:Linux Desktop;Usability;GNOME;Component;CORBA;Nautilus
1引 言
由于Linux操作系统性能稳定,功能强劲,开放 源代码等诸多优点,因而广受欢迎并且迅猛发展。 Linux不仅用作服务器表现出色,用作桌面操作系统 也毫不逊色。发展我国自主的操作系统对于保障网 络和信息安全以及振兴中国软件产业至关重要,而 Linux正是发展中国自主操作系统的最佳选择。
Nautilus 2.6功能已经非常强大,但是在易用性 方面仍然存在一些不足,包括中文支持方面。下文 列出了部分改进,也有助于Linux开发者对Nautilus 的进一步优化。 4.1侧窗格“信息”面板的改进
测窗格“信息”面板显示的是文件信息(包括类 型、大小),以及可选的“打开方式”。很大的缺陷是 单击选中窗口中的文件或文件夹,“信息”面板显示 的并不是选中文件的信息,仍然是上层目录的信息, 即地址栏中路径指示的文件信息,如图2所示。
文章编号:1002—2279(2006)01—0047—04
Research and Improvement of Nautilus for Linux GNOME Desktop NI Zhen,WANG Zi—qiang,PENG Cheng—lei,et al
(Department of Electronic Science and Engineering of?Ca咖ng University,Nanjing 210093,China)
2 Nautilus的基本模块
Nautilus依赖于GNOME开发平台的大部分模 块,其中尤为重要的有Gnome—vfs,Bonobo,EEL等。
GNOME提供一组核心库,为创建GNOME应用
程序提供了一个极佳的开发平台。这包括用于创建 图形用户界面的Gtk+和Glib库;用于创建统一外 观和感受的应用程序的高级组件;快速且精简的 CORBA ORB即ORBit;处理配置文件的各项功能; 处理XML数据和HrI:-IIp连接的库;更重要的如组件 系统和打印及字体架构等等。
2。4 Nautilus
Nautilus本身由几部分组成。除了主程序执行 代码,还有组件的执行代码和库。
Libnautilus—private是Nautilus内部的一个库, 包含Nautilus许多核心功能,比如元数据的处理,卷 控制,垃圾处理,文件操作,图标容器控件和鼠标脱 放处理。
Libnautilus公用库由Nautilus组件使用以简化 代码,解决视图组件和Nautilus窗口的连接以及各 组件和Nautilus菜单和工具栏的集成。最基本的 Nautilus组件接口(Nautilus::View和Nautilus:: ViewFrame)定义于nautilus—view—component.idl 文件。标准Nautilus菜单和工具栏路径列于nauti. 1us—bonobo—ui.h文件。
第1期 2006年2月
微处理机
MICROPROCESSORS
No.1 Feb.,2006
Linux GNOME桌面环境Nautilus的研究及改进
倪 贞,王自强,彭成磊,杨春霞 (南京大学电子科学与S-程系,南京210093)
摘要:Nautilus是Linux桌面操作系统GNOME环境下的文件管理器,是GNOME最重要的程
3 Nautilus框架结构
Nautilus框架结构如图1所示。 Nautilus窗口分为左右两个窗格,与windows资 源管理器类似。主窗格为窗口主要区域,而侧窗格 (左侧)可显示“信息”、“历史”、“徽标”、“注释”、 “树” 万五方个数面据板之一。Nautilus实际上是个容器程
序,包含各种控制、框架和一些Nautilus视图组件。 视图组件有两种,内容视图(content view)和元视图 (meta—view)。内容视图显示在主窗格,元视图显 示在侧窗格,且一次只能显示一个元视图。内容视 图有两种显示目录的方式:图标显示(FMIconView) 和列表显示(FMListVIew)。这两种显示都继承于
NautilusWindow对象用NautilusView对象和对 应的视图组件交互。
NautilusView对象相当于对应视图组件的代理 (proxy)。它提供与Nautilus:View IDL接口相对应 的方法,把Nautilus应用程序对这些方法的调用转 换为对视图组件的CORBA调用,并将视图组件的 这些CORBA调用转换为信号发射出去,这些信号 由相应的NautilusViewFrame对象发出。Nautilus— ViewFrame对象在视图组件中扮演相同角色,相当 于Nautilus应用程序的代理。它提供与Nautilus: ViewFrame IDL相对应的方法,并把视图组件对这些 方法的调用转化为对应用程序的CORBA调用。
主要的程序代码位于src目录。Nautilus从 nautilus—main.c启动,另外重要文件有nautilus—
application.C,nautilus—window.e,Nautilus—window
—manage—views.C等,这些代码主要处理打开的各 种窗口和对话框,并管理菜单、工具栏和视图组件。 src目录下的file—manager目录包含两种默认目录 显示(图标显示和列表显示)的实现。
·49·
述,应用程序的相应NautilusView对象将会发出“re— port—location—change”信号o NautilusWindow和这些 信号相联系,将知道这个请求。应用程序将决定是 创建新窗口显示新地址,或在现有窗口显示。其余 工作如下,与外壳自身地址改变相同。
当外壳自身地址改变时,“location—changed”信 号被发射,信号处理函数调用“nautilus—window—go— to”函数,传递将打开文件的URI。通常首先并人特 定的菜单和工具栏项,然后使用异步gnome—vfs调 用加载文件或文件夹。 4 Nautilus的改进
2.1 Gnome—vfs
Gnome—vfs是GNOME的基本I/O抽象层。它 实现类posix标准的文件API,这些API基于URI而 非路径。这个库是模块化的。Gnome—vfs包含本 地文件、http、ftp、ssh等模块。
Gnome—vfs文件操作有两种方式,同步和异 步。同步方式下调用在等待结果时会阻塞。异步方 式下先注册想要执行的操作,以及在I/O完成后所 要调用的回调函数,Gnome—vfs然后将操作分配给 一组执行I/O的工作线程,并在完成时唤醒主线程。 为了能快速响应用户输人而不产生阻塞,Nautilus只 采用异步方式。
Abstract:Nautilus is the official file manager for Linux GNOME desktop,which is one of the most important applications of GNOME.This paper studies the architecture of Nautilus,and makes some im— provement based on the latest release Nautilus 2.6 to enhance its usability.This will help to popularize Linux as a desktop operating system in China.
2.2 Bonobo
Bonobo的目的是为Unix平台提供一套组件编 写和符合文档的标准环境。GNOME只是其中的一
作者简介:倪贞(1981一),女,江苏无锡人,硕士研究生,主研方向:Linux桌面操作系统和嵌入式系统的研究。 收稿日期:2004—07一17
万方数据
-48·
微处理机
2006焦
个实现。组件是指提供了定义完善的接口,并被设 计来与其它组件协同工作的一种软件。在Bonobo 体系中,CORBA是将组件们联系在一起的通信层。 使用CORBA做底层,组件及使用组件的软件可以 用任何语言编写而不影响交互。Nautilus由于采用 了Bonobo组件层,所以能和其他GNOME组件进行 无缝结合。在GNOME平台中Bonobo由3部分组 成,bonobo—activation,libbonobo和libbonoboui。 Nautilus主要使用Bonobo中的BonoboControl接口, 以便将文件和路径视图组件嵌人Nautilus窗口。
这与用户的使用习惯很不相符。应当在用户单 击选中时,“信息”面板就显示选中文件或文件夹的 信息,并可由用户选择使用什么程序打开。
图2改进前选中文件时信息面板显不
分析执行过程:当用户在视图窗格中改变选择 文件时,将产生“selection_changed”信号。其回调函 数selection—changed—callback位于fm—icon—view.C 文件。通过层层调用,该视图组件调用ViewFrame 方法report selection—change与应用程序交互,产生 一CORBA消息,其实现为Impl—Nautilus—ViewFrame _report_selection—change,位于Nautilus—view—frame —corba.C文件。它将产生一个“change—selection” 信号, 万该方信数号据的处理函数change—selection—callback
FMDirectoryView。Nautilus—directory—view—ui.
xml中包括了所有基本文件操作比如打开,删除,重 命名等。
图1 Nautilus结构图
每个Nautilus窗口有一个NautilusWindoW对 象,它继承于BonoboWindow,以使用Bonobo菜单和 工具条。NautilusWindow实际上是一个外壳 (shell),它有一个用户界面,由一些标准的顶层菜 单和工具栏组成。用户界面定义于src/nautilus— shell—ui.xml文件。外壳主要用于处理地址之间的 转换,并激活和管理用来显示当前地址的组件。
位于nautilus—window—manage—views.C文件。 于是在change—selection—callback调用的子函数
2.3 EEL
EEL代表“Eazel Extension Library”,最初是 Nautilus内的libnautilus—internal部分,在开发过程 中分出来成为一个独立的模块。这个库包括开发 Nautilus时实用的功能和控件,通常由Nautilus使 用,但有时会被GNOME平台其他应用程序使用,这 要求代码本身非常稳定并且很实用。
序之一。研究了Nautilus的体系结构,并基于当前最新版本Nautilus 2.6做出改进,以增强其易用
性。这对Linux桌面操作系统在中国的推广将起到一定的推动作用。
关键词:Linux桌面操作系统;易用性;GNOME;组件;CORBA;Nautilus文件管理器
中图分类号:TP311
文献标识码:A
目前最为流行的Linux桌面环境有GNOME和 KDE两种。由于GNOME使用的GTK+图形库是 基于自由软件协议LGPL的,因而GNOME已成为 众多领头企业桌面系统的选择。
长久以来,缺乏友好的用户界面一直制约着 Linux的发展。Nautilus是GNOME下超强功能的文 件管理器,很大程度上解决了上述问题,对图形桌面 环境产生了不可估量的影响。
当视图组件请求改变地址时,视图组件调用 Nautilus—ViewFrame—report—location—change,如前所
I期
倪贞等:Linux GNOME桌Байду номын сангаас环境Nautilus的研究及改进
Key words:Linux Desktop;Usability;GNOME;Component;CORBA;Nautilus
1引 言
由于Linux操作系统性能稳定,功能强劲,开放 源代码等诸多优点,因而广受欢迎并且迅猛发展。 Linux不仅用作服务器表现出色,用作桌面操作系统 也毫不逊色。发展我国自主的操作系统对于保障网 络和信息安全以及振兴中国软件产业至关重要,而 Linux正是发展中国自主操作系统的最佳选择。
Nautilus 2.6功能已经非常强大,但是在易用性 方面仍然存在一些不足,包括中文支持方面。下文 列出了部分改进,也有助于Linux开发者对Nautilus 的进一步优化。 4.1侧窗格“信息”面板的改进
测窗格“信息”面板显示的是文件信息(包括类 型、大小),以及可选的“打开方式”。很大的缺陷是 单击选中窗口中的文件或文件夹,“信息”面板显示 的并不是选中文件的信息,仍然是上层目录的信息, 即地址栏中路径指示的文件信息,如图2所示。
文章编号:1002—2279(2006)01—0047—04
Research and Improvement of Nautilus for Linux GNOME Desktop NI Zhen,WANG Zi—qiang,PENG Cheng—lei,et al
(Department of Electronic Science and Engineering of?Ca咖ng University,Nanjing 210093,China)
2 Nautilus的基本模块
Nautilus依赖于GNOME开发平台的大部分模 块,其中尤为重要的有Gnome—vfs,Bonobo,EEL等。
GNOME提供一组核心库,为创建GNOME应用
程序提供了一个极佳的开发平台。这包括用于创建 图形用户界面的Gtk+和Glib库;用于创建统一外 观和感受的应用程序的高级组件;快速且精简的 CORBA ORB即ORBit;处理配置文件的各项功能; 处理XML数据和HrI:-IIp连接的库;更重要的如组件 系统和打印及字体架构等等。
2。4 Nautilus
Nautilus本身由几部分组成。除了主程序执行 代码,还有组件的执行代码和库。
Libnautilus—private是Nautilus内部的一个库, 包含Nautilus许多核心功能,比如元数据的处理,卷 控制,垃圾处理,文件操作,图标容器控件和鼠标脱 放处理。
Libnautilus公用库由Nautilus组件使用以简化 代码,解决视图组件和Nautilus窗口的连接以及各 组件和Nautilus菜单和工具栏的集成。最基本的 Nautilus组件接口(Nautilus::View和Nautilus:: ViewFrame)定义于nautilus—view—component.idl 文件。标准Nautilus菜单和工具栏路径列于nauti. 1us—bonobo—ui.h文件。
第1期 2006年2月
微处理机
MICROPROCESSORS
No.1 Feb.,2006
Linux GNOME桌面环境Nautilus的研究及改进
倪 贞,王自强,彭成磊,杨春霞 (南京大学电子科学与S-程系,南京210093)
摘要:Nautilus是Linux桌面操作系统GNOME环境下的文件管理器,是GNOME最重要的程
3 Nautilus框架结构
Nautilus框架结构如图1所示。 Nautilus窗口分为左右两个窗格,与windows资 源管理器类似。主窗格为窗口主要区域,而侧窗格 (左侧)可显示“信息”、“历史”、“徽标”、“注释”、 “树” 万五方个数面据板之一。Nautilus实际上是个容器程
序,包含各种控制、框架和一些Nautilus视图组件。 视图组件有两种,内容视图(content view)和元视图 (meta—view)。内容视图显示在主窗格,元视图显 示在侧窗格,且一次只能显示一个元视图。内容视 图有两种显示目录的方式:图标显示(FMIconView) 和列表显示(FMListVIew)。这两种显示都继承于
NautilusWindow对象用NautilusView对象和对 应的视图组件交互。
NautilusView对象相当于对应视图组件的代理 (proxy)。它提供与Nautilus:View IDL接口相对应 的方法,把Nautilus应用程序对这些方法的调用转 换为对视图组件的CORBA调用,并将视图组件的 这些CORBA调用转换为信号发射出去,这些信号 由相应的NautilusViewFrame对象发出。Nautilus— ViewFrame对象在视图组件中扮演相同角色,相当 于Nautilus应用程序的代理。它提供与Nautilus: ViewFrame IDL相对应的方法,并把视图组件对这些 方法的调用转化为对应用程序的CORBA调用。
主要的程序代码位于src目录。Nautilus从 nautilus—main.c启动,另外重要文件有nautilus—
application.C,nautilus—window.e,Nautilus—window
—manage—views.C等,这些代码主要处理打开的各 种窗口和对话框,并管理菜单、工具栏和视图组件。 src目录下的file—manager目录包含两种默认目录 显示(图标显示和列表显示)的实现。
·49·
述,应用程序的相应NautilusView对象将会发出“re— port—location—change”信号o NautilusWindow和这些 信号相联系,将知道这个请求。应用程序将决定是 创建新窗口显示新地址,或在现有窗口显示。其余 工作如下,与外壳自身地址改变相同。
当外壳自身地址改变时,“location—changed”信 号被发射,信号处理函数调用“nautilus—window—go— to”函数,传递将打开文件的URI。通常首先并人特 定的菜单和工具栏项,然后使用异步gnome—vfs调 用加载文件或文件夹。 4 Nautilus的改进
2.1 Gnome—vfs
Gnome—vfs是GNOME的基本I/O抽象层。它 实现类posix标准的文件API,这些API基于URI而 非路径。这个库是模块化的。Gnome—vfs包含本 地文件、http、ftp、ssh等模块。
Gnome—vfs文件操作有两种方式,同步和异 步。同步方式下调用在等待结果时会阻塞。异步方 式下先注册想要执行的操作,以及在I/O完成后所 要调用的回调函数,Gnome—vfs然后将操作分配给 一组执行I/O的工作线程,并在完成时唤醒主线程。 为了能快速响应用户输人而不产生阻塞,Nautilus只 采用异步方式。
Abstract:Nautilus is the official file manager for Linux GNOME desktop,which is one of the most important applications of GNOME.This paper studies the architecture of Nautilus,and makes some im— provement based on the latest release Nautilus 2.6 to enhance its usability.This will help to popularize Linux as a desktop operating system in China.
2.2 Bonobo
Bonobo的目的是为Unix平台提供一套组件编 写和符合文档的标准环境。GNOME只是其中的一
作者简介:倪贞(1981一),女,江苏无锡人,硕士研究生,主研方向:Linux桌面操作系统和嵌入式系统的研究。 收稿日期:2004—07一17
万方数据
-48·
微处理机
2006焦
个实现。组件是指提供了定义完善的接口,并被设 计来与其它组件协同工作的一种软件。在Bonobo 体系中,CORBA是将组件们联系在一起的通信层。 使用CORBA做底层,组件及使用组件的软件可以 用任何语言编写而不影响交互。Nautilus由于采用 了Bonobo组件层,所以能和其他GNOME组件进行 无缝结合。在GNOME平台中Bonobo由3部分组 成,bonobo—activation,libbonobo和libbonoboui。 Nautilus主要使用Bonobo中的BonoboControl接口, 以便将文件和路径视图组件嵌人Nautilus窗口。
这与用户的使用习惯很不相符。应当在用户单 击选中时,“信息”面板就显示选中文件或文件夹的 信息,并可由用户选择使用什么程序打开。
图2改进前选中文件时信息面板显不
分析执行过程:当用户在视图窗格中改变选择 文件时,将产生“selection_changed”信号。其回调函 数selection—changed—callback位于fm—icon—view.C 文件。通过层层调用,该视图组件调用ViewFrame 方法report selection—change与应用程序交互,产生 一CORBA消息,其实现为Impl—Nautilus—ViewFrame _report_selection—change,位于Nautilus—view—frame —corba.C文件。它将产生一个“change—selection” 信号, 万该方信数号据的处理函数change—selection—callback
FMDirectoryView。Nautilus—directory—view—ui.
xml中包括了所有基本文件操作比如打开,删除,重 命名等。
图1 Nautilus结构图
每个Nautilus窗口有一个NautilusWindoW对 象,它继承于BonoboWindow,以使用Bonobo菜单和 工具条。NautilusWindow实际上是一个外壳 (shell),它有一个用户界面,由一些标准的顶层菜 单和工具栏组成。用户界面定义于src/nautilus— shell—ui.xml文件。外壳主要用于处理地址之间的 转换,并激活和管理用来显示当前地址的组件。
位于nautilus—window—manage—views.C文件。 于是在change—selection—callback调用的子函数
2.3 EEL
EEL代表“Eazel Extension Library”,最初是 Nautilus内的libnautilus—internal部分,在开发过程 中分出来成为一个独立的模块。这个库包括开发 Nautilus时实用的功能和控件,通常由Nautilus使 用,但有时会被GNOME平台其他应用程序使用,这 要求代码本身非常稳定并且很实用。
序之一。研究了Nautilus的体系结构,并基于当前最新版本Nautilus 2.6做出改进,以增强其易用
性。这对Linux桌面操作系统在中国的推广将起到一定的推动作用。
关键词:Linux桌面操作系统;易用性;GNOME;组件;CORBA;Nautilus文件管理器
中图分类号:TP311
文献标识码:A
目前最为流行的Linux桌面环境有GNOME和 KDE两种。由于GNOME使用的GTK+图形库是 基于自由软件协议LGPL的,因而GNOME已成为 众多领头企业桌面系统的选择。
长久以来,缺乏友好的用户界面一直制约着 Linux的发展。Nautilus是GNOME下超强功能的文 件管理器,很大程度上解决了上述问题,对图形桌面 环境产生了不可估量的影响。