1- from typing import Dict , Optional
2- from AppKit import NSObject , NSWorkspace , NSRunningApplication , NSWorkspaceDidActivateApplicationNotification
1+ from threading import Thread
2+ from typing import Dict , Optional , NoReturn
3+ from AppKit import NSObject , NSNotification , NSWorkspace , NSRunningApplication , NSWorkspaceDidActivateApplicationNotification
34from Quartz import (
45 CGWindowListCopyWindowInfo ,
56 kCGWindowListOptionOnScreenOnly ,
@@ -13,16 +14,18 @@ class Observer(NSObject):
1314
1415 def get_front_app (self ) -> NSRunningApplication :
1516 return self .app
16- def set_front_app_ (self ) -> NSRunningApplication :
17+
18+ def handle_ (self , noti : NSNotification ) -> None :
19+ self ._set_front_app ()
20+ def _set_front_app (self ) -> None :
1721 self .app = NSWorkspace .sharedWorkspace ().frontmostApplication ()
1822
1923observer = Observer .new ()
2024NSWorkspace .sharedWorkspace ().notificationCenter ().addObserver_selector_name_object_ (
21- observer ,
22- "set_front_app:" ,
23- NSWorkspaceDidActivateApplicationNotification ,
24- None )
25-
25+ observer ,
26+ "handle:" ,
27+ NSWorkspaceDidActivateApplicationNotification ,
28+ None )
2629AppHelper .runConsoleEventLoop ()
2730
2831def get_current_app () -> NSRunningApplication :
@@ -41,7 +44,6 @@ def get_app_title(app: NSRunningApplication) -> str:
4144 for window in windowList :
4245 lookupPid = window ['kCGWindowOwnerPID' ]
4346 if (lookupPid == pid ):
44- print (window )
4547 return window .get ('kCGWindowName' , 'Non-detected window title' )
4648
4749 return "Couldn't find title by pid"
0 commit comments