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

macOS 的窗口切换太难用,所以写了个软件

  •  2
     
  •   xcodebuild · 29 天前 · 5294 次点击

    由于 macOS 的窗口切换逻辑过于感人:

    • 不同应用切换用 Cmd+Tab
    • 同应用不同窗口切换用 Cmd+`

    导致总是不小心切错窗口,甚至某些设置窗口之类的压根就切不到了。四指上滑倒是没有这些问题,就是速度慢了点。

    参考了一些收费软件后,抽空写了个软件解决这个问题,把 Cmd+Tab 换成了和 Windows 切换窗口类似的逻辑,Cmd+Tab 就能在所有的窗口间进行切换。

    介绍文章

    https://www.jianshu.com/p/4f6bb60fe675

    下载地址

    https://github.com/xtab-app/xtab

    截图

    img

    第 1 条附言  ·  29 天前

    感兴趣的 v 友欢迎进群交流

    img

    73 回复  |  直到 2019-04-24 14:34:50 +08:00
        1
    shell233   29 天前
    水军来了
        2
    ilumer   29 天前   ♥ 1
    最新版体验很好,切换不同窗口时比较爽。
        3
    hhyvs111   29 天前
    有点丑啊,能自己改成 cmd+ esc 吗 hhkb 没有 `
        4
    xell   29 天前
    感谢开源。请问和免费(但一直在 beta )的 HyperSwitch [1] 相比有什么优点吗?

    [1]: https://bahoom.com/hyperswitch
        5
    xcodebuild   29 天前
    @hhyvs111 emmm 不需要 ` 了,` 是 macOS 自己的逻辑

    xTab 就只需要 Cmd+Tab 就能应付所有需求了

    外观这个问题嘛我还没想出更合适的样子,如果有设计大手子求改进。目前可能那个预览的样式比较随意一些
        6
    xcodebuild   29 天前
    @xell 啊我得澄清一下其实并没有开源,只是 release 是托管在 Github 的(发布比较方便)。因为以前开源过一个 mac 软件( https://github.com/MacGesture/MacGesture ) GPL 协议结果被人抄去做成了闭源软件。。感觉比较没意思

    和 HyperSwitch 的基础功能非常接近,都是实现和 Windows 一致的切换逻辑。但是我期望更倾向于高效的窗口切换而不仅仅是和 Windows 一样(例如后面会加入窗口搜索功能等),所以你会发现他的界面更像 Contexts。

    // 还有也比较担心哪天 HyperSwitch beta 结束了收费怎么破(就是给自己造轮子找个理由)
        7
    sunocean   29 天前 via iPhone
    我来吹 hammerspoon 开源,免费,可定制。窗口管理只是一个小功能。其他的你想到的想不到的都有。
        8
    xcodebuild   29 天前   ♥ 1
    @sunocean hammerspoon 确实很强,适合高度定制的玩家

    其实本质上我也是在用 XCode 定制自己的需求 😋
        9
    missdeer   29 天前   ♥ 1
    `其实本质上我也是在用 XCode 定制自己的需求 😋`
    赞这句!
        10
    aborigine   29 天前   ♥ 1
    希望加个功能,能在 manu bar 隐藏,用着还是不错的
        11
    aborigine   29 天前
    @aborigine #10 menu bar
        12
    xcodebuild   29 天前
    @aborigine menubar 隐藏后一些配置之类的地方(例如配置 menubar 隐藏这个操作本身)就比较麻烦了

    话说这里可以推荐另外一个软件: https://github.com/Mortennn/Dozer,我是用这个清理 menubar 的
        13
    aborigine   29 天前
    @codefalling #12 感谢,我去试试
        14
    xell   29 天前
    @codefalling #6 多谢说明。
        15
    THaGKI9   29 天前 via iPhone
    有个软件叫做 Contexts … 和你这个差不多…不过人家收费
        16
    xcodebuild   28 天前
    @THaGKI9 对的,有试用过。。。然后到期了干脆自己写了个
        17
    lazyyz   28 天前 via Android
    rmbp 触摸板 表示四指切换很方便
        19
    azoon   28 天前   ♥ 1
    不错,用上了。macOS 的窗口管理真是不够人性化。
        20
    orangeade   28 天前
    就因为 macOS 糟糕的窗口管理和 Finder,对 mac 一直喜欢不上来
    目前是用 HyperSwitch+Maget 解决的
        21
    xcodebuild   28 天前
    @orangeade Finder 我也是不喜欢,窗口管理用的 Spectacle,切换的话现在就用 xTab 了

    但是 Finder 似乎还是没什么好方案
        22
    xcodebuild   28 天前
    @lazyyz 四指切换除了慢了点没毛病,另外外接键盘鼠标的时候就只能用触发角了,触摸板太贵了🤣
        23
    sobigfish   28 天前
    关键是这些获取已打开的窗口,并能切换到它的 这些 api lz 怎么找到的 能教下方法么 谢谢
        24
    xcodebuild   28 天前   ♥ 1
    @sobigfish 主要是 Stack Overflow 和 Apple 的文档(并看不懂)和一些 Cocoa 相关的论坛,基本上就靠一手 SearchFu 🤣

    不得不吐槽一句,微软的技术文档比起来真的是业界良心
        25
    elone   28 天前
    我就想借楼问下,有没有办法在 dock 栏显示同一软件的多个实例图标。比如说我用 vscode 打开两个项目,只是在 dock 栏里只显示一个 vscode,切换起来很痛苦。
        26
    xcodebuild   28 天前
    @elone 如果坚持要用 dock 切换的话,目测只能和 xTab 的思路一样再实现一个 dock 栏,不太可能改变系统本身的设定,苹果在这个层面留下的可定制性几乎没有。

    我就是为了解决切换 VSCode 这类需求开发的 xTab,不过我习惯用键盘切换而不是 dock
        27
    elone   28 天前
    @codefalling 刚安装了应用,也给了相应的权限,为何打开后一片空白? 10.14.2
        28
    xcodebuild   28 天前
    @elone 啊抱歉刚刚为了修复一个 bug 发了一个错误的版本上去,现在已经修复了,得麻烦你手动重新安装一下: https://github.com/xtab-app/xtab/releases/tag/1.0.4
        29
    elone   28 天前   ♥ 1
    @codefalling 可以了。非常感谢 。这确实是我非常需要的东西。
        30
    lrigi   28 天前 via iPhone
    我是把鼠标中键设成了和触摸板四指上划一样的功能
    这样 command+tab 就可以愉快的使用了
        31
    youthcould   28 天前 via iPhone   ♥ 1
    @codefalling 隐藏 menubar 后的设置可以参考 scroll reverser
        32
    littleMaple   28 天前 via iPhone
    @hhyvs111 HHKB 键盘的最右上角那个键就是“`”啊
        33
    TonyLiu2ca   28 天前
    强烈支持楼主!
    还没有使用,主要是,想问问:如何干净地卸载?
        34
    xcodebuild   28 天前 via iPhone
    @TonyLiu2ca 从 menubar 退出,把程序拖到垃圾桶就干净的卸载了。不用担心篡改了系统功能什么的,这是运行时实现的,退出就没有了
        35
    xcodebuild   28 天前 via iPhone
    @youthcould 嗯,以前就实现过类似的逻辑。因为比较麻烦导致经常有 bug。

    还是交给专门的软件处理好😆
        36
    TonyLiu2ca   28 天前
    @codefalling 应该还会在注入~/Library 中有其它的可以清除的吧?
        37
    ladit   28 天前 via iPhone
    @elone hyperdock 可以让鼠标悬浮在 dock 的每个图标时显示可用窗口,调整成低延迟和大窗口后可能是最符合你需求的折中方案了。
        38
    xcodebuild   28 天前 via iPhone
    @TonyLiu2ca 这一类就是常规的应用配置了,对系统不会有什么影响。可以用 appcleaner 直接清理
        39
    POPOEVER   28 天前
    哦,我倒是一直觉得挺习惯的,哈哈
        40
    visitant   28 天前
    感谢楼主让我知道了“同应用不同窗口切换用 Cmd+`”
        41
    konakona   28 天前
    我已经用了几年的 mac 了,我已经喜欢了,不会按错这个 2 个快捷键,2333
        42
    xcodebuild   28 天前 via iPhone
    @visitant 哈哈哈我刚开始也是不知道,经常切懵
        43
    xcodebuild   28 天前 via iPhone
    @konakona 用了两年多还是没适应,其实 Apple 家一贯如此,有些设定只要接受了也还是不错的🤣
        44
    TonyLiu2ca   28 天前
    @codefalling
    [Imgur]( )
    彻底清楚地话,上图中所有 xTab 相关的文件需要删除。

    其它的关于 studentd 和钥匙串中的一个新建的密码项不知是否相关,可能是相关,也应该可以删除。
        45
    TonyLiu2ca   28 天前   ♥ 2
    @codefalling 有个问题,当一个打开的窗口最小化后,无法切换,这与 macOS 原来的 ⌘+` 的问题一样。
        46
    xcodebuild   28 天前
    @TonyLiu2ca

    AppCleaner 看到的是这些,一般就用这个清理就 ok 了,不过我个人不是很关注这个问题,一般都是把 .app 拖进垃圾箱完事

        47
    xcodebuild   28 天前
    @TonyLiu2ca 这个貌似是个问题,我来看一下。

    不过最小化的窗口是否应该被切换到?因为貌似只有手动操作才会把窗口最小化掉(以至于我几乎没用过)
        48
    hackpro   28 天前
    非常非常棒 建议添加 Homebrew 支持
    另外 Finder 多个标签情况下 似乎 Cmd+`循环会出现有一次所有的 Windows 都未被选中的状况?
        49
    xcodebuild   28 天前 via iPhone
    @hackpro 有道理,可以加一个 brew cask 的支持

    第二句话没理解,cmd ` 和 xTab 没关系。

    我试了下 finder 多 tab (指的是其中一个窗口有多个 tab 对吧)。似乎 xTab 和系统的 cmd` 都没问题。他们都不会把 finder 的 tab 当做窗口处理。
        50
    rikka   28 天前
    挺好用的,但是图标看着难受😂
        51
    cjzlol   28 天前
    最小化后就不管用了- -
    其实最难受的是最小化后,想切换回来
        52
    xcodebuild   28 天前
    @rikka 哈哈哈这个我再修一修
        53
    xcodebuild   28 天前
    @cjzlol 我研究下最小化的问题,我自己是不怎么去主动最小化来着
        54
    hackpro   28 天前
    @codefalling 举个例子
    将如有两个 Finder Window(比如名字分别叫 W1/W2) 不是 Cmd+T 新建的 Tab
    通过 Cmd+`切换的正常逻辑应该为 W1/W2,但是我这边复现的结果是 W1->W2->None selected->W1->W2->None selected... 菜单栏的标题倒一直是 Finder 希望排查以下
        55
    xcodebuild   28 天前
    @hackpro Cmd + ` 不是我实现的。。是苹果自己的,所以我排查不了

    说来我这边也没有复现出这个情况
        56
    youthcould   28 天前
    期待可以把最小化的窗口包括进来
        57
    cjzlol   28 天前
    @codefalling #52 能有最小化就完美了
        58
    xcodebuild   27 天前   ♥ 2


    @cjzlol @youthcould @TonyLiu2ca 新版本已经支持切换最小化窗口了 🦋

    @rikka 新版图标也修了

    下载: https://github.com/xtab-app/xtab/releases
        59
    rikka   27 天前
    @codefalling #58 这两个地方故意设计黑色边框没连上,还是疏忽啊,我比较颜控,看着还是有点扎眼,即便把黑色边框连上,这个图标还是😂
        60
    xcodebuild   27 天前
    @rikka 哈哈哈我受不了你了其实是故意的但是作为图标确实有点扎眼,下个版本再改了🤣
        61
    rikka   27 天前
    @codefalling #60 这个图标拉低了我 launchpad 上面的整体颜值,哈哈
        62
    cjzlol   27 天前
    @codefalling #57 等明天试试,刚刚关机 233
        63
    gesse   27 天前
    cmd+shift+tab 还是能弹出原生切换
        64
    PopeyeLau   27 天前
    挺好用的..
    就是跟 `CheatSheet` 有冲突..
        65
    xcodebuild   27 天前 via iPhone
    @gesse 下个版本解决

    @PopeyeLau 没用过 cheatsheet,我得试试看
        66
    1ychee   27 天前
    我用 TotalSpaces 来划分桌面

    xTab 运行后,在桌面 A 中通过 Cmd+Tab 呼出的菜单中,只显示「在桌面 A 中运行的 APP 们」;在桌面 B 中只显示「在桌面 B 中运行的 APP 们」。

    所以暂时用不了。但我相信用 TotalSpaces 的人还是比较少的,所以应该不影响。
        67
    eddiechen   27 天前
    我倒是想把 mac 的切换窗口挪到 win 去,习惯了比 win 好用很多
        68
    xcodebuild   27 天前
    @1ychee Space 的问题比较难搞,Apple 几乎没提供任何相关的 API,还得再研究研究
        69
    xcodebuild   27 天前 via iPhone
    @eddiechen 😄你也可以用 visual studio 定制一个
        70
    xcodebuild   25 天前
        71
    lunare   25 天前
    关注一下
        72
    lunacory   25 天前
    cmd+tab cmd+` 分开了明明很好使啊
        73
    xcodebuild   25 天前
    @lunacory 哈对我自己来说,总是要思考一下是 tab 还是 ` 有点难受
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2384 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 12:24 · PVG 20:24 · LAX 05:24 · JFK 08:24
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1