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

终于找到了 macos 切换程序的最佳方式

  •  
  •   x97bgt · 2021-11-02 09:27:35 +08:00 · 13023 次点击
    这是一个创建于 461 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在的方式:先按住w(相当于 prefix key ),然后按一下j切换到 iTerm ,按一下j切换到 VSCode ,按一下c切换到浏览器。不用再 cmd+tab 一个个找了,也不会占用现有的按键,畅快。

    多亏了 karabiner+goku 这两个软件。

    第 1 条附言  ·  2021-11-02 18:37:15 +08:00
    大家提了很多方案,但大体是
    - 使用快捷键,比如可以用 manico 和 hammerspoon 。但这很容易跟软件起冲突。
    - 先调出一个软件的调度中心,再选择应用。spootlight 、alfred 都是这样。但这样太慢了,而且会花费时间选择,不丝滑。
    - 使用鼠标。再见,鼠标更慢,尤其是在专心写代码时。

    我这个方案,可以在 IDE 、命令行、浏览器之间无缝切换,手都不需要离开键盘。
    第 2 条附言  ·  2021-11-02 19:25:56 +08:00
    关于配置,可以看 #64 贴的 gist 片段
    128 条回复    2022-08-31 21:36:43 +08:00
    1  2  
    kidlj
        1
    kidlj  
       2021-11-02 09:31:51 +08:00   ❤️ 1
    各占一个桌面,三指左右划动切换不香吗?
    dangge
        2
    dangge  
       2021-11-02 09:34:15 +08:00
    http://manico.im/
    推荐一下我在用的切换软件。
    x97bgt
        3
    x97bgt  
    OP
       2021-11-02 09:34:20 +08:00 via iPhone
    @kidlj 没那么多屏幕啊。三指滑动怎么切换一个桌面下的软件?
    x97bgt
        4
    x97bgt  
    OP
       2021-11-02 09:36:00 +08:00 via iPhone   ❤️ 1
    @dangge 你这个软件会占用现有的按键,很容易和其他软件起冲突。
    dangge
        5
    dangge  
       2021-11-02 09:41:11 +08:00
    @x97bgt 按键可以自定义。
    lululau
        6
    lululau  
       2021-11-02 09:44:28 +08:00
    我用的 SpaceLauncher ,SPC+w 微信 SPC+e Emacs SPC+c Chrome SPC+t iTerm2 SPC+j Intellij SPC+x Xcode SPC+p Preview.app 。。。
    cyrivlclth
        7
    cyrivlclth  
       2021-11-02 09:44:51 +08:00
    @kidlj = =不用触控板的咋办
    faceair
        8
    faceair  
       2021-11-02 09:45:20 +08:00
    可以在系统的桌面设置里给右上角配置一个触发角,触发角开启调度中心。想要切换应用的时候,指针往桌面右上角一挪全览视图就出来了。
    Volekingsg
        9
    Volekingsg  
       2021-11-02 09:47:24 +08:00
    @lululau #6 我也是长按空格切换,不过我没用 SpaceLauncher 了,用 Karabiner 自己实现了一个 https://gist.github.com/tshu-w/82af1843798edaab9062e44cb261d25a
    kidlj
        10
    kidlj  
       2021-11-02 09:48:02 +08:00
    @x97bgt 一个屏幕,虚拟桌面。一个桌面的程序三指向上划动切换。
    mogutouer
        11
    mogutouer  
       2021-11-02 09:48:56 +08:00
    我跟你说,最快的是放到不同的桌面,然后设置好快捷键,最后搞一个可以自定义侧键的鼠标,大拇指点一下就切,贼快
    x97bgt
        12
    x97bgt  
    OP
       2021-11-02 09:49:25 +08:00
    @lululau
    @Volekingsg 空格貌似确实不错。我准备考虑一下把 w 换成空格了。
    Volekingsg
        13
    Volekingsg  
       2021-11-02 09:49:52 +08:00   ❤️ 2
    帮 lz 补充下,软件切换触发角或者三指滑动的,都没法一个操作直接切换到特定软件?我的大体都是在 Emacs 和 Safari 两个软件中切换,我需要一种很确定的切换方式
    ShawnCAFU
        14
    ShawnCAFU  
       2021-11-02 09:50:30 +08:00
    我基本是 四指上滑调度中心 四指左右滑且换桌面 cmd+tab 三招
    registered
        15
    registered  
       2021-11-02 09:53:20 +08:00
    Snap
    xidaduo
        16
    xidaduo  
       2021-11-02 09:55:39 +08:00
    Snap ,O(1)复杂度切换程序
    ohmytime
        17
    ohmytime  
       2021-11-02 10:04:57 +08:00   ❤️ 2
    你们都不用 卡宾枪嘛?

    Karabiner elements
    下图是我的自定义, 长按空格变成 超级键, 然后解锁一系列神操作 ~
    https://imgtu.com/i/Iike54
    ohmytime
        18
    ohmytime  
       2021-11-02 10:06:54 +08:00
    同时在这里问一下, 怎么样能模拟, Command + Tab,然后释放掉 Tab 的同时,安装 Command 的效果?
    期待大神!
    ohmytime
        19
    ohmytime  
       2021-11-02 10:11:03 +08:00
    我的一些自定义 -> https://imgtu.com/i/IiAiJH
    szzhiyang
        20
    szzhiyang  
       2021-11-02 10:13:17 +08:00   ❤️ 1
    Power Keys 的「光速启动」功能以 F1 ~ F12 为前导键,完美解决了快捷键容易冲突和数量不足的问题:

    https://PowerKeys.GitHub.io/launcher
    superrichman
        21
    superrichman  
       2021-11-02 10:14:11 +08:00
    直接 keyboard maestro ,随便设置快捷键,甚至可以为单个 app 设置快捷键。
    (这软件除了贵真的好用
    Diphia
        22
    Diphia  
       2021-11-02 10:22:09 +08:00
    我只用 Ctrl + 1 2 3 分别切到 Emacs, iTerm 和 Chrome ,感觉可以覆盖八九成的切换

    现在用的 Manico ,但是要实现这个应该很多软件都可以,Karabiner, Alfred 什么的
    goodryb
        23
    goodryb  
       2021-11-02 10:22:54 +08:00
    直接三指上划(就是 F3 那个功能),一次性选择到位,重要的软件,直接单独一个虚拟桌面
    Diphia
        24
    Diphia  
       2021-11-02 10:23:58 +08:00
    其实用过的最强大的切换方案是 yabai ( https://github.com/koekeishiya/yabai),差不多是 macOS 上全功能的 Tiling Window Manager 了,但是要关 SIP ,换了新机器以后就放弃了
    x97bgt
        25
    x97bgt  
    OP
       2021-11-02 10:31:06 +08:00
    @Diphia yabai 我也用,但关 SIP 确实是一个隐患
    x97bgt
        26
    x97bgt  
    OP
       2021-11-02 10:32:09 +08:00
    @szzhiyang
    @superrichman
    @Diphia 设置快捷键调用程序的工具很多,但是经常会跟其他软件的快捷键起冲突,就不大喜欢这种方式。
    pansongya
        27
    pansongya  
       2021-11-02 10:38:06 +08:00
    有没有 cmd + tab 切换好用的呢?
    FallenMax
        28
    FallenMax  
       2021-11-02 10:39:27 +08:00
    https://github.com/saforem2/chunkwm

    类似 i3 的平铺式窗口管理器,你值得拥有
    FallenMax
        29
    FallenMax  
       2021-11-02 10:41:38 +08:00
    @FallenMax 说错了,新版是 yabai
    ALVC666
        30
    ALVC666  
       2021-11-02 10:46:18 +08:00
    开的程序多的话我会用 alfred 切
    cloudyplain
        31
    cloudyplain  
       2021-11-02 11:36:01 +08:00
    简单切换用 alfred 搜索或者用 workflow 绑定些快捷键,复杂就用 contexts 的搜索功能
    hiahiahiahia
        32
    hiahiahiahia  
       2021-11-02 11:39:42 +08:00
    试试 thor
    可以自定义一个快捷键
    cp19890714
        33
    cp19890714  
       2021-11-02 12:28:52 +08:00 via Android
    老生常谈的话题了。
    我没有安装任何软件,使用 mac 的多桌面,设置 10 个桌面,每个软件放到不同的桌面,快捷键直接切换桌面即可,指哪打哪。切换软件不需要做任何思考和眼睛识别
    freeing
        34
    freeing  
       2021-11-02 13:14:19 +08:00
    有个 manico 是专门做这个事的
    wd
        35
    wd  
       2021-11-02 13:18:02 +08:00 via iPhone
    @x97bgt 我试过空格,输入法里面空格用的比较多,会容易误触发。
    Yvette
        36
    Yvette  
       2021-11-02 13:22:44 +08:00
    btw 前段时间用 Hammerspoon 的脚本完美模拟了 Manico 除了 GUI 之外的功能。。。十分舒爽
    letwewell
        37
    letwewell  
       2021-11-02 13:35:43 +08:00
    多桌面三指左右滑 单桌面多程序三指上滑。。。
    x97bgt
        38
    x97bgt  
    OP
       2021-11-02 13:40:57 +08:00
    @Yvette Hammerspoon 的程序切换功能性能貌似很差,非常慢。它的窗口管理功能也有问题,比如移到左半边,可能经历右上->右半->左上,不能一步换到位。
    TuringGunner
        39
    TuringGunner  
       2021-11-02 13:41:22 +08:00
    cmd+tab ,或者三指滑动,感觉都还行吧
    mr2xd
        40
    mr2xd  
       2021-11-02 13:42:56 +08:00
    thor
    RRRoger
        41
    RRRoger  
       2021-11-02 14:53:56 +08:00
    用 alfred 或者 raycast 都行啊
    mauve
        42
    mauve  
       2021-11-02 14:55:39 +08:00
    分享一段 karabiner 作为 manico 使用 的配置

    https://gist.github.com/y4code/c31cb60cc5eb22b27de0fc66500fce48

    sohunjug
        43
    sohunjug  
       2021-11-02 15:01:08 +08:00
    @FallenMax #29 https://github.com/sohunjug/hammerspoon-config 我用 hhtwm 实现了简单的 yabai
    貌似 yabai 不支持 macos12 或 M1
    neptuno
        44
    neptuno  
       2021-11-02 15:17:20 +08:00
    我是用 hammerspoon ,常用的几个定了快捷键,例如:option+w 自动打开微信,并切换为中文输入法,option+j 自动打开 idea (因为我写 java ,就用 j 作为快捷键),并切换为英文输入法
    sohunjug
        45
    sohunjug  
       2021-11-02 15:30:00 +08:00
    @x97bgt #38 hammerspoon 重要的是需要自己写
    EvilDevilJin
        46
    EvilDevilJin  
       2021-11-02 15:38:49 +08:00   ❤️ 1
    @x97bgt 他的意思是每个应用设置成全屏,窗口最大化。三指滑动切换应用。
    rhtututu
        47
    rhtututu  
       2021-11-02 15:42:26 +08:00
    直接 spotlight 也挺快的吧
    yiqiao
        48
    yiqiao  
       2021-11-02 15:47:55 +08:00
    alfred / spotlight 切换
    arischow
        49
    arischow  
       2021-11-02 15:50:54 +08:00
    Manico 多年用户
    Martox
        50
    Martox  
       2021-11-02 16:02:43 +08:00
    hammerspoon + 1 。网上复制一个配置项,然后把你需要的 app 都编号名字,估计要不到 10 分钟。每次看到同事分享屏幕,切换 app 的时候就捉急。。。常用 10 多个 app ,秒切。
    fl2d
        51
    fl2d  
       2021-11-02 16:09:34 +08:00
    @dangge 以前用过,但觉得他这个触发方式有点不方便啊,比如设置成 cmd ,那么全选时按 cmd+a 就触发 manico 了
    phub2020
        52
    phub2020  
       2021-11-02 16:11:32 +08:00
    罗技鼠标切换
    LuciusChen
        53
    LuciusChen  
       2021-11-02 16:21:08 +08:00   ❤️ 1
    @x97bgt 这么说的你肯定没有真的用过 hs
    pityto
        55
    pityto  
       2021-11-02 16:36:44 +08:00
    thor + 1 ,可以自定义快捷键,需要点时间习惯
    violetlai
        56
    violetlai  
       2021-11-02 16:54:04 +08:00
    鼠标功能键 或者 触摸板切换就行了
    weichengwu
        57
    weichengwu  
       2021-11-02 17:11:15 +08:00
    alfred/raycast 更好用,不论切换还是启动
    Joker123456789
        58
    Joker123456789  
       2021-11-02 17:14:54 +08:00
    鼠标移下去,点一下不够快吗?
    zitup
        59
    zitup  
       2021-11-02 17:21:13 +08:00
    @cp19890714 快捷键怎么添加 切换到桌面 2 ,默认的只有切换到桌面 1 ,而且没有添加的按钮...
    spongebobsun
        60
    spongebobsun  
       2021-11-02 17:36:22 +08:00
    切换桌面 / 全屏程序的快捷键 - ctrl + ⬅️ 往左, ctrl + ➡️ 往右...
    wd
        61
    wd  
       2021-11-02 18:01:35 +08:00
    使用 w 好像和 space 一样,如果输入中文的时候速度快,会容易把 w 丢掉。楼主没有这个问题么?
    lycpang
        62
    lycpang  
       2021-11-02 18:07:34 +08:00
    @xidaduo 这软件在 bigsur 系统有 bug ,添加的程序不会出现在列表里面。。。。我就盲人摸象把之前的软件添加进去了,实属不易
    booscopy
        63
    booscopy  
       2021-11-02 18:12:21 +08:00
    Hammerspoon (hotkey) + mtmr ( touchbar ) 完美

    Hammerspoon 性能方面没问题 有问题的通常是脚本写差了
    wd
        64
    wd  
       2021-11-02 18:17:11 +08:00   ❤️ 2
    之前会吞掉 w 是因为我用的不是 simlayer 模式。现在好像好了。

    介于楼主没有贴,我贴一个我的配置。https://gist.github.com/wd/8f0a97b176a9507fb249f3d99d18f31d
    gay4in
        65
    gay4in  
       2021-11-02 18:21:15 +08:00
    设一个快捷键是调度中心就好了,最简单的方法不就是一键显示所有程序窗口吗
    x97bgt
        66
    x97bgt  
    OP
       2021-11-02 18:30:45 +08:00 via iPhone
    @LuciusChen 用过 hs 啊,但感觉没有击中我的点。窗口分屏有 bug ,切换应用没有 karabiner 来的丝滑,不过倒是可以作为文件监控的工具。
    x97bgt
        67
    x97bgt  
    OP
       2021-11-02 18:32:52 +08:00 via iPhone
    @booscopy 你试试 hammerspoon 的 switcher ,调用前都会卡顿一下。
    x97bgt
        68
    x97bgt  
    OP
       2021-11-02 18:33:12 +08:00 via iPhone
    @wd 对,simlayer 模式不会吞,用起来很丝滑,不影响打字。
    jellyspot
        69
    jellyspot  
       2021-11-02 18:47:21 +08:00
    我是两个屏,一个横着,一个竖着,一般常用的软件就是 3 个左右,主要工具放横屏上,剩下两个,放竖屏,上下各一个,刚刚好
    fucku
        70
    fucku  
       2021-11-02 19:07:17 +08:00
    contexts
    xiaket
        71
    xiaket  
       2021-11-02 19:10:04 +08:00
    itgoyo
        72
    itgoyo  
       2021-11-02 19:11:05 +08:00

    很多人都说 Alfred ,但是又不了解 Alfred 的真正用法,Alfred 可以映射快捷键,不是换出搜索框,而是映射快捷键
    itgoyo
        73
    itgoyo  
       2021-11-02 19:12:38 +08:00
    ohmytime
        74
    ohmytime  
       2021-11-02 19:21:41 +08:00
    @itgoyo 请教一下, 你是怎么直接上传并显示图片的?
    xiaket
        75
    xiaket  
       2021-11-02 19:22:08 +08:00
    @itgoyo 最大缺点是不能区分左右的 cmd.
    x97bgt
        76
    x97bgt  
    OP
       2021-11-02 19:24:40 +08:00
    @xiaket 你这样移动半屏可以一步到位吗?我之前用过 hammerspoon ,但可能要按好几次,才能移到左半边。移动右半边也是一样。
    ispinfx
        77
    ispinfx  
       2021-11-02 19:30:27 +08:00 via iPhone
    manico ,option 开头没见过几个冲突的
    cp19890714
        78
    cp19890714  
       2021-11-02 19:32:21 +08:00   ❤️ 1
    @zitup
    设置-键盘-快捷键-调度中心-切换到桌面 1 切换到桌面 2....
    前提是你得先建立多个桌面, 设置中才会出现快捷键.
    如果觉得切换桌面的动画太慢, 可以把动画关闭。
    用一段时间,形成条件反射后,最终效果就是心里想用哪个软件,桌面立即就显示这个软件了,简直意念控制。
    Volekingsg
        79
    Volekingsg  
       2021-11-02 19:36:17 +08:00
    @wd #64 我是输入别的键禁用 space 功能一段时间,simlayer 是啥,方便转换成原始配置我看眼么😂
    sohunjug
        80
    sohunjug  
       2021-11-02 19:40:39 +08:00   ❤️ 1
    @Diphia #24 可以看看我的配置哈 https://github.com/sohunjug/hammerspoon-config
    我用 hhtwm 改的 hammerspoon 模拟 yabai
    Volekingsg
        81
    Volekingsg  
       2021-11-02 19:40:45 +08:00
    @wd #64 看到了,goku 文档有,我有空去研究下
    itgoyo
        82
    itgoyo  
       2021-11-02 19:59:04 +08:00
    @ohmytime 我用的微博图床
    tanran
        83
    tanran  
       2021-11-02 20:25:23 +08:00
    之前用 SNAP ,系统升级后用 Thor ,常用的 App 设置快捷键即可
    jakezh
        84
    jakezh  
       2021-11-02 21:36:15 +08:00
    为什么没人提 AltTab 啊
    可以预览画面,跟 windows 一样
    SjwNo1
        85
    SjwNo1  
       2021-11-02 22:27:18 +08:00
    啊,我都是 alfred 切的
    palxie
        86
    palxie  
       2021-11-02 22:31:25 +08:00
    我是用 keyboard maestro , 然后吧 capsLock 大写键 改成 alt 键, 用快捷键绑定窗口
    capsLock + q, iterm2
    capsLock + 1. webstrom
    capsLock + 2. chrome
    capsLock + 3. android studio / xcode
    capsLock + 4. notion / 云笔记
    capsLock + 5. 模拟器 或者其他
    我套自我感觉挺舒服的. 高频窗口直接出来, 切换流畅. keyboard maestro 也可以像 windows 一样, 应用间切换, 应用内窗口切换, 我不怎么用
    dcoder
        87
    dcoder  
       2021-11-02 23:22:17 +08:00
    好多人都不知道 contexts
    https://contexts.co/

    它一般有 2 种切换方法:
    1. option+tab: 类似 windows 窗口切换. 可设置成其它快捷键.
    2. 打开个类 alfred 的搜索框, 敲字符搜索*已经打开的*窗口.

    第 2 种是它独有的, 模糊匹配做的很好, 敲几个字符能切换成功.
    再配上其它快捷键工具:
    Magnet, Karabiner, Alfred, Vimium for chrome, IDE 自配的快捷键
    基本可实现平滑的 Mac OS 全键盘操作办公
    iluckypig
        88
    iluckypig  
       2021-11-02 23:38:30 +08:00   ❤️ 1
    我用的这个软件 AltTab
    linhongye
        89
    linhongye  
       2021-11-02 23:50:02 +08:00
    @iluckypig #88 点赞, 我也用 AltTab, windows 级别的效率
    pofycn
        90
    pofycn  
       2021-11-03 00:15:37 +08:00
    https://github.com/lwouis/alt-tab-macos 我改成了 opt+tab 用来切换窗口
    UnitTest
        91
    UnitTest  
       2021-11-03 00:27:09 +08:00
    楼上大家的分享都不错, 以前我都是吹 windows, 自从升级 windows11 , 没有完整的任务栏之后感觉还不如 mac 好切换. 有空试试楼上这么多的分享.
    Yvette
        92
    Yvette  
       2021-11-03 00:41:16 +08:00
    @x97bgt 你用的是自己写的脚本还是直接从别人那里拿的 Spoon 之类的?你描述的现象如果存在的话听起来是脚本的逻辑写得有错,不像是 Hammerspoon 本身的问题。这两个功能的脚本我主要用到的分别是下面两个接口,从来没有遇到过你提到的这些问题。

    程序切换 https://www.hammerspoon.org/docs/hs.application.html#get
    窗口管理 https://www.hammerspoon.org/docs/hs.window.html#setFrame
    dayeye2006199
        93
    dayeye2006199  
       2021-11-03 00:52:10 +08:00
    平铺窗口管理器表示都是渣渣
    booscopy
        94
    booscopy  
       2021-11-03 01:48:49 +08:00
    @x97bgt 饭煮的难吃差
    通常不是电锅的问题
    而是食谱的问题
    这里有份食谱 你可以参考
    https://github.com/manateelazycat/hammerspoon-config
    或是
    https://github.com/asmagill/hs._asm.undocumented.spaces
    ooops
        95
    ooops  
       2021-11-03 01:53:09 +08:00
    我都是直接 launchbar 打首字母切换。既然可以接受字母键,我再给楼主提供个思路。
    ![keyboard layout]( https://dsc.cloud/5e900a/keyboard-layout.png)
    Lemeng
        96
    Lemeng  
       2021-11-03 02:18:17 +08:00
    嗯嗯,可以可以
    xuanbg
        97
    xuanbg  
       2021-11-03 07:12:35 +08:00
    楼主要学会使用虚拟桌面啊。点窗口左上角的绿色圆点,就能自动把窗口在一个新的虚拟桌面以全屏的方式显示。3 指左右滑动就能切换。3 指上滑可以选择虚拟桌面。
    sumu
        98
    sumu  
       2021-11-03 07:27:52 +08:00 via iPhone
    yabai ,类似 i3 的窗口管理软件,每个 app 占据一个窗口。常用软件都放在固定的位置,直接切。
    11dad
        99
    11dad  
       2021-11-03 07:28:13 +08:00 via Android
    罗技鼠标可以设置滚轮左右切桌面
    x97bgt
        100
    x97bgt  
    OP
       2021-11-03 08:20:58 +08:00 via iPhone
    @ooops 你这个图,除数字键和方向键以外,感觉其他键位都不好记忆。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   5117 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 03:21 · PVG 11:21 · LAX 19:21 · JFK 22:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.