Remove non used named triggers?

I have some named triggers in the list that are not used. These named triggers are removed from the configuration, but they are still shown in the list. How can I remove them?


Can you tell me what to do to remove the unexisting named triggers from the list of BTT?



Could you provide some solution to this issue?


Sorry, I don't know. Usually BTT shows all named triggers. Maybe your database somehow got corrupted or the named triggers are in a hidden preset or maybe in some subgroup?

Of course you could always reset BTT by deleting this folder: ~/Library/Application Support/BetterTouchTool

Maybe the new BTT alpha could help you. This Java Script for Automation would get you a list of all named triggers including their UUID:

let BetterTouchTool = Application('BetterTouchTool');
let allNamedTriggersJSONString = BetterTouchTool.get_triggers({trigger_id: 643});
let allTriggersJSONArray = JSON.parse(allNamedTriggersJSONString);

let allNamedTriggerNames = [];
for(let trigger of allTriggersJSONArray) {
	allNamedTriggerNames.push({uuid:trigger["BTTUUID"], name: trigger["BTTTriggerName"]});


Then you could copy all the problematic uuids and delete the corresponding named triggers with the "delete_trigger" function.

The alpha is uploading and should be available in a few minutes.

//edit: Apple's notary service is currently down, will release the alpha once it's working again

Thanks for the reply

I checked all my BTT presets before posting, and I didn't find these named triggers in any preset or subgroup.

Now I have removed the folder and after then I loaded my main preset in BTT. The named triggers are still there.

I will download the alpha when it's ready, and try the code. Thanks.

The alpha is 4.025 or I have to wait to alpha 4.026?

Do I run the Java Script for Automation in the Script Editor?

sorry the Apple signing services have been down all day yesterday. Now they seem to work again and I uploaded v4.027.

You'd run the script in script editor and select "Java Script" as source type. It will not delete anything in the first step, it will just list the triggers.

Thanks @Andreas_Hegenberg

I have downloaded alpha 4.028 and executed the javascript in script editor. I get the list of all named triggers.

I am not sure how to use the "delete_trigger" function.

As example, I want to remove this one:
"uuid":"DCD633CF-0766-42F1-98FA-89D4011A8456", "name":"Launch SK + Enter""

How I remove it?


let BetterTouchTool = Application('BetterTouchTool');

(maybe create a backup of your preset first)

Hi Andreas

I could remove the unused triggers. Now the list show the correct names. Thanks for your help!

Let me explain you what I have seen because maybe it gives you some information of a possible bug.

Few days ago I was doing 2 triggers, with 2 assigned actions for each one:
-Trigger A: Assign value 1 for variable "SK" and then run application "Sk"
-Trigger B: Assign value 2 for variable "SK" and then run application "Sk"

I did some tests, using 4 triggers (I repeated the 2 triggers with different names):
"uuid":"DCD633CF-0766-42F1-98FA-89D4011A8456", "name":"Launch SK + Enter"
"uuid":"7F482BEB-D576-486E-A1F5-D1EB862F22C9", "name":"Launch SK without Enter"
"uuid":"DE52F11A-9ED8-4467-8781-EA23E0BC5C18", "name":"SK without Enter"
"uuid":"AFF458B8-6A92-44E9-A818-CDF0FF8E0740", "name":"SK with Enter"

The bold italic triggers were the ones that I removed in BTT, keeping only the last two. But then I relized that the four triggers were shown in the list, I started this thread.

Today I have removed the bold italic triggers using the java script code, and this is what happened:

After removing them, the action <run application Sk"> disappeared from the triggers "SK without Enter" and "SK with Enter".

I have added again these actions to both triggers and everything is right now.

It seems that the actions <Run app "SK"> of the exisiting triggers were saved in the unexisting triggers.

Hope it's clear and it can be a helpful information.