macrospect Posted March 19 Share Posted March 19 I came across instructions for creating a workflow that would allow me to create snippets that only work in specified apps (referenced in this thread and explained further in this blog post). It involves using the Snippet function in a workflow, activating the "used focused app variable" option, and naming that variable "app." The blog poster used a script to specify the apps for the "app" variable (the apps in which the snippet applies). I've pasted that script below. However, I'm having a hard time getting it to work. In particular, I cannot seem to identify the right app (or really any app--the current version doesn't work for me, either). Does anyone have any suggestions? (Fwiw, I am trying to identify the Obsidian and Ulysses applications). I am using Mac Sonoma 14.3 and Ventura 13.6.3, as well as Alfred 5.5. ObjC.import('stdlib') var map = { 'com.google.Chrome': 'Hello Chrome', 'com.microsoft.VSCode': 'Hello Code', } function run(argv) { var app = $.getenv('app') return map[app] } Link to comment
vitor Posted March 22 Share Posted March 22 You don’t need code at all, you can connect the Snippet Trigger to a Conditional Utility and have that split into different Copy to Clipboard Output. To know the bundle identifier for an app, you can first use the Identify Front App Automation Task. See the Getting Started Guide for an interactive tutorial on making a workflow. Alan He 1 Link to comment
macrospect Posted March 23 Author Share Posted March 23 Thanks! I'm pretty sure I understand the basics in the starting guide. I was confused, though, about what happens with the "Focused app variable" in the Snippet Trigger (the description of the variable as "with" the bundle id made me think I had to specify the bundle id upfront, and that wasn't working). But now I realize that I need, within the Snippet Trigger configuration, to just name the variable something and then (I think) match the variable to the specific bundle id within the Conditional Utility. So I have set up the workflow as follows: 1. A Snippet Trigger with "focused app variable" checked and named "app." 2. A three-way Conditional Utility as shown in the attached screenshot. 3. Three Copy to Clipboards, two that paste specific content into the frontmost app and a final one that pastes the snippet trigger itself (I don't want the snippet to be transformed in other apps). However, this doesn't seem to work. In Obsidian and Ulysses, typing the trigger just gives me the trigger itself (that is, the Conditional Utility is somehow bumping me into the "else" track (I've tested to be sure)). I'm pretty sure these are the bundle ids for these apps (I've used a workflow to determine them), though. Is it apparent what I'm doing wrong? Link to comment
macrospect Posted March 23 Author Share Posted March 23 Wonderful, thanks a lot, @vitor! I also switched "is equal to" to "matches regex" and then everything worked. In case anyone finds it helpful, the final Conditional Utility looks like: if {var:app} matches regex obsidian then... if {var:app} matches regex com.ulyssesapp.mac then... else... And I think actually my workflow was kicking out the wrong bundle ids after all. I used this great workflow by Alan He instead to find the right ones. I should note that this snippet trigger ends up having a slight (split-second but noticeable) lag, in case it's relevant to anyone else. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now