Next Previous Contents

8. 通用用法、功能和错误

8.1 为什么当我启动时 XFree86 会崩溃?

有很多原因可能导致这种情况发生,但有一个特别的 bug 已经出现,可能很重要。 显然,XFree86 在处理异形窗口的代码中存在一些 bug。 这些 bug 的影响是,如果您正在使用 as-app,并且在应用程序启动时另一个窗口与该 as-app 的窗口重叠,X 将会崩溃。 这通常发生在 AfterStep 启动时,在 Wharf 启动期间。

避免这种情况的最佳方法似乎是在每个 Wharf 的 autoexec 文件中添加一个 "Wait" 行,就像这样


Module  "I"     Wharf
Wait    "I"     Wharf

此外,启动时避免将菜单放在左上角。

8.2 为什么 AfterStep 变得越来越慢,直到我重启它?

显然,在 1.0pre3 及更早版本中存在一个 bug(可能是内存泄漏)导致了这种行为。 我们知道将 TextureMaxColors 设置为较小的值,例如 `16 16 16 16' 或 `32 32 32 32',将可以阻止这个问题。 似乎这只发生在 32-bpp 模式下的 XFree86 中(或者 16 位?请给我确认),如果您在 8-bpp 或不同的 X 服务器中,似乎不会引起问题。

据我们所知,这个问题在 1.0pre4 中已解决。 升级!

不幸的是,在 1.4.x 系列中出现了一些新的内存泄漏。 其中最严重的问题似乎已在 1.5 系列中得到修复。

8.3 点击聚焦失效

有时,在点击聚焦模式下运行 AfterStep 一段时间后,我无法通过点击将焦点从一个窗口转移到另一个窗口。 我必须最小化并取消最小化窗口才能转移焦点,或者从弹出列表中选择它。 为什么?

这是一个奇怪的 bug,它(至少有时)是由 NumLock 键激活引起的。 它存在于 1.0pre4 及更早版本中,所以请检查您的 NumLock 键。

这个问题在 1.0pre5 中已解决,因此如果您仍然遇到这个问题,您应该升级。

最近有人报告说这个 bug 再次出现。 如果您在系统上遇到此问题,请发送消息到列表报告它。

8.4 什么是“Shade”功能?

Shade 是一个窗口功能,在 Macintosh 系统上经常见到。 理论上,它使窗口消失,只留下标题栏。 例如,一个 Xterm 通常看起来像这样

         |------------------------------|
         |             Xterm            |
         |------------------------------|
         |                              |
         |                              |
         |                              |
         |                              |
         |                              |
         |------------------------------|

当 shade 生效时,Xterm 看起来像这样

         |------------------------------|
         |             Xterm            |
         |------------------------------|

这对于节省桌面空间和窗口管理很有用。 有些人更喜欢它而不是最小化窗口。

在 1.0pre3 及更早版本中,Shade 工作不正常,因为它通过将窗口大小调整为 0 像素的高度来工作,这让一些应用程序不喜欢。

在 1.0pre4 及更高版本中,shade 通过让应用程序认为它正在被最小化来工作,因此它可以再次与所有应用程序一起工作。 然而,它存在一个问题,即 shaded 窗口变得“粘性”,并出现在虚拟桌面的所有页面中。 与粘性图标不同,这种行为是无法改变的。 这是一个 bug。

“粘性 shade” bug 已在 1.5 系列中修复。

8.5 当我重启 AfterStep 时,它会杀死 X。 怎么回事?

这是一个发生在 AfterStep beta 版本中的 bug。 如果您遇到此 bug,您正在运行旧版本的 AfterStep。 升级到 v1.0pre4 或更高版本来修复此问题。 顺便说一句,考虑到您错过的众多功能,这无论如何都是您应该做的事情。

8.6 什么是 swallow-exec?

这是一个在 1.0pre4 版本中引入的功能(之前以单独补丁的形式存在),它允许您将操作与 Wharf 中对应于 swallowed 应用程序的条目关联起来。 例如,您可以在 Wharf 中放置 asmail,并将其配置为当您单击它时,它会 Warp 到您的电子邮件阅读窗口。 如果您的电子邮件阅读器是 exmh,则需要的行将是

       *Wharf "asmail" nil Swallow     "asmail" asmail &
       *Wharf "asmail" nil Warp        "-" exmh

请注意,这两行都具有相同的标签 `asmail',这告诉 Wharf 这两个条目是关联的。 您可以使用任何 AfterStep 函数代替 `Warp'。 例如,如果您希望 xload 图标在单击时触发一个顶层窗口,您可以像这样设置

       *Wharf "xload" nil Swallow      "xload" xload -geometry 48x48-1-1 &
       *Wharf "xload" nil Exec "Top" xterm +sb -T Top -n Top -e top &

顺便说一句,此功能是导致一个奇怪 bug 的原因。 请参阅下一个问题。

另请注意,此功能在更高版本中似乎并非总是有效。 然而,许多 asapp 在给定正确参数的情况下,会在单击时自动启动另一个程序。 例如,asmail 允许您指定在左键单击 asmail 按钮时启动的程序; 这在 asmail 配置文件中确定。 同样,asload 接受一个命令行选项 "-exe",它允许您指定在左键单击时启动的程序。

8.7 我升级到 1.0pre4 或更高版本,现在 Wharf 不工作了。 怎么回事?

这不是 bug,这是一个功能 :-) 。 不,真的,这种行为是由于在 1.0pre4 中引入了 `Swallow-exec' 功能而引入的。 要修复它,请执行以下操作

  1. 在您的 .steprc 文件中,找到以以下内容开头的行
           *Wharf "" ...
    
  2. 这也可能是 nil,或任何其他对于所有 Wharf 条目都相同的标签。 这些重复的标签是导致问题的原因。 您必须在那里为每个 Wharf 条目指定一个唯一的标签,例如 `xload'、`asmail'、`Pager' 等。
  3. 重新启动,问题应该就解决了。

当然,更好的答案是升级到 1.4.x 或更高版本,并重新配置您的 Wharf。

8.8 为什么当我退出时我的工作区没有保存?

在早期的 1.4.x 版本中,有一个名为 .workspace_state 的文件,当您退出时会自动写入。 这会在您退出时保存您的桌面,以便您回来时它看起来一样。 在这些版本中,此行为默认启用。

在 1.4.5.55N6 版本中,此行为默认禁用。 如果您想恢复此功能,可以在编译前更改 configure.h。

您还可以手动在 ~/GNUstep/Library/AfterStep/ 目录中创建 .workspace_state 文件。 它只是一个纯文本文件,用于调用您希望在启动时出现的程序,包括窗口的几何形状(带定位)。 如果此文件存在,将在启动时读取它,但只有在您在编译时选择了相关标志时才会重新写入它。

.workspace_state 行为是 1.5.x 版本编译时的选项之一。

8.9 我的开始菜单在重启后不再更新。 为什么?

您应该在开始菜单上选择 “桌面/更新开始菜单”(版本 1.5)或 “退出/更新”(< 1.5)。 这将解决您的问题。


Next Previous Contents