V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xell
V2EX  ›  问与答

请问 Mac 下有没有类似的窗口管理/缩放/布局软件(我知道这类软件满天飞),能够实现我的下述功能?我试了好一些,发现都不行……

  •  
  •   xell · 2013-12-03 20:53:12 +08:00 · 5598 次点击
    这是一个创建于 4015 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我举例来说明我的需求吧:

    假设我打开了 n 个 Finder 窗口,而我希望它们排列到屏幕左边二分之一的区域中,那么这个软件应当可以实现:我按下某个快捷键,那么这 n 个窗口根据计算出来的高度(屏幕高/n)和宽度(屏幕宽/2),自动缩放并平铺排列(tile)到左边。

    再举一例。如果我希望这 n 个窗口平铺整个屏幕,那么该软件应当能在我按下另一个指定的快捷键之后做到:确定两个合适的整数 a 和 b 满足 a*b=n,同时 a/b 最接近屏幕宽高比(这个计算很简单的啦),然后以 屏幕宽/a 和 屏幕高/b 自动缩放所有窗口并平铺排列到整个屏幕上(当然,留空 Dock 所在的区域)。

    核心思想就是,在用户指定的区域中(只需要 {上,下,左,右}半屏,或全屏),将某个(通常是当前)程序的 n 个窗口以某种合适的方式平铺布满整个区域。

    流行的大多数软件我都使用、试用或了解过,举凡 Cinch、SizeUP、ShiftIt、Spectacle、BetterTouchTool、Divvy、Arrange、Moom、TileWindows 等等,都不具备上述功能,只能实现将窗口移动缩放1/2或1/4屏幕等等,TileWindows 等能实现额外的平铺,但仅限二或三个窗口。

    现在最大的希望似乎就是 Slate[1],但我看了它的说明文档,没有太大把握——不知道这里有没有用它的高手能指点一二。另外就是自己写 AppleScript 了,但我至今没有掌握这个像说话一样来写代码的语言。有网友给出过类似的代码[2][3],但离我的需求还很远。

    请教诸位,有什么建议不?

    [1] https://github.com/jigish/slate
    [2] http://apple.stackexchange.com/a/111557/12530
    [3] http://superuser.com/a/89680/99870
    第 1 条附言  ·  2014-03-22 22:09:58 +08:00
    今天周末,心情甚佳,开始研究 Slate,终于写出了一个初步的 JS 配置脚本基本实现来主贴的上述功能,请见

    https://raw.githubusercontent.com/xell/dotfiles/master/configs/slate.js

    Slate 确实足够强大。
    16 条回复    2018-10-15 16:28:08 +08:00
    zhouquanbest
        1
    zhouquanbest  
       2013-12-03 20:59:01 +08:00
    Slate 只要你会配 想要什么都行
    lilydjwg
        2
    lilydjwg  
       2013-12-03 21:42:29 +08:00
    你这是在找 OS X 版的 Awesome 么 :D
    MrGba2z
        3
    MrGba2z  
       2013-12-03 22:19:15 +08:00
    ![merge finder]( )
    这种不喜欢么?
    FrankFang128
        4
    FrankFang128  
       2013-12-03 23:35:57 +08:00
    强迫症,得治。
    要不你自己写一个软件。
    9hills
        5
    9hills  
       2013-12-03 23:56:27 +08:00
    放弃OSX用Awesome吧。。。
    vincent178
        6
    vincent178  
       2013-12-04 08:42:35 +08:00
    xell
        7
    xell  
    OP
       2013-12-04 21:31:26 +08:00
    @zhouquanbest
    @vincent178

    两位对 Slate 有研究吗?我没找到 Slate 如何读取当前程序的窗口数量之类的,也不知道如何循环遍历操作(多个 AFTER/BEFORE lists 连着写?),愿闻其详。

    @lilydjwg
    @9hills

    放弃操作系统这就太不现实啦,毕竟是生产力工具。

    @FrankFang128

    不是强迫症的问题,是现实需要的问题,例如我写论文的时候 BibDesk 开好几个窗口,等等。

    @MrGba2z

    我是拿 Finder 做例子而已,而且即便是 10.9 下的 Finder,合并窗口也不太符合我的实际操作需求。
    tywtyw2002
        8
    tywtyw2002  
       2014-06-30 13:12:33 +08:00 via iPhone
    楼主slate目前支持,快捷键启动/focus程序吗?
    xell
        9
    xell  
    OP
       2014-06-30 22:55:24 +08:00
    @tywtyw2002 当然没问题,它的 operation 支持运行任意的 shell 指令(例如 [1]),同时也有一个专门的 focus 指令。不过因为我是 Alfred 用户,所以并未使用 Slate 来完成此类功能。

    [1] bind 1:ctrl wait path:~/code '/opt/local/bin/mvim' 这条指令的功能是以 ~/code 为 pwd 来运行 /opt/local/bin/mvim ,而 wait 的意思是一直等到此指令运行完毕。
    xell
        10
    xell  
    OP
       2014-06-30 22:58:22 +08:00
    @tywtyw2002 v2ex 不能改贴真是棘手,只好再发一帖。上面的回复中的命令来自 Slate 自己的官方帮助,但我觉得似乎有问题(懒得尝试了),应当在 wait 前面有一个 shell 关键字。你自己多试试吧。
    tywtyw2002
        11
    tywtyw2002  
       2014-07-01 07:49:08 +08:00 via iPhone
    @xell 那你一般怎么去切换程序呢,我目前觉得用cmd+tab 在几个程序之间切换很麻烦,像找下按一个键就快速切换到某个程序
    xell
        12
    xell  
    OP
       2014-07-01 15:57:44 +08:00
    @tywtyw2002 我用 Alfred(已购买 Powerpack)。
    tywtyw2002
        13
    tywtyw2002  
       2014-07-02 02:00:20 +08:00 via iPhone
    @xell 我也有那个pack,每次 cmd+space? 然后输入要切换程序的名称?
    xell
        14
    xell  
    OP
       2014-07-02 13:13:11 +08:00
    @tywtyw2002 然后就自己写 workflow 呀,有各种方法可以满足所需,例如 triggers 选用 hotkey,actions 选择 launch apps 等等。
    tywtyw2002
        15
    tywtyw2002  
       2014-07-02 14:25:13 +08:00 via iPhone
    @xell 哦,能不能提供下api文档的位置呀?
    我只写过一些查询类的,不知道怎么去focus程序,和切换程序。
    sammo
        16
    sammo  
       2018-10-15 16:28:08 +08:00
    窗口管理 我用的几个软件:
    XtraFinder ( Finder 增强 )
    Moom ( 快速缩放 )
    WindowMizer ( 窗口卷起 )
    ForkLift ( 查看 - 两排面板 )
    Xfile ( 导航 - 树形面板 )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2480 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:45 · PVG 12:45 · LAX 20:45 · JFK 23:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.