V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ychen997
V2EX  ›  macOS

macOS 的窗口管理真的一言难尽

  •  
  •   ychen997 · 2023-11-09 22:13:31 +08:00 · 3494 次点击
    这是一个创建于 378 天前的主题,其中的信息可能已经有所发展或是发生改变。

    折腾了很久,试用过无数 app: Rectangle, Rectangle Pro, Tuck, Amethyst, Lasso, Mosaic, emmetapp, contexts, 也试用过 stage manager.

    最终总算折腾出了一套适合自己的方法,我个人不用鼠标,最终形成的方案还是用了很多 app:

    • Swish 的触控板手势
    • Raycast 的窗口管理键盘快捷键
    • Wins 的拖动窗口到边缘的方案
    • Moom 来保存特定的方案, 用 Keyboard Maestro/Alfred 调用

    窗口切换:

    • Hyperswitch 代替 Alt+Tab 切换应用窗口
    • Alfred/Raycast 直接调用应用窗口
    • Manico 切换最常用的 App

    记录一下折腾日记,就当推荐几个好用的窗口管理 app 吧,也欢迎大家推荐自己的窗口管理方案

    第 1 条附言  ·  2023-11-10 02:14:15 +08:00
    关于 window switcher ,还有一些不错的应用比如说 Moom 的开发者出的 Witch ,还有 contexts
    32 条回复    2023-11-22 11:55:37 +08:00
    B3UzMhCd3dDvVVLa
        1
    B3UzMhCd3dDvVVLa  
       2023-11-09 22:24:36 +08:00
    访达动不动就变成奇怪的大小,有时候还变成一个长条。。
    这么基础的使用体验都做不好,真的是一坨屎
    chenxiankong
        2
    chenxiankong  
       2023-11-09 22:25:30 +08:00   ❤️ 3
    推荐作以下替代
    Hyperswitch -> altTab
    manico -> hotkey(appstore)
    ychen997
        3
    ychen997  
    OP
       2023-11-09 22:28:58 +08:00
    @CrazyUniverse #1 这个我推荐 [FinderMinder]( https://www.irradiatedsoftware.com/labs/) 来固定访达大小, 这个开发者还有一个软件 ShortcutDetectI’ve 很好用。
    ychen997
        4
    ychen997  
    OP
       2023-11-09 22:30:56 +08:00
    @chenxiankong #2 感谢推荐,hotkey 确实免费好用,Alttab 我用过,总是会显示没有窗口的 App (一个大大的+号),没搞懂怎么去掉。
    Roykira
        5
    Roykira  
       2023-11-09 22:37:56 +08:00   ❤️ 1
    以前有一个 Layauto 是真的很好用,特别是外接屏幕的时候,总是能保证窗口在一定比例和位置,不知道为什么现在越来越不好用了,已经习惯 moom 的逻辑了,因为有 Actual Screen Center 是真好用啊!
    ychen997
        6
    ychen997  
    OP
       2023-11-09 22:41:09 +08:00
    @Roykira 这样说我想起来 Layauto 的宣传我也看到过,他最近怎么了? 另外 Moom 不是也可以外接屏幕自动切换布局吗?
    Roykira
        7
    Roykira  
       2023-11-09 22:50:53 +08:00
    @ychen997 Moom 的比例是可以切换过去的,偶尔需要微调一下。

    主要是习惯 moom 设定的是 18×12 ,但是 LayAuto 只能设定 8×8 ,比例总是感觉怪怪的,而且没办法 Actual Screen Center ,非常强迫症。
    B3UzMhCd3dDvVVLa
        8
    B3UzMhCd3dDvVVLa  
       2023-11-09 22:52:58 +08:00
    @ychen997 #3 不错,试试看
    PostMeridiem18
        9
    PostMeridiem18  
       2023-11-09 22:54:30 +08:00
    Rectangle 基本上就可以满足所有的窗口移动需求了,app 之间切换也有鼠标的侧滚轮宏和 Spotlight 可以解决,OP 试用过这么多方案是有什么很特殊的需求吗?
    zz177060
        10
    zz177060  
       2023-11-09 22:58:08 +08:00 via iPhone
    轻度用户,都是默认的搞。习惯了也就那样哈哈哈哈。
    gemepio
        11
    gemepio  
       2023-11-09 23:00:48 +08:00
    试一下 magnet ?
    KevinDo2
        12
    KevinDo2  
       2023-11-09 23:06:24 +08:00
    yabai (不明觉厉
    KevinDo2
        13
    KevinDo2  
       2023-11-09 23:07:32 +08:00
    切换常用 app 可以 AppStore 搜下 rcmd ,使用不常用的右 cmd 按键切换,习惯了还是挺舒服的
    ychen997
        14
    ychen997  
    OP
       2023-11-09 23:16:32 +08:00
    @PostMeridiem18 #9 Ractangle 主要就是拖动窗口到边缘吧,我平时不用鼠标所以触控板或者键盘操作窗口算是我的特殊需求了吧
    ychen997
        15
    ychen997  
    OP
       2023-11-09 23:18:34 +08:00
    @KevinDo2 #13 看了一下介绍,感觉就是 assign 一个快捷键,只是用上了 右 cmd ,据我理解,Karabiner 应该就可以区分左右 cmd 并且映射到 app 启动了。
    jerrywaffle
        16
    jerrywaffle  
       2023-11-09 23:20:07 +08:00 via iPhone
    用 Keyboard Maestro 一个就搞定所有
    ychen997
        17
    ychen997  
    OP
       2023-11-09 23:23:53 +08:00
    @jerrywaffle Keyboard Maestro 确实很强大
    luodan
        18
    luodan  
       2023-11-09 23:36:42 +08:00
    用 hammerspoon 自己写了一套,想要的功能都有了。
    GabrielleBellamy
        19
    GabrielleBellamy  
       2023-11-10 01:03:01 +08:00   ❤️ 2
    我的全套管理方案:左手妙控板,中间键盘,右手妙控鼠标。

    切换桌面( space ):
    1. 四指上推或 Hot Corner 屏幕左上角(原生,但是没快捷键)
    2. Space Capsule (目前使用的软件,能绑定快捷键,但是有一些 bug )
    3. Olive (自己写的软件,目前这个功能还没有放上网,等测试好了再发: https://github.com/Ryan-the-hito/Olive

    切换软件:
    1. dock (原生,鼠标顺手的时候用)
    2. rcmd (用首字母快速切换软件,键盘顺手的时候用)
    3. Command+Tab (原生快捷键,几乎不用,因为经常出错)
    4. 四指上滑:Mission control 选择本桌面软件及对应窗口(偶尔窗口多的时候用,但是容易乱,不喜欢,算救急方案)
    5. Stage Manager (时刻开启,在同一个 space 内切换非常方便)

    切换窗口:
    1. Hyperdock 、DockView (搭配 dock 显示窗口以前用 HyperDock ,更新 13 之后不管用了,DockView 还不错,最近 Wins 也带上了这个功能)
    2. AltTab ( Option+Tab ,在不同的 space 间切换非常方便)
    3. Olive (我自己写的软件,一次性切换/唤醒多个窗口,在关闭台前调度的时候很好用,和 Amethyst 的 Two Pane 搭配效果最佳)
    4. 四指下滑:Expose 选择单一软件的一个窗口(用得少,但是需要用的时候这个比台前调度管用,触控板顺手的时候用)
    5. Stage Manager (也可以点开再选,但不常用,鼠标顺手的时候用)
    6. AutoRaise (当鼠标在窗口之上的时候自动聚焦,减少许多点击)

    窗口布局:
    1. Wins (我特别喜欢那个顶上的 bar ,能快速拖动布局)
    2. Amethyst (在没开台前调度的时候常用 Two Pane ,开了之后常用 Fullscreen ,将窗口投送到某个桌面的快捷键也很方便,设置了边缘 padding ,比较舒适。需要自由调节的时候先转成 Floating 模式,再快捷键或拖动)
    3. 1Piece (全能型软件,基本上上面说的功能大部分都有,但我不想鸡蛋都放一个篮子里,我只用它的快捷键和关闭顶部窗口自动 focus 这两个功能)

    窗口操作:(键盘 Vim 的需求=点选+拖拽+滚动)
    1. Homerow (点选-标签型/输入型两者均可)
    2. Scrolla (全局滚动)
    3. kindaVim (输入框中-点选+滚动)
    4. Vimari ( Safari 中-点选+滚动)
    5. Surfingkeys ( Arc 中-点选+滚动)
    6. Keymou (仅适用于小范围移动鼠标-点选、滚动——Scrolla 滚动不了的时候用这个滚动)
    7. XEasyMotion (大范围鼠标操作-点选)、Scoot ( XEasyMotion 在 13 系统上好像出了一点问题,所以暂时使用 Scoot 替代,但是没有前者好用,能拖拽,但是不能用来选中文字)
    8. Keytty (拖拽+点选,需要在 AutoRaise 关闭的前提下使用,不然会冲突。好用还是好用,而且是我目前见到的为数不多可以拖拽+模拟选中文字的软件。可惜的是更新维护好像暂停了)、DwellClick (能点选一些其他点选操作不能点选的,但是这个软件主要功能是自动点击)
    9. 以及:触控板(原生,已经够好用了,没有鼠标也能用)、鼠标(优点:点击比妙控板更快,尤其是在比较大的外界屏幕上,触控板手指滑过去还是比较费劲。缺点:触控板只需要动手指,但是鼠标需要动手腕)
    10. Hammerspoon (搭配 Hammerspoon 的输入框 Vim 脚本,对于一般的输入框还是可以应付的,应付不了的用 kindaVim )

    以上各种软件,如果需要更详细的功能定制,比如触控板手势操作窗之类的,我用的是 BetterTouchTool 。这样搭配下来,好处是不管用什么方式(触控板、鼠标、键盘),都有对应的调整方式,对三种对象(桌面、软件、窗口)的三种需求(切换、布局、操作)都有涉及,对操作的三种形态(点选、拖拽、滚动)都各有设置。不好的地方是,有些时候个别软件会相互冲突,需要捣腾。
    hermanarturo
        20
    hermanarturo  
       2023-11-10 01:17:41 +08:00
    PostMeridiem18
        21
    PostMeridiem18  
       2023-11-10 02:58:22 +08:00
    @ychen997 Rectangle 也支持键盘快捷键啊
    ychen997
        22
    ychen997  
    OP
       2023-11-10 03:28:35 +08:00
    @GabrielleBellamy #19 看完了,大佬的方案真的齐全,有些 app 我也在用,比如 homerow, vim 插件。但是齐全代表了很容易互相冲突,这也是我选择一个 app 就只管好一个方面的原因(触控板)。另外我好像没有键盘控制鼠标的需求,我觉得有 homerow + 编辑器的 vim mode + 触控板, 基本上就可以覆盖所有鼠标的场景了。
    gpt5
        23
    gpt5  
       2023-11-10 07:43:48 +08:00 via iPhone
    Mosaic 用了好多年了,快捷键基本可以达到随心所欲
    Goalonez
        24
    Goalonez  
       2023-11-10 08:51:45 +08:00
    我是隐藏 dock ,常用的软件全部设置 raycast 呼出隐藏,不常用就 raycast 搜索打开,定个短的别名。窗口布局也是 raycast ,一般只用满屏和半屏。自带的多桌面,基本一个桌面一个应用,一般也就 chrome 和几个 jetbrains 。类似微信、终端之类的软件分配给所有桌面,这样快捷键呼出的时候不会自动切换多桌面。
    ddzy
        25
    ddzy  
       2023-11-10 08:56:11 +08:00
    一个 Contexts 就行
    neochen13
        26
    neochen13  
       2023-11-10 09:37:22 +08:00
    用 contexts 就足够了
    lguan
        27
    lguan  
       2023-11-10 11:04:15 +08:00
    大伙儿平时这都是在造原子弹嘛.....😭
    GabrielleBellamy
        28
    GabrielleBellamy  
       2023-11-10 12:22:40 +08:00
    @ychen997 #22 是的,确实有冲突的……哎😥
    eggsblue
        29
    eggsblue  
       2023-11-10 17:06:56 +08:00
    感谢推荐 Wins ,未来会增加 自定义任意布局在悬浮分屏上。

    Wins 还有很多特色功能:
    1. 摇一摇隐藏其他窗口
    2. 一键隐藏所有窗口 / 隐藏非当前窗口的其他窗口
    3. 简约够用的 Dock 窗口预览
    4. 快速将窗口移动到扩展显示器(个人非常喜欢)

    还有很多激动人心的功能正在开发中💪
    neochen13
        30
    neochen13  
       2023-11-10 17:55:48 +08:00
    @eggsblue 如果 wins 能有窗口预设,那将是最强窗口管理 app
    比如快速把指定的几个 app ,左右分屏,想想就很完美
    ychen997
        31
    ychen997  
    OP
       2023-11-10 23:41:43 +08:00
    @eggsblue #29 @neochen13 我同意有窗口预设+恢复功能,最好能用 applescript 或者 url scheme 调用,那么 wins 将绝杀
    wangcheng
        32
    wangcheng  
       2023-11-22 11:55:37 +08:00
    @ychen997 AltTab 设置 「 appearance 」最下面有一个选项是「 hide apps with no open window 」
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1924 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:18 · PVG 00:18 · LAX 08:18 · JFK 11:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.