macOS Control Center - MCC

@EvinHarris
Tooltips only necessary if you see different content every time in my opinion. But i'm planning to add tooltips after requests. Also i'm trying to show guides to user always but it takes time to add. I added so many dialog boxes for applescripts already for 0.2 version ("Turbo Boost Switcher App not installed. Please install from ..."
or "Please add share button to finder toolbar for send with airdrop feature" and many more like this ). Just wait for 0.2 version :wink:

Battery boost feature needs these two apps

Turbo Boost Switcher App; This one disables intel turbo boost
https://www.rugarciap.com/turbo-boost-switcher-for-os-x/

gSwitch; Disables gpu switching
https://github.com/CodySchrank/gSwitch

Ok. As long as there's some way for a new user to actually figure out what the buttons do. A new user shouldn't have to spend an hour in order to figure out how to use a piece of software that consists of only buttons. Tbh I still don't know what half of the buttons do hahaha

When I have MCC enabled, when I play spotify the music gets all choppy and cuts in and out. Disabling BTT makes it go away. Ideas?

that’s weird, unless spotify is changing tracks a LOT there should be no real performance hit. (it seems to work quite well here)
But if you see issues, try to enable „don’t keep content active in background“ in the advanced webview settings of the MCC webview. (which you can find in the „named & other triggers“ section.

@EvinHarris please check first post, i added icons and added more info

@Jared_Cadogan @Andreas_Hegenberg i changed now playing feature to async for next release i will share soon after some testing. i guess that will fix that

1 Like

@yw4z

also you can fix that with changing this line in html

if (playingapp == "com.apple.iTunes" || playingapp == "com.spotify.client")
to this
if (playingapp == "com.apple.iTunes" || playingapp == "com.spotify.client" || playingapp == "com.apple.Music")

let me know if its working. i will add this for next release

I've been messing around with this and it looks like if you also add com.apple.quicklook.QuickLookUIService here it shows the title + artist when you preview songs in finder.

@Random_User btt now playing has a bug at the moment. i change that code when that fixed. It will support all apps that btt supports without giving app names. But i will add quicklook support for next release :wink:

1 Like

I think that should already be fixed, are you still seeing a problem?

Im on 3.332 (1530) its still same on this version, cant test on latest atm

I click update then i saw my btt licence ended :smiley: I have to wait few more days for refreshing with new one.

drop me a quick mail to andreas@folivora.ai and I’ll send a license to you :wink:

2 Likes

@Andreas_Hegenberg thank you so much :star_struck: appreciated

updated first post with 0.2 release

Changelog
  • Wrote an applescript for raise currently playing app, working much better than beardedspice, it can raise audio playing tab in safari (even asks if multiple tabs playing audio) also it can raise any app that playing music that supports by BTT. Script disables itself if beardedspice running, so you can contuniue to use beardedspice.
  • Improved support for Artist & Song info and increased efficiency
  • Added support for web streaming services ; Bandcamp, Deezer, Soundcloud (improved)
  • Now playing functions changed to async as Andreas suggested. Now playing info changes instantly now
  • Power Saver feature enables/disables faster
  • Added some guides to applescripts for users (ex. MCC display a dialog if share icon is not on finder toolbar. "Add share button to finder toolbar for send with airdrop feature")
  • Added ScaleIn/ScaleOut animation for keyboard shortcut (fn+1)
  • Fixed some animation problems opening/closing floating window
  • Correct positioning on different resolutions
  • minor changes

Also added some bonus content as gift for BTT community :wink:

1 Like

First of all, thanks to you @yw4z, really great job!

I started to configure your scripts based on my needs, maybe some of them will help you, as well:

  1. I rewrite a bit Apple Script for checking network status. Now it's return type of active network connection (Wi-Fi or Ethernet). Also this script return current connection to my headphones (required put the name of headphones to HEADPHONE_BLUETOOTH_NAME):

    set interfaceType to (do shell script "route get default | grep interface | awk '{print $2}'")
    if (interfaceType is not "") then
    if (interfaceType = "en0") then
    set ntwStatus to "wifi"
    else
    set ntwStatus to "eth"
    end if
    else
    set ntwStatus to "off"
    end if

    set btParam to do shell script "defaults read /Library/Preferences/com.apple.Bluetooth.plist ControllerPowerState"
    if (btParam = "1") then
    set btStatus to "on"
    else
    set btStatus to "off"
    end if

    set headphoneType to (do shell script "system_profiler SPBluetoothDataType | grep -A10 HEADPHONE_BLUETOOTH_NAME | grep -C0 Connected | awk '{print $2}'")
    if (headphoneType = "Yes") then
    set hpStatus to "on"
    else
    set hpStatus to "off"
    end if

    set theResult to ntwStatus & "-" & btStatus & "-" & hpStatus

  2. Also, just to simplify collapsing action in JS, to use single method instead of separate on for each action, so for now I could use it like this bttAction('mccocy', 1):

     function bttAction(actionName, shouldCollapse) {
       var url = "bttweb://trigger_named/?";
       var params = "";
       if (actionName != "") {
         params += "trigger_name=" + actionName;
       }
       if (shouldCollapse) {
         params += (params != "" ? "&" : "") + "closeFloatingHTMLMenu=1";
         document.body.classList.add("slideOutUp");
         setTimeout(function() {
           window.location.href = url + params;
         }, 200);
       } else {
         window.location.href = url + params;
       }
     };
    

Hope it was useful for you, anyway waiting for updates :slight_smile:

P.S. could you share where from you take all icons?

@eliogrin thanks for sharing codes, i changed code a bit for next release with new btt action format. i will look how can i adapt these. i draw all icons from scratch to make them pixel perfect, designed some of them and redraw ios ones. i have a crash problem on starting of mcc. do you have any crash? i guess its related with now playing info. i'm trying to solve this first then i will try complete settings pane :wink:

For now I'm mainly using first version of your preset, and planning to migrate to second one on this weekend. I play a bit with second version and haven't any crashes (but it was about 20 minute of testing). Maybe you could share new version (even alpha version :slight_smile: ) so I will be able to play with it.

i guess i fixed with adding settimeout to functions, i will release after some testing

@eliogrin

i was used this code on swm (simple window manager) before

code

function BTTpredefinedaction (bttaction){
var predefinedhref = "bttweb://trigger_action/?json={%22BTTPredefinedActionType%22:replacethis}&closeFloatingHTMLMenu=1"
{window.location.href = predefinedhref.replace('replacethis',bttaction) };
}

BTTpredefinedaction (21)

now merged with your suggestion, its now working for named, predefined and close actions

BTTwebaction

function BTTwebaction(def, act, cls) {
var url = "bttweb://trigger_";
var params = "";
if (def == "p") {
var btthrefbefore = "action/?json={%22BTTPredefinedActionType%22:replacethis}"
params += btthrefbefore.replace('replacethis',act)
}
else if (def == "n") {
var btthrefbefore = "named/?trigger_name=replacethis"
params += btthrefbefore.replace('replacethis',act)
}
else if (def == "c" ) {
params += "named/?trigger_name=&closeFloatingHTMLMenu=1"
}
if (cls == "1") {
params += (params != "" ? "&" : "") + "&closeFloatingHTMLMenu=1";
}
window.location.href = url + params;
}

BTTaction('p','26') // this will trigger btt predefined action 26

BTTaction('n','launch') // this will trigger btt action named "launch"

BTTaction('n','launch',1) // this will trigger btt action named "launch", and close window

BTTaction('c') // this will close window

1 Like

Updated first post with 0.3 release

Changelog

  • New - Control Center settings pane. Open with right clicking on Apple Logo
  • New - Enable/Disable Mouse or Keyboard activation from Control Center settings pane
  • New - Change Clock (24Hour / AMPM) and Date format from Control Center settings pane, other options disabled for now
  • New - Added more guides for new users in applescripts
  • Moved these triggers to html ( Sleep, Logout, Restart, Shutdown, get network status ). Your BTT trigger list cleaner now
  • Updated BTT call functions to new format
  • Fixed Shutdown function
  • Fixed Crash on start
  • Improved speed of reading values on start
  • Minor changes

Settings pane in action, many parts still work in progress

2 Likes

Not sure if it's just my machine, but I seem to be getting some weird visual effects on the newest version after updating. The blur layer seems to be shifted down and to the right as seen in this screenshot. Figured I'd let you know :slight_smile:

1 Like

I love this widget! You've done a great job, congrats!

I know this is still early and your future plans look promising but what I really missed in the widget was:

  1. Icon toggle on click. So you would know if it is active or not (as we know with wireless or Bluetooth toggle buttons).
  2. It would be great if when you click the "Boost" icon it would just reset to what was initially set rather than set custom parameters. E.g. I use 100% brightness and "Boost" option sets it to 50% and I have to manually set it to 100%.

Also, I can't seem to be able to close the control center.

Thanks for doing this and keep up the good work!

@EvinHarris thanks for feedback, i will check that

@simplypro thanks, great to hear your feedback
1- actually i wrote same thing as "live buttons for bluetooth devices" in future plans but i can extend it with more ideas for sure, also you can share if you have any
2- i guess i can create an option for that, but it will not be in near releases
3- did you solve close problem? mcc can act weird if btt window already open, also you can close with clicking bottom arrow