FeelUOwn
FeelUOwn copied to clipboard
较新的 macOS 下按 capslock 键会导致程序 crash
较新的 macOS 下按 capslock 键会导致程序 crash,定位到是这一行会出现 https://github.com/feeluown/FeelUOwn/blob/05d71d2407d629152a05925f501b73446713590d/feeluown/global_hotkey_mac.py#L35
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff20453e7e mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff204541f0 mach_msg + 60
2 com.apple.CoreFoundation 0x00007fff20580bf7 __CFRunLoopServiceMachPort + 316
3 com.apple.CoreFoundation 0x00007fff2057f2ca __CFRunLoopRun + 1315
4 com.apple.CoreFoundation 0x00007fff2057e6ce CFRunLoopRunSpecific + 563
5 com.apple.HIToolbox 0x00007fff2884cd36 -[IMKInputSessionXPCInvocation invocationAwaitXPCReply] + 470
6 com.apple.HIToolbox 0x00007fff28a49a6b -[IMKInputSession _eventIsOn:completionHandler:] + 1938
7 com.apple.HIToolbox 0x00007fff28a3dfce -[IMKInputSession handleEvent:completionHandler:] + 794
8 com.apple.HIToolbox 0x00007fff289fa385 IMKInputSessionProcessEventRefWithCompletionHandler + 114
9 com.apple.HIToolbox 0x00007fff289f9ac7 InputMethodInstanceProcessEventRef_WithCompletionHandler + 122
10 com.apple.HIToolbox 0x00007fff289eae57 __TSMEventToInputMethod_WithCompletionHandler_block_invoke + 117
11 com.apple.HIToolbox 0x00007fff289ee371 __SendTSMDocumentLockEvent_WithCompletionHandler_block_invoke + 95
12 com.apple.HIToolbox 0x00007fff28851396 invocation function for block in DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 110
13 com.apple.AppKit 0x00007fff22fc8c91 -[NSTextInputContext handleTSMEvent:completionHandler:] + 1452
14 com.apple.AppKit 0x00007fff22fc8669 _NSTSMEventHandler + 299
15 com.apple.HIToolbox 0x00007fff287df400 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1431
16 com.apple.HIToolbox 0x00007fff287de7d9 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 329
17 com.apple.HIToolbox 0x00007fff287de682 SendEventToEventTargetWithOptions + 45
18 com.apple.HIToolbox 0x00007fff2883b769 SendTSMEvent_WithCompletionHandler + 381
19 com.apple.HIToolbox 0x00007fff289ead9b TrySendLockEvent_BeforeEventToInputMethod_WithContinuationHandler + 315
20 com.apple.HIToolbox 0x00007fff289eac26 TSMEventToInputMethod_WithCompletionHandler + 147
21 com.apple.HIToolbox 0x00007fff289eab73 TSMEventToKeyboardInputMethod_WithCompletionHandler + 120
22 com.apple.HIToolbox 0x00007fff2882968a TryEventToKeyboardInputMethod_WithContinuationHandler + 235
23 com.apple.HIToolbox 0x00007fff28829546 __TSMProcessRawKeyEventWithOptionsAndCompletionHandler_block_invoke_4.30 + 141
24 com.apple.HIToolbox 0x00007fff2882945c __TSMProcessRawKeyEventWithOptionsAndCompletionHandler_block_invoke_3.29 + 137
25 com.apple.HIToolbox 0x00007fff2882937a __TSMProcessRawKeyEventWithOptionsAndCompletionHandler_block_invoke_2.28 + 137
26 com.apple.HIToolbox 0x00007fff28829294 __TSMProcessRawKeyEventWithOptionsAndCompletionHandler_block_invoke.27 + 137
27 com.apple.HIToolbox 0x00007fff28828a5e TSMProcessRawKeyEventWithOptionsAndCompletionHandler + 2000
28 com.apple.HIToolbox 0x00007fff288281e8 TSMProcessRawKeyEvent + 297
29 com.apple.AppKit 0x00007fff22f26d8d -[NSApplication(NSEvent) sendEvent:] + 2921
30 libqcocoa.dylib 0x000000012144548a 0x121406000 + 259210
31 com.apple.AppKit 0x00007fff231fef1e -[NSApplication _handleEvent:] + 65
32 com.apple.AppKit 0x00007fff22d8f6af -[NSApplication run] + 623
33 libqcocoa.dylib 0x0000000121441d74 0x121406000 + 245108
34 org.qt-project.QtCore 0x000000010bcb76b7 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 471
35 org.qt-project.QtCore 0x000000010bcbb852 QCoreApplication::exec() + 130
36 QtWidgets.abi3.so 0x0000000110be50d0 meth_QApplication_exec_(_object*, _object*) + 80
目前的 workaround 是使用 fuo --no-window
或者 fuo --no-server
模式来绕过。
macOS Big Sur 11.2.3 可稳定复现。