Condition "list of running processes" in Conditional Activation Groups does not work with progressive web apps

I have created a progressive web app for Google Meet by navigating to Google Meet in Safari and then using the option File > Add to Dock.

I want to create a Conditional Activation Group that activates whenever my Google Meet app is running, regardless of being the currently active app or not.

My goal is to create a button on my Stream Deck that mutes my microphone even when I'm currently working with another app than Google Meet. The button should only show on the Stream Deck when Google Meet is actually running.

I've tried creating a CAG with the condition runningProcesses CONTAINS "Google Meet", but it does not fire, as you can see in the screenshot attached.

I've used the runningProcess condition for several "normal" macOS apps without a problem.


**Affected input device (e.g. MacBook Trackpad, Magic Mouse/Trackpad, Touch Bar, etc.):

n/a


Screenshots


Device information:

  • Type of Mac: MacBook Pro 16", 2021 / Apple M1 Pro / 32 GB
  • macOS version: Sonoma 14.5
  • BetterTouchTool version: 4.583

Additional information (e.g. crash logs, related issues, etc.):

n/a

Can you check whether you see the Google Meet process in activity monitor?

Yes, it's running

It's also recognised by BTT as one of the running apps

I can add a Stream Deck button that shows up when Meet is the active window without a problem. But I want the button also to show on the SD when Meet is running, but another app is the active window.

yes I understand, the problem is this process list is very hard to get and the names might be slightly different than the ones shown elsewhere. I assume Google is doing something interesting there...

I'll install the app later and see!

Ah, can you try running this Apple Script in Script Editor and see what the output is?

tell application "BetterTouchTool" to get_string_variable "runningProcesses"

I think it's not Google's fault, it's the progressive web apps in general.
You should be able to reproduce the issue like this:

  • Go to https://www.example.com/ with Safari
  • Use the menu option File > Add to Dock… (Ablage > Zum Dock hinzufügen…)
  • Close Safari
  • Open the "Example Domain" app from the dock
  • Try to create a conditional activatiion group in BTT that fires when Example Domain is in list of running processes

The "Add to Dock" feature with Safari to create progressive web apps was introduced with Sonoma:

Previously, you could only create PWAs with Chrome. Conditional Activation Groups in BTT ignore Chrome-PWAs, as well, so it's not Safari-specific.

"fairplaydeviceidentityd,mdworker,IOUserBluetoothSerialDriver,com.apple.Safari.SandboxBroker,installd,iconservicesd,autofsd,CEPHtmlEngine Helper (Renderer),RemoteManagementAgent,com.apple.FaceTime.FTConversationService,csnameddatad,diskarbitrationd,com.apple.quicklook.ThumbnailsAgent,knowledge-agent,icdd,corekdld,neagent,fileproviderd,mds_stores,nsurlsessiond,ShareSheetUI,siriactionsd,timed,SubmitDiagInfo,chrome_crashpad_handler,gamecontrolleragentd,DiskUnmountWatcher,triald_system,systemsoundserverd,webpushd,configd,keychainsharingmessagingd,UARPUpdaterServiceUSBPD,CursorUIViewService,PasswordBreachAgent,AppleCredentialManagerDaemon,mapssyncd,appleh13camerad,contextstored,filecoordinationd,media-indexer,apfsd,loginwindow,IOMFB_bics_daemon,BTTRelaunch,backgroundassets.user,ptpcamerad,EAUpdaterService,PerfPowerServices,containermanagerd,nehelper,logioptionsplus,symptomsd,synergy-core,ContainerMetadataExtractor,sociallayerd,searchpartyuseragent,SafariBookmarksSyncAgent,secd,metrickitd,AIRobin,ContinuityCaptureAgent,ImageIOXPCService,backupd-helper,secinitd,CharacterPalette,StandaloneUpdaterDaemon,spindump_agent,Dock,MTLCompilerService,synergy-tray,maild,ArchiveService,knowledgeconstructiond,cdpd,se_agent,Google Drive Helper (GPU),com.apple.hiservices-xpcservice,AirPlayXPCHelper,storekitagent,appleeventsd,keybagd,smd,translationd,DFSFileProviderExtension,Web App,parentalcontrolsd,AppleSpell,proactiveeventtrackerd,com.apple.appkit.xpc.openAndSavePanelService,AudioComponentRegistrar,eapolclient,ANECompilerService,Google Drive Helper (Renderer),askpermissiond,AccountSubscriber,Spotlight,Adobe Crash Processor,findmylocateagent,iconservicesagent,AssetCacheLocatorService,sharingd,tccd,geodMachServiceBridge,ContextStoreAgent,SidecarRelay,ProtectedCloudKeySyncing,mdsync,VDCAssistant,APFSUserAgent,webprivacyd,com.apple.siri.embeddedspeech,Keychain Circle Notification,jetbrains-toolbox,dmd,callservicesd,fontd,contentlinkingd,WirelessRadioManagerd,microstackshot,awdd,softwareupdated,UVCAssistant,com.docker.vmnetd,fseventsd,CrashReporterSupportHelper,assistantd,WallpaperAgent,UARPUpdaterServiceDisplay,CEPHtmlEngine Helper,assistant_cdmd,com.adobe.ARMDC.SMJobBlessHelper,ACCFinderSync,suhelperd,figma_agent,AppleMobileDeviceHelper,searchpartyd,AirPlayUIAgent,Creative Cloud UI Helper,hubflagd,Slack,securityd_system,ThumbnailExtension_macOS,devicecheckd,parsecd,Script Editor,UsageTrackingAgent,cloudd,WallpaperImageExtension,ReportCrash,syslogd,accessoryupdaterd,logioptionsplus Helper,seld,oahd,diagnosticextensionsd,pbs,keyboardservicesd,logioptionsplus_updater,dprivacyd,powerd,com.apple.AppleUserHIDDrivers,online-auth-agent,PodcastContentService,com.apple.audio.SandboxHelper,Notion Helper (Renderer),workflowd,com.apple.CloudDocs.iCloudDriveFileProvider,trustd,AppStoreService,CVMServer,pkd,CMFSyncAgent,Keyboard Maestro Engine,StatusKitAgent,ASPCarryLog,universalaccessd,dasd,ANEStorageMaintainer,BetterTouchTool,GlobalProtect,Google Chrome Helper,crashpad_handler,colorsync.displayservices,endpointsecurityd,ScopedBookmarkAgent,donotdisturbd,CommCenter,mdbulkimport,MIDIServer,aneuserd,triald,osanalyticshelper,businessservicesd,bash,reversetemplated,containermanagerd_system,akd,AMPDevicesAgent,QuickLookUIService,Core Sync,chronod,hubd,com.apple.CodeSigningHelper,accountsd,sleep,XProtectPluginService,CallHistoryPluginHelper,dataaccessd,sirittsd,logd_helper,spindump,recoveryos_lockout_service,com.apple.Safari.SafeBrowsing.Service,sysextd,biomed,AdobeIPCBroker,com.apple.geod,SetStoreUpdateService,XprotectService,ssh-agent,corespotlightd,UARPUpdaterServiceLegacyAudio,adprivacyd,CredentialProviderExtensionHelper,Shortcuts Events,UniversalControl,Creative Cloud UI Helper (GPU),XProtectBridgeService,com.kairos.awdltool.xpc,PAH_Extension,UserEventAgent,opendirectoryd,com.apple.WebKit.Networking,CallHistorySyncHelper,diagnostics_agent,Notion,launchd,Adobe Illustrator,MDRemoteServiceSupport,deleted,AccessibilityVisualsAgent,ospredictiond,photolibraryd,WiFiVelocityAgent,securityd_service,storedownloadd,sysdiagnosed,storagekitd,promotedcontentd,com.adobe.acc.installer.v2,axassetsd,nsattributedstringagent,AXVisualSupportAgent,extensionkitservice,swcd,SidecarDisplayAgent,mediaremoteagent,mlhostd,gamepolicyd,ctkd,app_mode_loader,routined,findmydeviced,WindowServer,com.apple.Safari.History,USBAgent,imagent,Creative Cloud,com.apple.CharacterPicker.FileService,countryd,wifivelocityd,KonaSynthesizer,symptomsd-diag,coreautha,assistd,BackgroundTaskManagementAgent,GameControllerConfigService,TextInputMenuAgent,mscamerad-xpc,TextInputSwitcher,useractivityd,com.apple.Safari.SearchHelper,studentd,followupd,package_script_service,mobiletimerd,mobileactivationd,com.apple.WebKit.WebContent,watchdogd,PowerChime,amsengagementd,AMPDeviceDiscoveryAgent,aned,intelligentroutingd,AirDrop,com.apple.AmbientDisplayAgent,fontworker,dirhelper,ciphermld,QuickLookSatellite,CEPHtmlEngine Helper (GPU),mlruntimed,misagent,UIKitSystem,mbuseragent,universalAccessAuthWarn,sharedfilelistd,identityservicesd,UARPUpdaterServiceHID,revisiond,notifyd,SafariLaunchAgent,EscrowSecurityAlert,mdwrite,WorldClockWidget,captiveagent,DataDetectorsSourceAccess,Creative Cloud UI Helper (Renderer),WiFiAgent,CSExattrCryptoService,mediaanalysisd,PanGPS,cameracaptured,com.apple.security.pboxd,recentsd,CoreLocationAgent,MobileDeviceUpdater,FinderSyncExtension,OSDUIHelper,TouchBarServer,RemotePairingDataVaultHelper,avatarsd,duet,homed,linkd,securityd,peopled,com.apple.CloudPhotosConfiguration,wifip2pd,IMDPersistenceAgent,SafariNotificationAgent,Activity Monitor,mmaintenanced,mDNSResponderHelper,biometrickitd,com.apple.siri-distributed-evaluation,usbd,Notion Helper (GPU),com.apple.dock.extra,coreaudiod,usbmuxd,ContextService,deleted_helper,trustevaluationagent,MTLAssetUpgraderD,logd_reporter,Google Chrome Helper (GPU),analyticsd,airportd,WindowManager,Slack Helper,audiomxd,cfprefsd,replayd,ViewBridgeAuxiliary,coreduetd,commerce,IntelligentHubAgent,fmfd,IMAutomaticHistoryDeletionAgent,sandboxd,VTEncoderXPCService,tzd,SoftwareUpdateNotificationManager,Adobe Desktop Service,Slack Helper (Renderer),com.apple.WebKit.GPU,system_installd,automountd,remotepairingd,Slack Helper (GPU),distnoted,imklaunchagent,repmgr,KernelEventAgent,aslmanager,node,fbahelperd,PowerUIAgent,logioptionsplus_agent,heard,ctkahp,rtcreportingd,logd,DPSubmissionService,StocksWidget,gamecontrollerd,Adobe Genuine Software Monitor Service,LinkedNotesUIService,corespeechd,networkserviceproxy,pboard,Google Drive,logioptionsplus Helper (GPU),ExternalQuickLookSatellite-arm64,apsd,socketfilterfw,rapportd,authd,CalendarWidgetExtension,Logi AI Prompt Builder,AppSSODaemon,BTLEServerAgent,talagent,mdworker_shared,usernoted,findmybeaconingd,audioanalyticsd,IntelligencePlatformComputeService,backupd,remotemanagementd,cloudphotod,BiomeAgent,corebrightnessd,CrashHandler,usermanagerd,WeatherWidget,tipsd,BetterTouchToolAppleScriptRunner2,amsaccountsd,proactived,BetterTouchToolAppleScriptRunner3,BetterTouchToolAppleScriptRunner4,remoted,TrustedPeersHelper,audioclocksyncd,AssetCache,com.apple.ifdreader,nearbyd,accessoryd,CEPHtmlEngine,AuthenticationServicesAgent,appleaccountd,systemstatusd,hidd,BTLEServer,com.apple.cmio.registerassistantservice,synergy-service,PerfPowerTelemetryClientRegistrationService,NotificationCenter,uninstalld,usernotificationsd,mDNSResponder,passd,itunescloudd,CBCloudUI,FollowUpUI,com.apple.tonelibraryd,CloudKeychainProxy,Google Chrome Helper (Renderer),AppSSOAgent,com.apple.photos.ImageConversionService,ManagedSettingsAgent,findmydevice-user-agent,CoreServicesUIAgent,familycircled,appstoreagent,Creative Cloud Content Manager.node,IOUIAgent,logind,PlugInLibraryService,naturallanguaged,writeconfig,mobileassetd,transparencyd,AGSService,intelligenceplatformd,BetterTouchToolAppleScriptRunner,fairplayd,Google Chrome Helper (Plugin),com.adobe.ARMDC.Communicator,systemstats,colorsyncd,periodic-wrapper,DockHelper,lsd,Notion Helper,seserviced,griddatad,sysmond,nesessionmanager,VTDecoderXPCService,nbagent,mediaremoted,com.apple.iCloudHelper,bluetoothuserd,progressd,colorsync.useragent,WiFiCloudAssetsXPCService,BetterTouchToolShellScriptRunner,com.apple.SiriTTSService.TrialProxy,photoanalysisd,lockdownmoded,USBCAccessoryUpdaterService,SystemUIServer,betaenrollmentd,UserNotificationCenter,com.apple.sbd,iCloudNotificationAgent,CFNetworkAgent,financed,avconferenced,coreauthd,eligibilityd,printtool,XProtect,idleassetsd,wifianalyticsd,SharingXPCHelper,suggestd,assistant_service,appstored,mds,AMPArtworkAgent,ScreenTimeAgent,logioptionsplus Helper (Renderer),kernelmanagerd,ndoagent,Google Chrome,Google Drive Helper,runningboardd,amfid,com.apple.accessibility.mediaaccessibilityd,netbiosd,com.apple.AccountPolicyHelper,adid,awcmd,Slack Helper (Plugin),syspolicyd,contactsdonationagent,thermalmonitord,com.apple.BKAgentService,coreservicesd,Finder,bird,Keyboard Maestro,com.apple.ColorSyncXPCAgent,nfcd,nbstated,backgroundtaskmanagementd,calaccessd,audioaccessoryd,AMPLibraryAgent,AssistCore,contactsd,launchservicesd,siriknowledged,locationd,bluetoothd,logi_crashpad_handler,syncdefaultsd,com.apple.DriverKit-IOUserDockChannelSerial,voicebankingd,ControlCenter,CategoriesService,localizationswitcherd,coresymbolicationd"

The problem seems to be that the PWAs have just a generic name "Web App". You can see this when comparing process analysis from the activity monitor.

If I use the condition runningProcesses CONTAINS "Web App", it works, but does not help me, because I have several PWAs running.

Ah I see. They share one executable.

I think I can add the list of "running apps" (what you see when clicking the plus button to add an app in BTT) and just append it to the process list. They are not really process names but should also not cause problems being in there.

That would be useful.

In the meantime, I've found a workaroud. I run this AppleScript every couple of seconds:

tell application "System Events"
	set listOfProcessNames to (displayed name of every process where background only is false)
	set isGoogleMeetRunning to false
	repeat with processName in listOfProcessNames
		if processName as string is "Google Meet" then
			set isGoogleMeetRunning to true
			exit repeat
		end if
	end repeat
end tell

tell application "BetterTouchTool"
	if isGoogleMeetRunning then
		set_string_variable "customVariable1" to "true"
	else
		set_string_variable "customVariable1" to "false"
	end if
end tell

then I can use a condition customVariable1 == "true"

1 Like