SHIFT SHIFT hungs bettertouchtool in later versions

This combination worked flawlessly on earlier versions like
BetterTouchTool 5.295 (March, 31, 2025)

Now on
BetterTouchTool 5.562 (August, 24, 2025)

there 2 issues, 1 big 1 small

  1. big
    on some occasions the bettertouchtool process becomes unresponding upon doing SHIFT SHIFT and activity monitor kill is required

  2. small
    if I have some time to trigger the SHIFT SHIFT then this


    SHIFT action is triggered first.

for your second one best activate the order relevant checkbox and possibly increase the value you set for „trigger only if no further keyboard input is recognized for“ a bit

I haven’t encountered issues with my shift shift key sequence, what kind of action do you have assigned to it?

Also make sure to update to the latest alpha, I improved some key sequence related things yesterday

Thanks for the quick reply


The javasript changes the english letters to greek letters

I did both your suggestions, will update if I reproduce the hunging again.

Thank you

ah there has been a fix for a potential JS hanging issue recently, hopefully that will resolve your issue

image
unfortunately it happened again the hunging

Is there a way to downgrade to a lower version?

yes, they are all available here: Index of /releases

However first export your preset

Also would be great if you could share the problematic trigger so I can try to reproduce the issue

I can reproduce the issue with the script you posted here:

I'll check what's wrong.

1 Like
async (clipboardContentString) => {
    const alphabetEN = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    const alphabetGR = "αβψδεφγηιξκλμνοπ;ρστθωςχυζΑΒΨΔΕΦΓΗΙΞΚΛΜΝΟΠ;ΡΣΤΘΩΣΧΥΖ";

    // Determine if the first character is in the English alphabet
    const firstIsEnglish = alphabetEN.indexOf(clipboardContentString[0]) !== -1;

    let newMessage = "";

    if (firstIsEnglish) {
        // Switch layout to Greek
        await trigger_named_async_without_response({
            trigger_name: 'changeInputGR',
            wait_for_reply: false
        });

        // Convert only English letters to Greek
        for (const char of clipboardContentString) {
            const idx = alphabetEN.indexOf(char);
            if (idx !== -1) {
                // If char is English, map it to the Greek equivalent
                newMessage += alphabetGR[idx];
            } else {
                // Keep anything else (already Greek or punctuation) as is
                newMessage += char;
            }
        }
    } else {
        // Switch layout to English
        await trigger_named_async_without_response({
            trigger_name: 'changeInputEN',
            wait_for_reply: false
        });

        // Convert only Greek letters to English
        for (const char of clipboardContentString) {
            const idx = alphabetGR.indexOf(char);
            if (idx !== -1) {
                // If char is Greek, map it to the English equivalent
                newMessage += alphabetEN[idx];
            } else {
                // Keep anything else (already English or punctuation) as is
                newMessage += char;
            }
        }
    }

    return newMessage;
};

this is the latest code

This should be resolved in 5.598! (uploading now)

(was related to a deadlock within the trigger_named_async_without_response call)

1 Like

After the latest update to 5.670 this javascript does not work as before

Is there a way to downgrade until you check it ?

sure, you can always downgrade to your previous version: All current and previous BetterTouchTool releases for download (best export your current preset before doing that)

However your java script seems to work fine here (v5.684)