AfterStep 1.3.1
我仿佛记得昨天才被要求为LJ关于GUI(图形用户界面)的特刊撰写一篇关于AfterStep的文章,而现在它就在这里了。我将重点关注以下几点:
窗口管理器,特别是 AfterStep 的历史
AfterStep 的未来
AfterStep 1.3.1 的桌面理念
我的结论是,最好的 GUI 是生产效率最高的 GUI,但前提是它仍然保持用户友好。用户必须能够自由地使用他们的窗口管理器轻松地完成任何事情。
第一个窗口管理器是 Evans 和 Sutherland 公司的 TWM,它是 Robert Nation 创建 FVWM 的基础。FVWM 被用于创建大多数现代窗口管理器:FVWM2、Enlightenment、amiWM 和 Bowman。FVWM2 被用作 FVWM95 的基础,而 Bowman 演变成了 AfterStep。在这个“树状”层次结构中,出现了一些例外:WindowMaker,NeXT 模拟窗口管理器;以及 KWM,KDE 项目窗口管理器。这两个管理器都是从头开始编写的。
从头开始编写是否比修改现有的窗口管理器更好?它可能会带来个人的满足感,但也会造成重复劳动。由于所有这些程序(FVWM、Bowman 等)都是可以自由再发行的,因此没有必要将相同的代码编写两次。如果您想要的功能已经存在于另一个窗口管理器中,只需获取代码并将其修补到您的程序中。这种方法将为您节省时间和精力。FVWM 已经拥有了现代窗口管理器的大部分功能。概念的进步很小,而外观却发生了根本性的变化。
AfterStep 源自 FVWM 和 Bowman,最初由 Dan Weeks、Frank Fejes 和 Alfredo Kojima 编写,旨在模拟 NeXT GUI。当他们意识到无法将所有想要的功能都放入 AfterStep 时,启动了一个新项目——WindowMaker。WindowMaker 的目标是 Gnustep(GNU 处理 NeXT 编程和界面的方法),具有非常创新的概念,例如,dock、DnD 和“粘性”菜单。
即使在某些方面限制了您,但基于良好的基础进行构建的能力仍然非常有用。您不必花费大量时间编写一个功能与 FVWM 相当但存在许多错误的版本。AfterStep 现在正朝着新的高度发展,包括更简单、更强大的配置。我们(开发人员)希望 AfterStep 成为最具创新性的窗口管理器,而不是仅仅维护 AfterStep 并允许其他管理器超越它。例如,我们计划添加一些新功能。首先,我们计划将其他窗口管理器中已有的概念整合到 AfterStep 中
根窗口中的文件管理器(参见 Win95 和 KDE),具有类似 Irix 的桌面
WindowMaker Dock 和“粘性”菜单
类似 Enlightenment 的带有像素图的窗口装饰
FVWM95 任务栏
类似 OS/2 的语音识别(参见 Sunsite 上的 ear 语音识别项目)
来自其他窗口管理器的这些功能的代码可以在 GPL(GNU 通用公共许可证)下复制。我强烈相信并鼓励最大限度地重用源代码。我喜欢 FVWM95 任务栏、Enlightenment 装饰和 WindowMaker dock DnD;它们非常有用且易于使用。将来自多个窗口管理器的概念混合和匹配最终将产生“集各家之长”的局面。这就是有些人安装和配置他们找到的所有东西的原因。将这些功能合并到一个程序中是一种更有效的解决方案。因此,我们的想法是通过将许多功能整合到一个统一的工作中来使 AfterStep 更加友好。我希望我们能够满足大多数个人的品味。并且没有必要以新的方式(C++、Gnustep、Qt 等)进行编码来实现这些目标,因为大多数这些很酷的功能都存在于 FVWM 的父窗口管理器中。
我还希望看到一些尚未在任何窗口管理器中实现的新功能,也许采用新的编码方式。这就是 AfterStep 将首先整合 FVWM 系列功能,然后走一条不同道路的原因。我们希望添加的新概念如下
NeXT 桌面,与 WindowMaker 团队合作
与 FVWM2 和其他窗口管理器的模块兼容性
AfterStep 元素的面向对象管理(标题栏)
动画图标和不透明窗口旋转
完全鼠标可配置性
图标/帮助文件/程序数据库(例如,一个没有漂亮默认图标的绘画程序将“自动”使用一个数据库图标,其中包含一个用于使用程序的帮助文件调用 xman 的按钮。)
源代码优化,以防止 AfterStep 变得缓慢
天空才是极限。如果您在 AfterStep 中实现了一个好的选项,只需将您的补丁发送给我,如果它是可以自由再发行的,它将包含在下一个版本中。如果您认为 AfterStep 将变得有 100MB 大小,请不要担心——所有这些都是编译时选项。补丁只有在您请求时才会被放入可执行程序中(这就是我们所说的满足个人品味)。我们正在为自己制作 AfterStep,但我们也想要一些我们尚未想象到的功能。所有这一切可能看起来相当雄心勃勃,我们同意,我们确实如此。AfterStep 的“先驱”已经做了很多工作,制作了如此出色的程序,因此要使其变得更好并非易事。
AfterStep 1.3.1 已经包含用户友好的配置和“外观共享”。以下是一些已经可用的新功能的示例
获取您的个人外观文件,将其重命名为 look.your-name 并发布给您的朋友。他们可以将其放在 desktop/looks 中,并在开始菜单中选择它,以轻松获得您的桌面外观,而不会丢失自己的菜单、配置或绑定。
开始菜单只是 ~/gnustep/Library/AfterStep 中的一个目录,其中每个子目录都是一个菜单项,每个文件都是一个菜单选项。如果您想添加 Ghostview,只需输入
echo "gv &" >\ ~/gnustep/Library/AfterStep/start/Programs/Ghostview
允许使用空格,您可以指定命令行选项。当您重新启动 AfterStep 时,Ghostview 将被添加到开始菜单。
背景图片放置在目录 ~/gnustep/Library/AfterStep/desktop/backgrounds 中。将您想要的图片放在那里,当您重新启动 AfterStep 时,“桌面/背景/图片”菜单将包含此选项。当然,如果您选择它,AfterStep 会记住它以供下次会话使用,就像颜色(在 desktop/colors 中)和外观文件一样。
包含的修补版 rxvt 称为 xiterm,允许在背景中显示图片,并具有 Offix DnD 兼容性(就像 Wharf 一样)。在 xfm 中选择一个文件,将其拖到 xiterm,其名称将显示在您正在键入的命令行中。它比 xterm 更轻巧,支持颜色,并且在 1.3.2 版本中将与 AfterStep 更加紧密地联系在一起,成为其 GUI 的标准部分,例如标题栏、Wharf 和 Pager。配置时选项通过 menuconfig 进行设置(就像 Linux 内核一样);这也将适用于未来版本的 AfterStep。
四个 2x2 分页器(即十六个屏幕,但如果您想要桌面上有更多或更少的空间,您可以配置它),具有单独的背景像素图和名称,允许您同时使用多个程序(任务列表也非常有用)。
“跳转”按钮允许您通过单击标题栏右侧的右三角形来聚焦到下一个窗口。
正如您在本文中学到的,AfterStep 与 FVWM 系列紧密相连,但不再局限于 NeXT GUI 模拟。在转向全新的概念之前,我们首先尝试加入所有已经存在的优秀功能,同时又不使 AfterStep 难以使用。我希望您会发现 1.3.1 像我认为的那样简单易用。但请记住,如果您想到缺少某个选项,请编写代码并发送补丁。借助外观文件和其他配置文件,AfterStep 可以变成您想要的任何样子。
