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

M1 Ventura 经常失去窗口焦点

  •  
  •   mbooyn · 2022-12-06 11:14:55 +08:00 · 1431 次点击
    这是一个创建于 478 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上参考的都是以下脚本,但是在 m1 中并没有 python2 安装在 /usr/bin/python ,有大佬指条明路吗,一天能碰到 5 次以上 1 、使用 pyenv 安装的 py2.7.18 环境执行报错 2 、将 pyenv 的 ln -s 也是报错 sh-3.2# ln -s /Users/xxx/.pyenv/versions/2.7.18/bin/python2.7 /usr/bin/python ln: /usr/bin/python: Operation not permitted

    参考: https://www.v2ex.com/t/743899

    '''python

    try: from AppKit import NSWorkspace except ImportError: print "Can't import AppKit -- maybe you're running python from brew?" print "Try running with Apple's /usr/bin/python instead." exit(1)

    from datetime import datetime from time import sleep

    last_active_name = None while True: active_app = NSWorkspace.sharedWorkspace().activeApplication() if active_app['NSApplicationName'] != last_active_name: last_active_name = active_app['NSApplicationName'] print '%s: %s [%s]' % ( datetime.now().strftime('%Y-%m-%d %H:%M:%S'), active_app['NSApplicationName'], active_app['NSApplicationPath'] ) sleep(1)

    '''

    16 条回复    2023-03-10 14:07:45 +08:00
    mbooyn
        2
    mbooyn  
    OP
       2022-12-07 09:35:46 +08:00
    @zhaoxin
    It turns out someone has written a package called AppKit that is completely distinct Mac operating system component. Here is the other AppKit:

    ----
    我好像就是要找那个 Mac 系统里面的 AppKit 🤦按照文章说的一通操作下来在 python 中导入 AppKit 模块还是提示没有
    zhaoxin
        3
    zhaoxin  
       2022-12-07 11:27:14 +08:00
    @mbooyn 英文已经说得很清楚了。那个 appkit 是第三方的,需要单独安装,虽然名字和苹果的 AppKit 相同,但是不是同一个东西。

    我没学过 python ,不过按照说明,应该就是用 pip 安装一个 appkit 的包,然后就可以了。不过如果你会 swift 的话,可以自己写一个应用,它那个应用就是每秒打印一次当前窗口的应用名,这样一但发现窗口失去焦点,就看看这个后台打印的是哪个应用的名字,就知道是哪个应用导致了这个问题了。

    所以,如果用别的语言写的话,也很简单。
    mbooyn
        4
    mbooyn  
    OP
       2022-12-07 11:42:37 +08:00
    @zhaoxin 现在在 pycharm 里面的 python 环境变量已经加上了这个第三方的 AppKit ,但是就是引用不到 😔
    swift 并不会。。。搜到教程看到介绍写程序获取的方法,但是我无从下手🤦

    [图片 1]( )
    [运行报错]( )
    zhaoxin
        5
    zhaoxin  
       2022-12-07 11:46:44 +08:00
    @mbooyn 你撞到坑了。看到你运行时的环境时 py3 ,这个脚本是 py2 的。需要转换成 py3 ,而 py3 引用 AppKit ,需要全小写才行,appkit 。用 py3 的话,后面你还需要把 print 的部分都改成 py3 的格式。
    mbooyn
        6
    mbooyn  
    OP
       2022-12-07 12:42:13 +08:00
    @zhaoxin 现在修改成了 py2 的格式,还是拿不到。



    py3 的环境我也改成小写尝试,没找到对应方法
    zhaoxin
        7
    zhaoxin  
       2022-12-07 13:32:58 +08:00   ❤️ 1
    不会 python ,我按照这个思路写了一个 swift 版的。应用支持 macOS 11 及以上。已经通过苹果验证。可以直接安装。下载:

    https://filetransfer.io/data-package/X6Xmkgqd#link
    mbooyn
        8
    mbooyn  
    OP
       2022-12-07 13:41:57 +08:00
    @zhaoxin 我去!已经下载使用,感谢大佬的工具 🐂
    vimcaw
        9
    vimcaw  
       2022-12-07 14:10:32 +08:00
    @zhaoxin 挺好的工具,非常感谢,另外要是能显示历史记录就好了。
    mbooyn
        10
    mbooyn  
    OP
       2022-12-07 16:00:27 +08:00
    @zhaoxin 哈哈,抓到了,是罗技的驱动 lghub

    zhaoxin
        11
    zhaoxin  
       2022-12-07 16:27:30 +08:00
    @mbooyn 我的这个应用在 M1 下运行不正常。一只显示动画,刷不出来硬件。所以我把它卸载了。我用的是 G304 ,把配置写到版载内存,不安装这个驱动也可以。
    mbooyn
        12
    mbooyn  
    OP
       2022-12-07 18:01:30 +08:00
    @zhaoxin 我的是 14 寸 m1 pro 13.0.1 版本,可以正常运行。我也是设置了板载内存,今天下午刚把 LGhub 卸载
    yueryuer
        13
    yueryuer  
       2023-03-10 11:38:57 +08:00
    @zhaoxin 你好,
    Current Window.app.zip 该应用在 filetransfer 上需要收费下载,请问有其他下载链接吗
    zhaoxin
        14
    zhaoxin  
       2023-03-10 12:49:07 +08:00
    @yueryuer 别急。我弄个 iCloud 的分享。
    zhaoxin
        15
    zhaoxin  
       2023-03-10 13:01:49 +08:00   ❤️ 3
    @yueryuer https://www.dropbox.com/s/d8qbu1v98ok059h/Current%20Window.app.zip?dl=0

    iCloud 不能匿名分享,上传到 dropbox 了。
    yueryuer
        16
    yueryuer  
       2023-03-10 14:07:45 +08:00   ❤️ 1
    @zhaoxin 非常感谢,通过您的工具已经捕捉到是 iShotHelper
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1627 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 16:52 · PVG 00:52 · LAX 09:52 · JFK 12:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.