GoldenChaos-BTT Support and Feedback Thread

There's about 147 Mission Control keyboard shortcuts in this one. :smiley:

What the... welp. Hold on, time to make a new release :stuck_out_tongue:

Ha. ETA?! I need my daily BTT fix!

I dunno like a few minutes? XD I gotta check to make sure this one doesn't have any crap in it :stuck_out_tongue:

1 Like

I do wish there was an easier way to upgrade things. But, it's not too bad. If it was easier, it would probably be hard to keep customizations I suppose.

HUM. Or at least if we could group or sort by presets in the main settings area? Or have each group have a different color? I'm often pulling in just a few of the buttons/widgets to replace my old ones.

Edited to add: CRAP, there are colors!

The weather widget for Option and Command has a different rainy cloud icon. HUGE DEAL BREAKER.

1 Like

Technically they all have the same icon, but there's a bug where the icons for weather widgets will seemingly randomly be reset on BTT restart. Not sure if it's fixed in 2.559 but I'll never find out now :stuck_out_tongue: @Andreas_Hegenberg

You win!... Happy to say I was on the same path of defining "inbox" to avoid the folderIDs issue but your script is far more efficient than mine.

Replaced in my Outlook script and works a treat. Awesome job!

Now...about some Firefox love...:thinking::wink::grin:

1 Like

It's perfect!

Wondering if there's a way to use this and combine with another script I started working on:

if application "Microsoft Outlook" is running then
	try
		tell application "Microsoft Outlook"
			set theMessage to first item of (messages where its is read is not true)
			set theSent to (sender of theMessage)
			set theAuthor to (name of theSent)
		end tell
		return "New mail: " & theAuthor
	on error
		return ""
	end try
else
	return ""
end if

Currently it's unknown where it's actually get the new mail from. I attempted

set theMessage to first item of ((messages where its is read is not true) of every mail folder whose name is "Inbox")

But didn't work out.

But was man meant to read email on a Touch Bar, are we flying too close to the sun here :thinking::thinking::thinking::thinking::thinking:

(yeah I'll see what I can cook up; I absolutely hate how nice Outlook's scripting support is)

2 Likes

No probably not haha, just something I was working on while we sorted the unread count. Thought it'd be away of telling me I had new mail if I noticed 'theAuthor' changed.

Could be modified to make an expanded unread mail widget with previews of each unread mail item, I think. Definitely could be useful for quick triaging! I'll fiddle around after I finish fancying up the browser tabs widget some more.

1 Like

(1) Throwing this out there - how do people feel about swapping the screen brightness buttons with the volume buttons? My reasoning is this: if the volume buttons are on the left side and brightness on the right, you can then turn on the mute button when holding Option or another modifier, and it'll be right next to the other buttons without their placement changing. Like:
No modifier:


With held modifier key:
Just a thought.

(2) Question - In the emoji picker, not sure why, but the right arrow button is missing. Do I have something misconfigured? Follow up, how do I make the right side of the scrollable container fade out like some others do?

(3) Previous/Play-Pause/Next: So, why do these show when neither iTunes, Spotify, nor VLC are running? The AppleScript should be returning null when none of the 3 are running, so why do the buttons display? Is there anyway to hide them when none are running?

(4) Weather widget - I needed to set the Icon Text Offset to 4 in order for the temperature to be vertically centered. With the 0, it was too low. Also, how does everyone feel about maybe making the default be "show current" vs. "show today's" for the main weather widget (not the forecasts)? Love the new icons btw!

(5) The resize window buttons that are the "inside" ones (i.e., not using the rounded corners) - I changed the extra padding on the ones that were 6 to -8 to make them a consistent size.

(6) Weather widget - there's {temperatureLow} but no {temperatureHigh}. Oversight I assume, lol.

@GoldenChaos I'm after more toggles! I've got to have some visual feedback for if stuff is on or off. :smiley: . I've got most of my frequent toggles always displayed. This bit seems to work well for a DND toggle jumping from a button to a widget:

do shell script "/usr/libexec/PlistBuddy -c 'Print doNotDisturb' ~/Library/Preferences/ByHost/com.apple.notificationcenterui.LOOOOONG.plist"

Though, I'm not sure how to sub in the LOOOOONG bit to work universally. (Though it seems like the BTT DND toggle isn't actually working? It's just popping open the notification area without changing anything in Mojave PB)

DND seems a bit different that some of the others, like TrueTone, Dark Mode, etc... Do you know how to query if a certain system pref is checked/unchecked?

Here's another request for when the programmers get bored - "Script: Connect to BeatsX".

@peripatew Huh, good catch with the DND bug. I'll work on some better toggles as scripts with some color highlighting if they're enabled. Also, the below is probably interesting to you so tagging you lol


@chrisparker Actually been working on this and a few other BT scripts this morning. I was running into limitations with BT scripts provided in this thread so far, so I decided fuck it I'm writing one from scratch.

The BT scripts floating around right now parse the entire output of the Bluetooth system info pane. This leads to a lot of false positives as the list is not delineated properly. But sorting through that mess is a pain. Luckily, I found a much easier, more accurate, more direct way.

This script uses the IOBluetooth framework to get a two lists: one with just the names of currently paired devices and one that says whether or not they are currently connected as a boolean value. The lists are merged so you get entries like "Jason's AirPods, 1" and "Beats Studio3 Wireless, 0". From there, I check each item in the merged list to match the desired device name with its connected value and return true if the item in question is connected.

Example to detect if AirPods are connected:

use framework "Foundation"
use framework "IOBluetooth"
use scripting additions

set pairedNames to ((current application's IOBluetoothDevice's pairedDevices())'s valueForKey:"nameOrAddress") as list
set connectedValue to ((current application's IOBluetoothDevice's pairedDevices())'s valueForKey:"connected") as list
set btInfo to {}

set i to 0
repeat with i from 1 to count pairedNames
	set btInfo to btInfo & (item i of pairedNames & ", " & item i of connectedValue) as list
end repeat

set i to 0
set deviceConnected to false
repeat with i from 1 to count btInfo
	if item i of btInfo contains "AirPods" and item i of btInfo contains ", 1" then
		set deviceConnected to true
	end if
end repeat

return deviceConnected

I've updated the AirPods script with this detection and also added disconnecting to the button action. I also made a Beats widget, and am working on a generic Headphones widget and a Gamepad connector :slight_smile:

1 Like

Wow. Just wow! Great work!

1 Like
  1. Oh man, that is interesting... maybe. Gonna sit on this and see if I still like the idea tomorrow. It makes sense but it also might just kill my muscle memory, haha.

  2. I wish I could change the icon or remove it, but it's part of the built-in emoji widget. That button is actually for taking you back to the beginning of the emoji list. It's also another limitation of BTT that stops the shadow from appearing, since the emoji widget can't be placed in the scrollable container.

  3. They show for a whole bunch of apps. Make sure you're not running any media players at all, and they should disappear.

  4. The text offset is actually 5 by default, but there is an import bug that frequently resets the text offset value to 0.

  5. Whatever floats your boat :stuck_out_tongue: I made them different sizes to emphasize more commonly used options.

  6. Probably, I already bugged @Andreas_Hegenberg about it :stuck_out_tongue:

You can sue {temp} or {temperature} to get the temperatureHigh.
4. should work correctly with the next alpha.

1 Like

Just tried to script Firefox, and apparently it has no scripting support whatsoever. I can't even UI script it, none of the UI is exposed to system accessibility. smh, Firefox

1 Like