GoldenChaos-BTT Support and Feedback Thread

3.065-4 works very nicely so far, except the CMD modifier seems broken for me...

Write about problems with Korean language. 1. If you press and hold the touch bar weather tab, English and Korean are mixed in the weekly weather screen.
2. The alarm badge is not displayed at all.
All settings are checked, but no notification badge, such as a sparky message, is displayed.
3. If you press the touch bar air pot button, you can see the connection button on the upper part of the MacBook, but the air pot can not be connected.
Mac os Mojave 10.14.5
The MacBook system preferences and language are in Korean. Nevertheless, it is so good to use. I hope this language problem can be resolved quickly.

Notification badges seem to no longer work for me in the experimental releases no matter what is toggled "on" in settings or marked as visible in the BTT settings... :confused:

They return the following:

Using the below command in your calendar request...

-ec , --excludeCals value Excludes items from specific calendars from the output. value must be a comma-separated list of calendar titles or UIDs (you can see UIDs (unique identifiers) for your calendars by using the ’calendars’ command parameter.) The -ic and -ec parameters will be handled in the order of first include, then exclude.

Example: You can also use the -ic to only include calendar name. In my preset I pull from 3 sports calendars independently by only including those calendar names in the code/script.

do shell script "/usr/local/bin/icalBuddy -ic \"Cubs Schedule\"

More from: http://hasseg.org/icalBuddy/man.html

1 Like

Hi, long time user of both BTT and GC.
Thank you so much for this wonderful extension, it makes the whole touchbar much more useful!

I just wanted to share a couple of things I just added to my own settings for both the TrueTone and NightShift buttons to trigger the color change (which is often very useful for me). I found the following scripts online:

Status check for TrueTone:

use prefs : application "System Preferences"

property prefsUI : a reference to process "System Preferences"
property _W : a reference to windows of prefsUI
property _TT : a reference to checkbox "True Tone" of tab group 1 of _W

property pane : "com.apple.preference.displays"
property anchor : "displaysDisplayTab"
property tab : anchor (my anchor) of pane id (my pane)

set TrueTone to null
if tab ≠ (reveal tab) then return null

tell _TT to if exists then set TrueTone to its value as boolean

quit prefs

TrueTone

For NightShift I actually had to change the performed action because I wasn't sure of how to get the status from the system. I could instead change the action to activate NightShift directly from the preference pane and then use the same script I used for TrueTone for the status check.

Performed action for NightShift:

tell application "System Preferences" to reveal the ¬
	anchor named "displaysNightShiftTab" of ¬
	pane id "com.apple.preference.displays"

tell application "System Events" to tell ¬
	process "System Preferences" to tell ¬
	window 1 to tell ¬
	tab group 1 to tell ¬
	checkbox "Turn On Until Tomorrow" to ¬
	perform action "AXPress"

quit application "System Preferences"

Status check for NightShift:

use sys : application "System Events"
use prefs : application "System Preferences"

property prefsUI : a reference to process "System Preferences"
property _W : a reference to windows of prefsUI
property _NS : a reference to checkbox "Turn On Until Tomorrow" of tab group 1 of _W

property pane : "com.apple.preference.displays"
property anchor : "displaysNightShiftTab"
property tab : anchor (my anchor) of pane id (my pane)

set NightShift to null
if tab ≠ (reveal tab) then return null

tell _NS to if exists then set NightShift to its value as boolean

quit prefs

NightShift

Hope this is useful

@GoldenChaos
Some of my users are having issues with my notification/dock badges, beware!

Hi everyone! Sorry for the short absence; I was traveling to LA for E3 2019! Then I collapsed for another week from exhaustion, haha. Will be doing some catchup and development work over the next week.

I've been thinking, and I may also declare a new stable version sooner than I wanted to, since the current "stable" version really doesn't earn that title anymore.

@ric.cioffi VERY useful! I will take a look at this and see if it solves my issue :slight_smile:

@yuuiko this hasn't been happening the last two weeks for me. However, I didn't literally copy-paste your badges, so maybe take a look at mine and see what's different? Here's my badge code:

tell application "BetterTouchTool" to set dndEnabled to get_number_variable "SystemDoNotDisturbState"

if dndEnabled is 0 then
	tell application "BetterTouchTool"
		set badgeNumber to get_dock_badge_for "Calendar" update_interval 5
		set handoffDevice to get_dock_badge_for "Calendar-handoff" update_interval 5
	end tell
	if badgeNumber is not missing value and handoffDevice is missing value then
		if application "Calendar" is running then
			return badgeNumber
        else 
            return ""
		end if
	else if handoffDevice is not missing value then
		if handoffDevice contains "iPhone" then
			return "iPhone"
		else if handoffDevice contains "iPad" then
			return "iPad"
		else if handoffDevice contains "watch" then
			return "Watch"
		else if handoffDevice contains "Mac" then
			return "Mac"
		end if
	else
		return ""
	end if
else
	return ""
end if

And for the click event:

if application "Calendar" is running then
	tell application "System Events"
		tell process "Dock"
			try
				click UI element "Calendar" of list 1
			end try
		end tell
	end tell
else
	tell application "Calendar" to activate
end if

@yuuiko
Here are mine (don't remember how yours were exactly, but these work without any trouble here on my machine).

tell application "BetterTouchTool" to set LCL_DNDStatus to get_string_variable "DNDStatus"
if LCL_DNDStatus is "OFF" then
	tell application "BetterTouchTool"
		set badgeNumber to get_dock_badge_for "APP_HERE" update_interval 3
		set handoffDevice to get_dock_badge_for "APP_HERE-handoff" update_interval 3
	end tell
	if badgeNumber is not missing value and handoffDevice is missing value then
		if application "APP_HERE" is running then
			return "Notification"
		else
			return "Notification"
		end if
	else if handoffDevice is not missing value then
		if handoffDevice contains "iPhone" then
			return "{\"text\":\"iPhone\", \"icon_data\": \"iPHONE_ICON_HERE\"}"
		else if handoffDevice contains "iPad" then
			return "{\"text\":\"iPad\", \"icon_data\": \"iPAD_ICON_HERE\"}"
		else if handoffDevice contains "watch" then
			return "{\"text\":\"watch\", \"icon_data\": \"watch_ICON_HERE\"}"
		end if
	else
		return "No badge"
	end if
else
	return "LCL_DNDStatus is ON"
end if

And the executive action

tell application "System Events"
	tell process "Dock"
		try
			click UI element "APP_HERE" of list 1
		end try
	end tell
end tell
delay 1
tell application "System Events" to tell process "APP_HERE"
	set value of attribute "AXFullScreen" of window 1 to true
end tell

Hope this helps!

Edit: just remembered that you two get the actual count of notifications, where I'm glad for now to just display an icon. I'm just gonna leave this here though in case it helps nevertheless :man_shrugging:t2:

@yuuiko the problem was caused because they disabled BTT scripting as far as I know. Your notification badges seem to be fine.

1 Like

Just upgraded to the latest experimental and have noticed that the GUI Settings panel no longer works. Any idea what might be going on? I am only able to manually enable/disable functions by going through the BTT configurations as opposed to the GC preferences screen.

Additionally, the expand/collapse menu bar buttons no longer have any functionality.

One problem with my current approach is that, to check the status of both NS and TT, my scripts open (and then quit) system preferences in the background. This means that pressing the modifier key while system preferences are already open will quit them. I think this should be easily fixed by adding an initial conditional check to see if preferences are open and then, if they are not, running the script but I haven't had time to add it yet. Overall it's still a suboptimal solution, but at least a temporary fix.

I may have to accept that, at the moment, there doesn’t seem to be a way around this. Perhaps eventually @Andreas_Hegenberg could add a way to detect it? I know this has come up before but I forget if it was stated that there isn’t a good way to do it natively.

This just means you didn’t fully delete your previous GC version :slight_smile: delete all GC instances you have, then install the one you want. The settings menu will now work :+1:

Thanks! This did indeed fix the issue - although now I'm having a bit of another issue with the latest experimental. I find that some of my "menu bar" settings will sometimes revert to default after a period of time, a sleep/wake cycle, or BTT restart. For example, I'll have selected "never" for Spotlight and Notification Center; however, they will re-appear even though the setting remains selected as "never" within the settings GUI. This also happens with the following:

  • Brightness Up (turned off, will reappear)
  • Brightness Down (turned off, will reappear)
  • Volume Up (turned off, will reappear)
  • Volume Down (turned off, will reappear)
  • Volume Mute (turned on, will disappear)
  • Connect to AirPods (turned on, will disappear)
  • 1Password (turned on, will disappear)

The only way that I've found to fix this issue is to go into the GUI and toggle all of these settings again. Any thoughts?

Thanks!

Alright, I should probably also mention that I had to fiddle around with the periodicity of the scripts. I believe it's because of the whole open syspref, close syspref, but when I had them set up to refresh every two seconds things were not working properly. Right now I have the TT check every 5 seconds and the NS check every 7 seconds (the rationale being that I always have TT enabled and almost never NS)

Weather widget seems broken for me, in both the "set location automatically" (location services for BTT enabled in Privacy) and manually entering the coordinates. I'm in Vancouver but it shows 10°C when the low of late has been 16°C! Any ideas as to what's going on / how to fix?

Hey guys! I just wanted to apologize for the long gap between versions - I was redirected temporarily to working on an update for zeldauniverse.net (my Legend of Zelda fan community), and that took up some of my time. I'm now back to it once again!

I will definitely be updating the main thread in the near future, because the current "stable" version is now out of date and I don't recommend that people install it. It's super likely that whatever version I release next will be christened "stable". I've been putting way too much weight on the label of "stable", when in fact the experimental channel has been more stable than the stable channel for some time now.

@wiffle This is more @Andreas_Hegenberg's expertise, but before he chimes in, what version of BTT are you using? Have newer versions since fixed the issue?

EDIT2: My weather icons are now upside down for some reason? :smiley:

Is anyone else experiencing problems with the weather widget being unable to grab data? It's been working perfectly for months but yesterday started failing to fetch data. All I see is 0 degrees or a message that says something to the effect of "unable to get location."

I do have Location Helper installed and added to the privacy tab under security, ditto for Better Touch Tool itself. I haven't changed anything in my formerly working setup. I have however traveled to a new location for work, but I would be surprised if that actually is the problem.

Even manually entering lat/long codes doesn't fix it.

1 Like

It's been spotty for me, but a BTT restart usually fixes it. I have a feeling @Andreas_Hegenberg is on top of it :slight_smile:

I am using the latest experimental version (3.065-4) but for me the Dock Badges are not showing up. Also not on the stable version. I can't understand why.