Sure, I have created it for you. I can update the category image if you provide a little one you'd like to have.
I'll think of something to put there. Kimi No Na Wa is good for now
I've crafted an icon for that category, but I'm not too sure about it's balance and spacing. Oh well, it'll do I guess, My eyes say no but my mind (and my rulers) say yes :?
Hello yyuuiko,
Long time lurker here but first time posting. After discovering BTT, I've tried every preset on this website and found yours to be best suitable for me. I finally created an account so I can express my gratitude and show you some appreciation on your work. Also, thank you too the BTT creator for revolutionizing the Touch Bar. As a huge music fanatic & singer, I mostly utilize the media control center and expanded more on the Spotify widget. After some customization, I just wanted to show you how I expanded more with the Spotify controls and if you wanted to implement any ideas I borrowed from other people on this site.
When expanding spotty now playing widget, I added a lyrics bar I found from another member on this site and as well as a playlist button. When pushing the playlist button (which is the block logo), it randomly switches to another playlist I set up. If you press and hold the playlist button, it opens up my playlist selection I created on Spotify.
For someone who listens to music 24/7, this function is very very useful for me. It allows me to control my Spotify without having the software displayed on my screen.
So again, thank you thank you thank you for all your work. I've never studied or know anything about coding, but I bought some books to learn python thanks to BTT.
PS: I customized a lot on the color/design to better please my eye, I'm not sure if this is offensive to the programming/coding world. So please excuse my lack of internet mannerism.
Hai @Keno_Thourakhome!
Your changes look great! If you don't mind, I'd really like to have a copy of it so I could see it in action! (pretty interested in that playlist stuff you got there!)
I'm glad you're enjoying AQT too, comments like yours are really encouraging! Thanks for the feedback.
I've been looking to know how well AQT is fitting other people's workflows and, well yours was original and interesting to read through.
A new version is coming soon, I'm just sorting out a few issues with it and implementing the last run of features. Where you aware that I teased some new iTunes controls above? I'd like your say about it!
(It has also been adapted for spotify since that post.)
And no, I don't see customising the colours and design offensive to the programming, I'm more into the design more than the programming anyway, I did start this with zero applescript experience after all
My favorite thing about your preset is how you didn't sacrifice the macOS OEM controls.
Yes I saw it. The time scrubber & like/dislike button is awesome. That would be useful since I always rewind songs when practicing and memorizing lyrics. When I find the time, I wanna figure out how to add those functions to Spotify as well since its my main music player. The iTunes tab is awesome too distinguish which music program is running(instead of an x button).
What I'm really excited for in your next update is how you'll implement the 1keyboard app. I use this app to control all my apple products in the house (Apple TV & iPad) and having a touchbar button would be very convenient.
Heres a copy of my present for the Spotify controls.
KenoAquaTouch-b3.3.1.bttpreset (26.9 MB)
Hey, do you already have an idea how this can be done?
Sorry, I haven't looked into that latley as I've been quite busy. I just had a quick look.
The schedule widgets are run using iCalBuddy's terminal commands. I've checked what commands I can use and these strike my eye:
'eventsToday' Print events occurring today
'eventsToday+NUM' Print events occurring between today and NUM days into
the future
'eventsNow' Print events occurring at present time
'eventsFrom:START to:END'
Print events occurring between the two specified dates
Currently, eventsToday
and eventsToday+NUM
is being used.
eventsNow
looks promising, but I have a feeling it'll return a blank if there are no events now.
eventsFrom
doesn't seem all that useful for this case, but I'm sleepy and not really thinking at all right now XD
I have a feeling it might be possible by comparing eventsNow
with theh current thing, i'll experiment.
Sorry for the wait! This one is pretty complicated if you have seen the code
Hi Everyone, it's time to Hype up the next update!
I'd just like to get some opinions here, is there anything missing that you'd want to see in AQT v3.4.0?
Oh, did you want to see how it all looked like?
That's a secret for now! Tease~
@Dom, @Ikzy, @Caliguvara, @Andreas_Hegenberg, @GoldenChaos, @ErmakOFF1990ya, @Keno_Thourakhome, @franklins
I'm pretty sure in a near future Apple will contact you to buy your preset man ....
"Notice Me" XD
can't wait to update seems like a bunch of good improvements and some nice additions!
I've fixed the problem (not by showing the solution, but to show more events at one place, creating the idea of a widget).
Important to have font size 7 justified (or maybe bigger for just two lines)
Code
set upcomingEvents to do shell script "/usr/local/bin/icalBuddy -n -ea -nc -ps \"|β’ |\" -iep \"title,datetime\" -po \"datetime,title\" -tf \"%H:%M\" -df \"%b %d\" -eed eventsToday+7 | awk -F \"β’ \" '{print toupper(substr($2,1,1)) tolower(substr($2,2))\" \"$3}'"
set eventsList to theSplit(upcomingEvents, "
")
set output to "a"
set outputb to "b"
set outputc to "c"
--@yyuuiko: if/else had an error so using try instead.
--if the first item of eventsList is not "" then
try
--@yyuuiko: remove 'Today at ' if available
set findReplace to item 1 of eventsList
if "Today at" is in findReplace then
--Delete 'Today at'
set output to replaceText("Today at ", "", findReplace)
else if "Today - " is in findReplace then
--Delete 'Today at'
set output to replaceText("Today - ", "All-day - ", findReplace)
else if "Tomorrow at " is in findReplace then
--Delete 'Tomorrow at '
set output to replaceText("Tomorrow at ", "", findReplace)
else
set output to findReplaces
end if
end try
try
--@yyuuiko: remove 'Today at ' if available
set findReplaces to item 2 of eventsList
if "Today at" is in findReplaces then
--Delete 'Today at'
set outputb to replaceText("Today at ", "", findReplaces)
else if "Today - " is in findReplaces then
--Delete 'Today at'
set outputb to replaceText("Today - ", "All-day - ", findReplaces)
else if "Tomorrow at " is in findReplaces then
--Delete 'Tomorrow at '
set outputb to replaceText("Tomorrow at ", "", findReplaces)
else
set outputb to findReplaces
end if
end try
try
--@yyuuiko: remove 'Today at ' if available
set findReplacess to item 3 of eventsList
if "Today at" is in findReplacess then
--Delete 'Today at'
set outputc to replaceText("Today at ", "", findReplacess)
else if "Today - " is in findReplacess then
--Delete 'Today at'
set outputc to replaceText("Today - ", "All-day - ", findReplacess)
else if "Tomorrow at " is in findReplacess then
--Delete 'Tomorrow at '
set outputc to replaceText("Tomorrow at ", "", findReplacess)
else
set outputc to findReplacess
end if
end try
return output & return & outputb & return & outputc
on theSplit(theString, theDelimiter)
-- save delimiters to restore old settings
set oldDelimiters to AppleScript's text item delimiters
-- set delimiters to delimiter to be used
set AppleScript's text item delimiters to theDelimiter
-- create the array
set theArray to every text item of theString
-- restore the old setting
set AppleScript's text item delimiters to oldDelimiters
-- return the result
return theArray
end theSplit
--@yyuuiko: Find Replace function
on replaceText(find, replace, subject)
--set subject to "a"
set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to find
set subject to text items of subject
set text item delimiters of AppleScript to replace
set subject to subject as text
set text item delimiters of AppleScript to prevTIDs
return subject
end replaceText
I'm not sure what you did here... From what I can pick up, this is a two-line adaption for the front widget?
I've got it working! I think... Test it out and see what you think.
Show AppleScript
--tell application "BetterTouchTool" to set LclCalWgtMode to get_string_variable "CALWGT-DisplayEventsAs"
-- βDisabled as you are not connected to the new changes in AQT Settings Engine in b3.4.0!
-- βββ !! Set the variable below to your preference βββ
set LclCalWgtMode to "AlwaysNext" --Choose 'Now+Next' or 'AlwaysNext'
-- βββ !! Set the variable above to your preference βββ
----Level 2 Logic Below----
if LclCalWgtMode is "Now+Next" then
my NowOrNext() --used if widget is set to display Now or Next event
else if LclCalWgtMode is "AlwaysNext" then
my AlwaysNext()
else if LclCalWgtMode is missing value or LclCalWgtMode is "" or LclCalWgtMode is not "Now+Next" or LclCalWgtMode is not "AlwaysNext" then
--my NowOrNext()
return "Incorrect Setup Variable"
end if
----Level 1 Logic Below----
on NowOrNext() --used if widget is set to display Now or Next event
set upcomingEvents to do shell script "/usr/local/bin/icalBuddy -n -nc -ps \"|β’ |\" -iep \"title,datetime\" -po \"datetime,title\" -tf \"%1I:%M %p\" -df \"%b %d\" -ea -eed eventsToday | head -n 1 | awk -F \"β’ \" '{print toupper(substr($2,1,1)) tolower(substr($2,2))\" - \"$3}'"
set maxSize to 50
if length of upcomingEvents is greater than maxSize then
--textoverflow
set upcomingEvents to text 1 thru (maxSize - 3) of upcomingEvents & "..."
else if upcomingEvents is "" then
return "{\"text\":\" No Events Today \",\"font_color\": \"255,255,255,255\"}" -------------------AN OUTPUT
end if
--@yuuiko: Remove Grey "Loading" format
return "{\"text\":\" " & upcomingEvents & " \",\"font_color\": \"255,255,255,255\"}" -------------------AN OUTPUT
end NowOrNext
on AlwaysNext() --used if widget is set to always display Next event
set currentEvent to do shell script "/usr/local/bin/icalBuddy -n -nc -ps \"|β’ |\" -iep \"title,datetime\" -po \"datetime,title\" -tf \"%1I:%M %p\" -df \"%b %d\" -ea -eed eventsNow | head -n 1 | awk -F \"β’ \" '{print toupper(substr($2,1,1)) tolower(substr($2,2))\" - \"$3}'"
if currentEvent is "" then
my reportNextEvent1()
else if currentEvent is not "" then
my reportNextEvent2()
end if
end AlwaysNext
----Script Functions Below----
on reportNextEvent1() --use if there is no event occuring, the next event. Reports the 1st Next event from now
set upcomingEvents to do shell script "/usr/local/bin/icalBuddy -n -nc -ps \"|β’ |\" -iep \"title,datetime\" -po \"datetime,title\" -tf \"%1I:%M %p\" -df \"%b %d\" -eed eventsToday+7 | awk -F \"β’ \" '{print toupper(substr($2,1,1)) tolower(substr($2,2))\" - \"$3}'"
set eventsList to theSplit(upcomingEvents, "
")
try
--@yuuiko: remove 'Today at ' if available
set findReplace to the first item of eventsList
if "Today at" is in findReplace then
--Delete 'Today at'
set output to replaceText("Today at ", "", findReplace)
end if
if "Today - " is in findReplace then
--Delete 'Today -'
set output to replaceText("Today - ", "All-day - ", findReplace)
end if
set maxSize to 50
if length of output is greater than maxSize then
--textoverflow
set output to text 1 thru (maxSize - 3) of output & "..."
else if output is "" then
return "{\"text\":\" No Events Today \",\"font_color\": \"255,255,255,255\"}" -------------------AN OUTPUT
end if
--@yuuiko: Remove Grey "Loading" format
return "{\"text\":\" " & output & " \",\"font_color\": \"255,255,255,255\"}" -------------------AN OUTPUT
on error
--@yuuiko: Remove Grey "Loading" format
return "{\"text\":\" Could not Retrieve\",\"font_color\": \"255,255,255,255\"}" -------------------AN OUTPUT
end try
end reportNextEvent1
on reportNextEvent2() --use if there is an event occuring 'now', to step over 'now event'. Reports the 2nd Next event from now
set upcomingEvents to do shell script "/usr/local/bin/icalBuddy -n -nc -ps \"|β’ |\" -iep \"title,datetime\" -po \"datetime,title\" -tf \"%1I:%M %p\" -df \"%b %d\" -eed eventsToday+7 | awk -F \"β’ \" '{print toupper(substr($2,1,1)) tolower(substr($2,2))\" - \"$3}'"
set eventsList to theSplit(upcomingEvents, "
")
try
--@yuuiko: remove 'Today at ' if available
set findReplace to the second item of eventsList
if "Today at" is in findReplace then
--Delete 'Today at'
set output to replaceText("Today at ", "", findReplace) --call FindReplace Function
end if
if "Today - " is in findReplace then
--Delete 'Today -'
set output to replaceText("Today - ", "All-day - ", findReplace) --call FindReplace Function
end if
set maxSize to 50
if length of output is greater than maxSize then
--textoverflow
set output to text 1 thru (maxSize - 3) of output & "..."
else if output is "" then
return "{\"text\":\" No Events Today \",\"font_color\": \"255,255,255,255\"}" -------------------AN OUTPUT
end if
--@yuuiko: Remove Grey "Loading" format
return "{\"text\":\" " & output & " \",\"font_color\": \"255,255,255,255\"}" -------------------AN OUTPUT
on error
--@yuuiko: Remove Grey "Loading" format
return "{\"text\":\" Could not Retrieve\",\"font_color\": \"255,255,255,255\"}" -------------------AN OUTPUT
end try
end reportNextEvent2
on theSplit(theString, theDelimiter) --List to Array Variable Function
-- save delimiters to restore old settings
set oldDelimiters to AppleScript's text item delimiters
-- set delimiters to delimiter to be used
set AppleScript's text item delimiters to theDelimiter
-- create the array
set theArray to every text item of theString
-- restore the old setting
set AppleScript's text item delimiters to oldDelimiters
-- return the result
return theArray
end theSplit
on replaceText(find, replace, subject) --Find Replace Function
--set subject to "a"
set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to find
set subject to text items of subject
set text item delimiters of AppleScript to replace
set subject to subject as text
set text item delimiters of AppleScript to prevTIDs
return subject
end replaceText
When set to Always Next;
- It will look if there is an event occuring now.
- If there is none, it will grab the 1st next event.
- If there is, it will grab the 2nd next event, skipping the 1st next event which would be the current event.
The logic sounds simple but it took quite some hours to implement
A three-line adaption
Oh wow, looks so simple now Thanks!
Hello! Complete and utter novice here, I understand next to nothing about BTT. I recently bought a new MacBook and wanted to be fancy so I downloaded AquaTouch. It's great!
However, one question. For some reason when I go to iTunes (which is frequent) the touch bar resorts back to the default iTunes bar. You know, the one with the giant scrubbing timeline? Is this intentional? It prevents me from using gestures, the only app in which it does this which makes it kinda frustrating. Is there a way for AquaTouch to go to the 'Play' button, where it shows the song currently playing?
Any help would be appreciated, thanks!
Hi @celtics345!
I'm glad you're liking AQT!
As regards to your question, yes, this is intentional behaviour for now.
There are two types of sets, Full sets and Extension sets.
iTunes is one of those apps that has an extension set. These are designed only to be opened briefly to access quick, extra controls. Since AQT v3.3.0, the icon on the control strip indicates what type of set it is:
Other than iTunes, you may notice this type of set for Finder, Safari, TextEdit, etc.
Recap: yes, this is by design. It's made so that you use the native set while having the option to occasionally open AQT up for extra controls.
Due to your feedback I've decided to upgrade the iTunes set and make it functional enough to replace the native set! It'll be somewhat like my new Spotify set!
P.S.
p.s. the new update comes with updated spotify and Now Playing widgets!
π [v3.6.9] AquaTouch β The Powerful Touch Bar Redesign. - #259 by yuuiko