苹果园之旅Ⅳ - Nitty Gritties


Devil’s in the details.

Virtual Desktop Part 2

上一篇 blog 里有读者留言, 提供了 Keyboard Maestro 的方案来实现“把当前窗口移动到第 N 个虚拟桌面”的功能。 但其背后的实现机制, 是自动地执行录制好的键盘 / 鼠标操作。 并不是用操作系统提供的 API 来完成集成。

回想一下我买这台 Mac 的初衷: 是想要体验 macOS 到底有什么优势, 然后把这种优势移植回自己的工作习惯里。 比如说,把 Alt 和 WinKey 这两个键交换位置。 再比如在 Linux 系统上也启用三指划动触摸板切换虚拟桌面。 但我并没有必要强行把自己的工作习惯完整地移植到 Mac 上来。 如果 macOS 对虚拟桌面的支持如此之差, 只能靠键盘 / 鼠标 macro 的形式来实现那个功能, 那么这并不是 macOS 的独特优势。 我最好还是把注意力放到 Mac 的特色或优势上去, 这样我在这台 Mac 上花费的时间才更有价值。

当然话说回来, 为了把我自己的感受完整地描述出来, 并且享受抨击 Mac 的快感, 只写 Mac 的优势这种事, 我肯定是做不到的。

回到重点: macOS 和 Windows 管理虚拟桌面的方式, 都还停留在按照空间关系来管理虚拟桌面的水平: 靠鼠标拖拽把窗口分配到指定的虚拟桌面, 允许用键盘快捷键切换到位置临近的虚拟桌面上去, 用鼠标点击来 randomly access1 虚拟桌面。 仅此而已。 而不是允许用户按照工作任务来 assign 虚拟桌面, 然后不论当前活动桌面在哪, 直接切换到想要执行的任务所在的桌面。

Unnecessary Key Symbols

除去自然语言中会出现的字母 / 数字 / 标点符号, Mac 键盘上的其它按键, 都有一个独特的图标符号作为标识:⌘ ⌫ ⌥ ⏎。 同时,这些按键还有自己的英文名称。 比如 Command,Delete,Option 等。

如果你要在口头表达时描述这些按键, 或者在打字的时候用某种自然语言表述这些符号, 而不是去 Unicode 字符表里找这些符号2, 那么就只能用它们的英文名字。 也就是说, 这些按键的英文名字是你必须要熟悉的。 除非你总也不和别人交流电脑的使用, 或者永远有机会使用图形符号, 或者你所处的小圈子给这些符号都发明了一套发音, Effectively 发明了新的语言。

但是对我来说, 在 macOS 的界面上, 凡是需要表达键盘快捷键的地方, 都在用图形符号,而非英文名字。 我每次看到 ⌃⇧⇥ 这样的标识, 我都要花很长时间才能反应过来这几个按键分别是什么, 在键盘上的哪个位置能按得到。

目前我学习 macOS 上的快捷键的思维过程, 是在大脑里把图形符号翻译成英文名字, 然后就知道该按什么键了。 虽然很低效, 但我至少把一个新问题转化成了熟悉的问题。 可以在 macOS 的世界里活下来了。

当然,你可以说这些组合键“看一眼键盘就能找到了”。 但低头在键盘上按照图形符号找按键, 让我感觉自己的智商受到了羞辱。 而且输入效率也明显降低。 况且我还把了 Fn 和左 Control 键互换了映射, 根据符号找的按键位置还要再自己在脑内转换一次。

另外,你也可以说这是我用 macOS 的时间还不够长, 不够熟悉这些符号而已。 但如果我们可以砍掉这些符号, 只用它们的英文名称, 既能减少记忆负担, 又可以和其它操作系统的约定保持一致, 对跨平台电脑用户更为友好。

Mac 默认没有让窗口最大化的快捷键, 有的只是菜单栏 -> Window -> Zoom 这个选项。 而且有些应用还会自作聪明, 在 Zoom 之后只会在垂直方向最大化, 在水平方向则不会。

但 macOS 这里显示出较强的整合性: 在系统的 keyboard shortcuts 设置里, 可以给 App Menu 项目绑定快捷键。 而且所有 App Menu 里的“最大化”都称作 Zoom。 这倒也可以实现为最大化功能绑定快捷键。

如果你想要绑定快捷键的功能在所有的应用里的名字都一样, 那么这倒可以实现跨越应用的全局快捷键。 这点在 Windows 上似乎还做不到 —— 或者说仅靠系统原生的支持还做不到。

在 Linux 上则是连想都不敢想。

Glittering Prizes3

Pet-Peeves

接下来是无尽的琐碎吐槽:

Activity-Centered -vs- Human-Centered Design

前阵子我刚好读到这篇文章: Human-Centered Design Considered Harmful。 作者是 Design of Everyday Things 系列书籍的作者 Don Norman。 文章探讨了以活动为中心的设计与以人为中心的设计这两种设计思路的不同。

现下流行的科技产品设计, 似乎都在朝着以人为中心设计的方向前进: “连老一辈人都会用”似乎成了检验产品好用的 gold standard, 所有公司的产品 / 设计博客上, 都会写文章尝试解释改版后的新设计是如何地 human-friendly。 哪怕用户们对新设计有再高声音的抱怨, 也不及设计师的专业意见更有决定性。

目前为止,macOS 的 UI 给我留下的印象是: 为了做到较好的易学习性, 在人本设计方向上做了很多努力。 但在 Activity-centered 方向上没感觉到帮助: 管理虚拟桌面与窗口要依赖空间位置关系; 各种 UI 动画不能彻底关闭; 连快捷键也要在英文名称之外, 再用图形来标识。 这些设计都向我传达出“用户不识字,必须用图形”的气味。 即使用户愿意花时间去让自己更适应 activity, 也会因为 UI 的限制,而无法提升效率。

这种设计像是电子游戏的教学关: 虽然对新手来说是必要的, 但随着玩家熟悉了游戏的操作, 就应该不再持续地提示玩家“按空格键跳跃”, 而是相信玩家能学会并记住这个基础操作, 去应对更有难度的挑战。

结语

我想我对这台 Mac 的吐槽还不会结束。 也许未来我还会表达琐碎的意见, 但这一系列 blog 应该可以告一段落了。

  1. 如果你对 randomly access 这个词组理解有困难, 想一下硬盘的访问方式:随机存取与顺序存取。 但愿这能帮你理解我的意思。 

  2. 我在 Mac 的 Control + Command + Space 呼出的字符表里用 command 作为关键字,并不能搜到 这个符号。这个符号的 Unicode 名字是“Place of Interest Sign”, 并不包括 command 字样。 在 Windows 10 自带的 Character Map 里也搜不到。 但在 gucharmap 里搜索时勾选“Search in character details”之后能搜得到。 原因是 gucharmap 把 ISO 9995-7 的信息也纳入了搜索。 Linux 终于在易用性细节上拿了一分( 

  3. 这是 Warcraft II 的 cheat code。 

  4. 在写这篇文章的草稿时, 我还在尝试用 Vivaldi 作为自己的主力浏览器。 但现在我已经换回了 Chrome。