V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
damngood
V2EX  ›  分享创造

一个 OS X 下的快速切换和启动应用的应用: OptOpt

  •  2
     
  •   damngood · 2015-05-16 13:51:26 +08:00 · 4465 次点击
    这是一个创建于 3486 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为同时打开的应用比较多, 系统自带的应用切换方式有的时候需要多次按键才能切换到目标应用.
    所以就有了这个应用 -- 在应用和字符按键之间建立一个映射, 当切换器被调出来后, 单击就可以切换或者启动对应的应用.

    链接: https://itunes.apple.com/cn/app/optopt/id989799277?mt=12

    自我感觉 UI 很普通, 所以暂时免费.

    另外一个比较囧的事情是, 本来还有个窗口组快速切换和定位的功能, 结果做完后开启 sandbox 后才发现这个功能所需要的 API 在 sandbox 环境下无法使用, 而且暂时也没有对应的 exceptional entilement, 所以... 被干掉了. :-(
    第 1 条附言  ·  2015-05-16 15:10:38 +08:00
    刚有朋友问我怎么样把切换界面调出来.
    是这样的, 默认是双击 Option 键调出切换界面, 不过也可以设置成单击 Option 键.

    我个人是在系统设置里面把 Capslock 键 map 到 Option 上面去了. 因为感觉 Capslock 键位置要更好些.
    43 条回复    2017-09-04 14:18:30 +08:00
    lins05
        1
    lins05  
       2015-05-16 13:57:08 +08:00
    赞原创,不过跟 alfred workflow 相比有什么特点?
    ahmiao
        2
    ahmiao  
       2015-05-16 14:02:59 +08:00
    与Manico是一类啊
    damngood
        3
    damngood  
    OP
       2015-05-16 14:12:20 +08:00
    @lins05 我没怎么使用过 alfred workflow. 仅仅用过 alfred app store 的版本.

    就 alfred app store 的版本来说, 用来切换应用的话需要的键盘操作还是有点多吧.
    damngood
        4
    damngood  
    OP
       2015-05-16 14:14:00 +08:00
    @ahmiao 我么有用过 Manico, 但是知道这个应用的存在. 我上面提到过, 本来还有另外一个主要功能的, 只是后来这个功能上不了 MAS. 所以你这么一问我还是蛮尴尬的. 哈哈
    Sylv
        5
    Sylv  
       2015-05-16 14:30:15 +08:00   ❤️ 1
    赞!已加入常驻
    ispinfx
        6
    ispinfx  
       2015-05-16 14:30:20 +08:00 via iPhone
    看描述感觉像Manico
    damngood
        7
    damngood  
    OP
       2015-05-16 14:36:40 +08:00
    @Sylv 哈哈, 多谢鼓励. 很高兴有朋友觉得有用.
    Sylv
        8
    Sylv  
       2015-05-16 16:22:48 +08:00 via iPhone
    建议:让用户添加辅助功能权限的提示可以参考下其它 App 的方式,直接唤出系统设置窗口让用户打勾。现在用户得自己打开设置窗口,然后得手动按加找到程序添加到列表里打勾。我在完成这一系列操作后发现还是唤不出界面,一度以为快捷键和其它 App 冲突了,最后发现还得重启程序后才能成功。
    你可以考虑下优化这部分操作,让新用户更好上手些。
    damngood
        9
    damngood  
    OP
       2015-05-16 16:54:35 +08:00
    @Sylv 恩, 谢谢你的建议. 不过这个看上去也是没有办法的事情

    根据我的实验( 和 google ), 在调用同一个方法的时候 sandbox 应用和非 sandbox 应用产生的系统行为是有区别的.

    在你说的这个情况里, 只有非 sandbox 的应用才会弹出系统设置, 并且应用已经加入了列表, 只待用户打勾了.

    如果你发现 MAS 里面有应用可以做到这个事情的话, 那就应该是在 MAS 要求 sandbox 之前就已经存在的应用了.

    所以看上去我可以做的是启动的时候加入一些提示性的 UI 来避免这些问题.
    DearMark
        10
    DearMark  
       2015-05-16 17:53:22 +08:00
    必须要设置 keymaping 应用有效吗?
    sobigfish
        11
    sobigfish  
       2015-05-16 18:00:08 +08:00
    牛,请问:这些相关的API怎么找到的文档啊,不涉及商业机密的情况下。
    谢谢
    damngood
        12
    damngood  
    OP
       2015-05-16 18:08:02 +08:00
    @DearMark 如果不设置的话会随机分配一个 key, 调出切换 UI 的时候可以看到. 但是推荐在 keymap 里设置好 app - key pair, 这样习惯了的话切换起来几乎是瞬间的事情了.
    damngood
        13
    damngood  
    OP
       2015-05-16 18:11:07 +08:00   ❤️ 1
    @sobigfish 具体是指哪个功能? 如果是上面说的 sandbox 不允许的那个功能的话, 那部分是用的 Accessiblity API.

    在 Dash 里面搜 AXUIelement 就知道了.
    kokdemo
        14
    kokdemo  
       2015-05-16 19:35:29 +08:00
    表示买了manico 然而并不好用
    adeweb
        15
    adeweb  
       2015-05-16 19:53:22 +08:00
    已用上。简单实用的工具!可以考虑收费。
    hewigovens
        16
    hewigovens  
       2015-05-16 20:43:41 +08:00
    "自我感觉 UI 很普通, 所以暂时免费." 楼主收费吧, 才有动力更新下去的
    canautumn
        17
    canautumn  
       2015-05-16 21:04:05 +08:00
    和Manico差不多,不过我已经不用了,改使用Keyboard Maestro达到同样的功能,少开一个App。如果有别的什么特色功能可能会考虑。
    damngood
        18
    damngood  
    OP
       2015-05-16 22:02:23 +08:00   ❤️ 1
    @adeweb
    @hewigovens

    这两天对 UI 还有一些小改进有新的构思. 如果有朋友觉得有用的话会去实现的. 谢谢支持.

    @canautumn
    Keyboard Maestro 应该也可以做到快速切换, 不过可能需要的按键会多一点. 当然我有可能错了, 我记得是试用的时候觉得各种全局快捷键管理起来不太方便, 容易冲突.

    既然提到了全局快捷键, 我就多说一些想法.

    全局快捷键很方便, 但是这么多应用的各种全局快捷键我在使用的过程中总觉得很容易相互冲突, 混淆.

    其实我尝试过写一个 Keyboard Kernel 扩展, 直接把 Capslock 键来 map 成 CMD+OPTION+SHIFT+CONTROL 这几个键的一个组合键来作为一个 hyper key ( 就像 Seil 这个应用能够做的那样 ), 那样的话, 全局快捷键会好管理很多, 各种全局快捷键很容易导致冲突. 只是我花了几天的时间尝试过最后还是没有成功. 因为 Capslock 这个键藏的比较深一点, 我没找到好点的办法来处理.

    所以最后折中的一个办法是用 Option key 来作为 trigger key, 然后建议用户在系统设置里面把 Capslock map 成 option 来曲线达到目的.

    当然我个人觉得最好的办法还是提供一个全局快捷键, 然后用户使用 Seil 之类的应用来把 capslock 键转换成一个 hyper 键. 但是我总觉得你不能在用户装你的应用之前去装个 Seil 吧.
    canautumn
        19
    canautumn  
       2015-05-16 22:10:48 +08:00
    @damngood Keyboard Maestro里可以设置成Option+一个键切换到应用,没看出和你的这个有什么区别。
    damngood
        20
    damngood  
    OP
       2015-05-16 22:18:02 +08:00
    @canautumn 恩, 那就是使用效果上没什么大区别了. :-)
    regent
        21
    regent  
       2015-05-16 23:12:45 +08:00
    可以考虑像win7自带功能一样用数字么,A B这样按起来不够方便,
    另外,是否需要用户手动添加开机启动项?程序目前是没有设置菜单的吧?
    adeweb
        22
    adeweb  
       2015-05-16 23:15:50 +08:00
    @damngood 已经换成Capslock键,但这样并没有释放Option(单击时),期望能像Alfred一样灵活一点的键绑定;UI也可以设置成不显示ICON。
    OptOpt对我来说太实用了,持续关注!
    regent
        23
    regent  
       2015-05-16 23:24:03 +08:00
    之前没有注意,找到设置项了,提一个建议,希望在弹出的切换界面,可以支持退出某程序,例如右键退出
    因为用户在切换程序时,还可能产生这种需求:这个程序这会不需要了,退出吧

    另外英文翻页是不是修改一下?

    Launch at login 就已经意思完整了

    keymap setting 似乎不支持数字键?
    pagict
        24
    pagict  
       2015-05-17 01:16:12 +08:00
    居然只支持10.10

    楼主能好心适配一下10.9嘛
    qq2511296
        25
    qq2511296  
       2015-05-17 01:56:16 +08:00
    建议加个功能 如果是单机模式 可以直接用option+key 切换到那个应用
    qq2511296
        26
    qq2511296  
       2015-05-17 01:58:24 +08:00
    建议加个功能 如果是单机模式 可以直接用option+key 切换或者启动那个应用
    Andrewliu
        27
    Andrewliu  
       2015-05-17 09:54:46 +08:00
    用的Manico
    damngood
        28
    damngood  
    OP
       2015-05-17 10:03:55 +08:00
    @regent 没有使用数字的原因是, 上面提到过本来有另外一个窗口组管理功能的, 数字开始计划是用来切换窗口组的, 所以没有用来做切换应用.
    如果前面有 checkbox 的话, Launch at login 就 OK 了, 现在这样看上去只能这样啦. 如果以后改 UI 的话, 用 checkbox 或者是iOS 上 UISwitcher 那样是会好点.
    damngood
        29
    damngood  
    OP
       2015-05-17 10:09:01 +08:00
    @qq2511296 咦, 和现在这样也没有多大区别吧.
    @pagict 原因是我自己只有10.10的机器. 找不到用来测试的. (哭
    如果有下个版本的话, 会考虑支持的.
    deepreader
        30
    deepreader  
       2015-05-17 13:27:15 +08:00 via Android
    What is the difference compared to Snap? Snap is more straightforward
    damngood
        31
    damngood  
    OP
       2015-05-17 18:30:04 +08:00
    @deepreader 你指的是 BetterSnapTool 这个应用吗? 抱歉我没用过, 但是根据 MAS 上的介绍来看应该不算同一种类型的吧.
    damngood
        32
    damngood  
    OP
       2015-05-17 18:36:02 +08:00
    @canautumn
    @qq2511296

    Option + key 的切换方式和这个应用里面使用的 先 Option 然后在按对应的 key 其实还是有区别的.

    Option + key 的话那就应该是只能通过注册全局快捷键来实现了. 我在某楼里面提到过, 这样比较乱, 而且也有可能和当前响应 App 的某个应用内快捷键有冲突导致失效.

    先 Option 等切换窗口调出来了之后再按 key 的方式的话就不需要注册全局快捷键, 减少冲突的可能.
    deepreader
        33
    deepreader  
       2015-05-17 21:07:15 +08:00   ❤️ 1
    @damngood 上电脑细看了下,LZ非常好的app,great job!
    canautumn
        34
    canautumn  
       2015-05-17 21:20:05 +08:00
    @damngood 哦明白了
    crayhuang
        35
    crayhuang  
       2015-05-18 17:05:27 +08:00   ❤️ 1
    不错的APP 果断换了hyperswitch
    crayhuang
        36
    crayhuang  
       2015-05-18 17:51:34 +08:00
    @damngood 有个建议,就是鼠标放上去如果有个选中的效果感觉会好一些,另外比如我的sublime没打开任何文本的时候,点击sublime就不起作用,貌似其他App也一样
    damngood
        37
    damngood  
    OP
       2015-05-18 18:07:29 +08:00
    @crayhuang 感谢建议. 下次更新的时候会改进.
    点击 sublime text 的时候应该是起作用了. 只是因为没有窗口所以给你没有起作用的感觉.
    左上角的当前应用应该是 sublime text 了吧.

    一般这种活跃但是没有窗口的情况下, 在切换之后一个 cmd+N 新建个窗口就好了.
    crayhuang
        38
    crayhuang  
       2015-05-18 23:55:11 +08:00 via iPhone
    @damngood 但我直接点dock上面的就能显示新窗口
    damngood
        39
    damngood  
    OP
       2015-05-19 10:23:19 +08:00
    @crayhuang 咦, 我这没这个问题呢. 感觉应该是和系统某个设置相关. 我问问身边的朋友看遇到过这个问题不.
    zhengjjasd
        40
    zhengjjasd  
       2016-08-27 11:19:37 +08:00
    怎么下架了,市场找不到了
    damngood
        41
    damngood  
    OP
       2016-08-30 10:29:09 +08:00
    @zhengjjasd 嗯, 已经下架了. 主要我自己觉得用处也不是很大
    fl2d
        42
    fl2d  
       2017-01-18 17:04:53 +08:00   ❤️ 1
    挺方便的,下架了有点可惜呀,曾经用了好久呢
    500miles
        43
    500miles  
       2017-09-04 14:18:30 +08:00
    @damngood hi 之前买过一份 optopt, 长期以来使用还蛮顺手的. 最近新入一部电脑, 再安装时, 发现已经下架. 请问 能提供下安装包吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2597 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:44 · PVG 13:44 · LAX 21:44 · JFK 00:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.