跨平台生产力指南--2018年我对于数字生产力的思考

本文参加「我的 2018 年度关键词」年度征文活动


前言

生产力是工作和学习中一个永恒的话题,狭义地来说数字时代的生产力就是籍由数字化工具更高效地完成任务。通常人们关于生产力的讨论也大多着眼于任务。例如从人的角度思考如何提高效率的 GTD 理论,四象限工作法等;从任务的角度思考的像针对不同任务的更高效的软件,或是联动不同任务的像捷径这样的自动化方案。而本文的侧重点在于任务之间的这部分,即人如何高效地组织处理数字化任务,或许我们可以把它们称作「数字生产力的基础设施」。乍一看可能难以理解,其实这里更多是对我平时常用的一些能够提升组织任务效率的工具的整理,和从使用中提出来的一些思维,具体会在下文中详细道来。

最初意识到组织任务的方式会影响效率是很久之前写论文的时候,需要在代码,数据和文章之间来回切换,当时通过「Alt+Tab」来切换,发现当需要切换的程序超过三个以上之后这个过程就会非常繁琐,同时,各个程序窗口之间的位置和堆叠关系的混乱就使得体验更加糟糕。而在接触 Linux,尤其是像 i3wm 这样的 tiling window manager 之后,才逐渐意识到,好的任务组织方式和思维能够让处理任务更加轻松和高效。笔者在2018这一整年中,伴随着对这个问题的「思考」,「试错」和「优化」,逐渐形成了一套较为稳定的 workflow。以下还是从「道」:怎么想,「术」:怎么做,「器」:用什么工具这三个角度来详细阐述。

混乱的窗口堆叠(此截屏为笔者刻意乱摆各种窗口,仅作示意)

「道」

这里我把这种生产力之「道」总结成三个点,即1.禅模式,2.快速访问,3.通用工具。

禅模式

许多文本编辑器,例如众多文本编辑器都内置了禅模式(zen mode)这一功能,也可以称作聚焦模式(focus mode)。这一模式通过摒除额外的界面元素,突出核心编辑区域促使用户集中精力于文字创作与编辑本身,从而提高效率。相对应地,这一模式同样也可以用于其它任务,如编程,作图等等。这一模式的核心既是通过视觉元素突出核心编辑区域,排除不相关信息的干扰,就像现实中工作或写作业时候会清空桌面,只留下与课题相关的部分书籍笔记之类,从而达到辅助聚焦,提高效率的目的。禅模式的合理使用能够解决前文提及的不同任务界面堆叠混乱的问题,比如,最直接的禅模式的实现就是把当前工作窗口最大化并至于顶层,下文会从更细节的角度聊聊如何实现一个好的任务组织禅模式。
Atom 的 zen mode

快速访问

如果说「禅模式」通过简化视觉元素,剔除干扰信息来达到聚焦和提升效率的目的,那么它带来的弊端就是很多其它功能的入口也被省略掉了,例如当前窗口全屏就会挡住其它窗口,这样想使用其它功能时就需要退出「禅模式」。所以,一个可以在任何模式下呼出的「快速访问」入口就可以起到很大作用,最典型的例子就是 MacOS 下的 Alfred 这种快速启动器。这时候「快速访问」就像是一个搜索引擎,可以快速进行任务的跳转,子任务的处理等等。
Alfred快速启动器

通用工具

有了「快速访问」我们就能随时随地访问我们需要的应用和功能,为什么还需要一类专门的「通用工具呢」?因为在实际中,我们往往要同时处理多个任务,而且多个任务间并非完全独立,有时候,不同的任务会共享一个上下文,或者一些临时的公用文件。其中最典型的例子就是剪贴板的存在,通过剪贴板这个通用工具,不同任务之间能够共享临时文件和文本等等。当我们把这个想法扩展之后会发现,很多必要的东西都可以做成通用工具供不同任务调用,像下文所提及的 drop down terminal 之类。
Drop down terminal

「术」

禅模式

禅模式

之前我们说「禅模式」通过简化视觉元素,剔除干扰信息来达到聚焦和提升效率的目的。那么当我们考虑桌面系统的任务组织,理想情况下当前屏幕应该被同一任务的窗口所填满。这也就推导出了我们这里所提出的两个点:工作区模式和平铺式排布。

工作区模式是一个很熟悉的概念,比如 windows 中的虚拟桌面,MacOS 中的 Space 概念,Linux 各种桌面环境下的 workspace 概念等等都是工作区模式的实现。工作区实际上就是将显示界面分成多层,只有当前层的内容会显示在屏幕上,其它层仍在后台运行。通过将同一任务的窗口置于同一个工作区,并通过切换工作区来切换任务,也就实现了禅模式中的剔除干扰信息来达到聚焦和提升效率的目的。例如,在工作区 1 里全屏化 Chrome 用于搜索和浏览网页,在工作区 2 进行文本编辑和写作,...,在工作区 N 使用 station 聚合各个SNS和朋友交流。

工作区1
工作区2

工作区N

另一方面,一个工作区只有一个窗口时,可以通过最大化窗口达到剔除多余干扰信息的目的,当有多个窗口时,我们可以通过平铺式排布将多个窗口扩展拉伸填满当前屏幕。笔者最初是通过 i3wm 接触到平铺式窗口管理这一概念,配合工作区模式长期使用之后发现,对于大多数任务来说,平铺式排布各个窗口的内容也更加一目了然,相对于标签式窗口和浮动式窗口,能够更准确快速地切换窗口。

平铺式vs标签式vs浮动式

快速访问

快速访问


之前说快速访问是要在禅模式中提供一个入口,相对于通用工具,快速访问更像是一个一次性的入口,而通用工具是在不同工作区之间共享的包含上下文的工具。实际中我们大概会遇到三种情况需要快速访问入口:启动应用,安装应用和查找文件。应用快速启动在各个平台都有集成,比如 Windows 的运行,MacOS 的 Spotlight,Linux 的dmenu 等等。安装应用部分其实就是我们经常说的包管理器,像 Windows 端的 Scoop/Chocolatey,MacOS 的homebrew,Linux 的 pacman 等等。文件导航像 Windows 上的 Everything,MacOS 的 Spotlight/Alfred 也提供了这样的功能,Linux 端的各种命令行工具等等,都能提供快速可靠的文件导航。

Alfred中的应用启动
pamac包管理器界面
Alfred的文件导航

关于各种实现快速访问的工具,我们其实会面临一个选择,一种是类似 Fences 这样的图形化的快捷方式工具,另一种是类似于 Alfred 的文字化的搜索式启动器。我的理解是借助模糊搜索功能的话,搜索式启动器的效率是要高于图形化的整理工具的。所以下文推荐的解决方案也是倾向于搜索式启动器。

Fences vs Alfred

通用工具

通用工具

在平时的使用电脑的过程中,我们其实不太容易意识到通用工具的重要性。这里我对通用工具的理解是,它们会保持一套独立的上下文,可以被每个工作区共享和访问。有一个通用工具大家都用过,就是剪贴板,我们可以通过剪贴板在不同应用之间共享素材,文字甚至文件等等。我意识到通用工具的好用之处是在长期使用下拉式命令行终端之后。例如在编程-调试-写文档这个任务流中,我们可能会在编辑器-调试器-文档编写这两个或三个工作区之间来回切换,但这三个子任务之间会共享一些命令行参数和操作,这样通过下拉式命令行终端就可以跨工作区随时处理这些共享的内容。

再展开来想,还有什么是需要在不同工作区之间共享的呢,比如最明显的就是文件和素材,所以仿照下拉式命令行终端或许我们可以造一个上拉式文件管理器,这样我们需要素材的时候只要调出这个通用工具就可以,不用每次切换窗口或者重新开启一个新的文件管理器了。

下拉式命令行终端+上拉式文件管理器

通用工具是一种用过就会爱不释手的模式,除了命令行终端和文件管理器之外,对于不同的场景,不同的任务,我们还可以尝试创造更多的通用工具,方便工作区之间的共享。

「器」

上文分析了怎么想和怎么做,现在要分享我使用什么样的工具实现上文提及的各种功能啦。

Linux 全家桶

i3wm+Albert+Pacman+fzf+tdrop

Linux下的 i3wm 作为平铺式桌面管理器的代表,很完整地解决了工作区和平铺式排布以及自定义快捷键等等很多问题。作为应用启动器的 Albert,配合插件能够实现大部分 Alfred 在 MacOS 上的功能。不同的 Linux 发行版有不同的包管理器,这里的 Pacman 仅为示例。fzf 作为一个命令行的文件搜索工具,不需要长时间的索引就能准确快速地定位文件,是 Albert 中文件搜索的良好补充。tdrop 是一个下拉程序管理器,它可以将任何应用窗口变为下拉或上拉窗口,前文所示的下拉命令行终端和上拉文件管理器都是用 tdrop 制作的。

Windows 全家桶

Dexpot+Autohotkey+SnapX+Keypirinha+Scoop+Everything+Hyper

Windows 虽然有自带的虚拟桌面功能,但是切换虚拟桌面较为繁琐,只能切换到相邻的虚拟桌面,通过 Dexpot,我们可以映射大部分 i3wm 具备的功能,包括切换至特定工作区,将窗口移至某工作区等等。 Windows 也自带窗口排布功能,但是同样不是很易用,通过 SnapX,我们可以自定义很多不同的窗口排布方式和大小。Keypirinha 相比另一个常见的应用启动器Wox提供了更流畅稳定的体验。配合文件搜索工具 Everything,我们能够轻松地定位想要找到的文件。关于 windows 的包管理器,常见的有 Chocolatey 和 Scoop,大家可以翻阅少数派之前的文章。关于下拉式命令行终端,我们可以通过 Hyper 的插件 Hyperdrop 实现。其它的通用工具则要通过 autohotkey 实现。

MacOS全家桶

MacOS Spaces+Keyboard Maestro+Alfred+Homebrew+iTerm2

MacOS 本身提供了比较易用的工作区管理,只要将切换工作区的快捷键映射到你喜欢的位置即可。窗口排布工具Mac 端有相当多的选择,包括 MoomDivvy 以及可以定制的 Hammerspoon 等,除此之外,我们也可以直接用Keyboard Maestro里的自动化操作映射快捷键到特定的窗口排布。Alfred 作为应用启动器的代表,自然是不二的选择,其他也有类似的 LaunchbarLacona 等备选。作为包管理器的 Homebrew 相比大家已经熟悉。iTerm2 作为常用的命令行终端也提供了下拉模式,不需要额外配置就可以实现下拉式命令行终端。同样,其它通用工具需要借助 Keyboard Maestro 来实现。

结语

至此,使用上文中的思路,实现包括所用到的工具,我们可以搭建一套不同于常见操作系统的任务组织模式,通过「禅模式」设计,用户可以更集中于当前任务并且通过工作区方便地地切换任务。配合快速访问和通用工具,可以有效地处理不同任务和应用窗口之间的调用,共享等等。从而跳出混乱,难以控制的堆叠排布,形成一套更高效更可控的任务组织模式。
任务组织方式的转换

希望大家能够从本文中得到启发,思考,改进工作方式,用更少的时间做更多的事。


注:

本文所提及的应用仅为个人观点,大家可以根据喜好选择对应的工具。

题图修改自Freepik的一幅设计,文中应用图标来自官网和第三方创作。




17

OriDance

OriDance

GraphiCon

关注
提升效率之路

提升效率之路

一个优秀的工具,能让你在提升效率之路事半功倍。你是如何通过这些工具,技巧提高生产力,改善自己的效率?

关注
登录 使用文章全部功能