From 26ad83be70297e06e68d2457c3267f6b2045c7ca Mon Sep 17 00:00:00 2001 From: Dennis Wurster <892364+wildeep@users.noreply.github.com> Date: Wed, 16 Feb 2022 13:59:41 -0500 Subject: [PATCH 1/2] fixed grammar and clarity of README (#427) * fixed grammar and clarity of README * Update README.md Co-authored-by: Anton Palgunov --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index f31717c..4840b1c 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ My idea is to create a platform for creating plugins to customize the TouchBar. - Or via Homebrew `brew install --cask mtmr` - [Dario Prski](https://medium.com/@urdigitalpulse) has written a [fantastic article on medium](https://medium.com/@urdigitalpulse/customise-your-macbook-pro-touch-bar-966998e606b5) that goes into more detail on installing MTMR -**On first install** you need to allow access for MTMR in Accessibility otherwise buttons like Esc, Volume, Brightness and other system keys won't work +**On first install** you need to allow access for MTMR in Accessibility otherwise buttons like Esc, Volume, Brightness and other system keys won't work.

screenshot 2019-02-24 at 23 19 20 @@ -51,7 +51,7 @@ My idea is to create a platform for creating plugins to customize the TouchBar. ## Customization -MTMR preferences are stored under `~/Library/Application\ Support/MTMR/items.json`. +MTMR preferences are stored in `~/Library/Application\ Support/MTMR/items.json`. The pre-installed configuration contains less or more than you'll probably want, try to configure: @@ -159,7 +159,7 @@ You may create as many `swipe` objects in the preset as you want. } ``` -> Note: appleScriptTitledButton can change its icon. To do it, you need to do the following things: +> Note: You can change appleScriptTitledButton's icon by following these steps: 1. Declare dictionary of icons in `alternativeImages` field 2. Make you script return array of two values - `{"TITLE", "IMAGE_LABEL"}` 3. Make sure that your `IMAGE_LABEL` is declared in `alternativeImages` field @@ -187,10 +187,10 @@ Example: ``` #### `shellScriptTitledButton` -> Note: script may return also colors using escape sequences (read more here https://misc.flogisoft.com/bash/tip_colors_and_formatting) -> Only "16 Colors" mode supported atm. If background color returned, button will pick it up as own background color. +> Note: script may also use escape sequences to return colors (read https://misc.flogisoft.com/bash/tip_colors_and_formatting for more information) +> "16 Colors" is the only mode supported presently. Buttons will set their own background color to the color returned. -Example of "CPU load" button which also changes color based on load value (Note: you can use native `cpu` plugin for that purpose which runs better): +Example of "CPU load" button which also changes color based on load value (Note: The native `cpu` plugin runs runs better): ```js { "type": "shellScriptTitledButton", @@ -249,8 +249,8 @@ To close a group, use the button: #### `cpu` -> Shows current CPU load in percents, changes color based on load value. -> Has lower power consumption and more stable in comparison to shell-based solution. +> Shows current CPU load in percent, changes color based on load value. +> Has lower power consumption and higher stability than the shell-based solution. ```js { @@ -262,7 +262,7 @@ To close a group, use the button: #### `timeButton` -> Attention! Works not all: https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations +> NOTE: Some values don't work properly: https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations > formatTemplate examples: https://www.datetimeformatter.com/how-to-format-date-time-in-swift/ @@ -280,9 +280,9 @@ To close a group, use the button: #### `weather` > Provider: https://openweathermap.org \ -> Note: you need to register on https://openweathermap.org to get your API key \ -> Note: you may need to wait for near 20 mins until your API key will be activated by Openweathermap \ -> Note: you need to allow using "Location Services" in your Mac OS "Security & Privacy" settings for MTMR +> Note: Register at https://openweathermap.org to get your API key \ +> Note: Wait for 20 minutes or so for Openweathermap to activate your API key.\ +> Note: Enable MTMR in "Location Services" in the "Security & Privacy" System Preferences pane ```js "type": "weather", @@ -295,7 +295,7 @@ To close a group, use the button: #### `yandexWeather` (experimental) > Provider: https://yandex.ru/pogoda. One click to open up weather forecast in your browser. \ -> Note: you need to allow using "Location Services" in your Mac OS "Security & Privacy" settings for MTMR +> Note: Enable MTMR in "Location Services" in the "Security & Privacy" System Preferences pane ```js "type": "yandexWeather", @@ -330,7 +330,7 @@ To close a group, use the button: #### `pomodoro` -> Pomodoro plugin. One click to start the work timer, longclick to start the rest timer. Click in progress for reset. +> Pomodoro plugin. One tap starts the work timer, long-press to start the rest timer. Tap an in-progress timer to reset. ```js { @@ -342,7 +342,7 @@ To close a group, use the button: #### `network` -> Network plugin. The plugin to show usage a network +> Network plugin. The plugin to show network usage ```js { From ac0e44db4d9ad86fc10da80236480f9de18a52a2 Mon Sep 17 00:00:00 2001 From: Piss Man <37189791+PissMan420@users.noreply.github.com> Date: Wed, 16 Feb 2022 14:00:28 -0500 Subject: [PATCH 2/2] Modified the way shell script are called (#430) * Added shell detection * Replaced deprecated object to supported version * Updated haptic feedback.swift to support for newer mac Added support for m1 mac --- MTMR/HapticFeedback.swift | 1 + MTMR/Info.plist | 2 +- MTMR/ShellScriptTouchBarItem.swift | 6 +++++- MTMR/SwipeItem.swift | 6 +++++- MTMR/Widgets/VolumeViewController.swift | 6 +++--- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/MTMR/HapticFeedback.swift b/MTMR/HapticFeedback.swift index 5df6c85..9e5c17f 100644 --- a/MTMR/HapticFeedback.swift +++ b/MTMR/HapticFeedback.swift @@ -19,6 +19,7 @@ class HapticFeedback { 0x200_0000_0100_0000, // MacBook Pro 2016/2017 0x300_0000_8050_0000, // MacBook Pro 2019/2018 0x200_0000_0000_0024, // MacBook Pro (13-inch, M1, 2020) + 0x200_0000_0000_0023 // MacBook Pro M1 13-Inch 2020 with 1tb ] // you can get a plist `otool -s __TEXT __tpad_act_plist /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/Current/MultitouchSupport|tail -n +3|awk -F'\t' '{print $2}'|xxd -r -p` diff --git a/MTMR/Info.plist b/MTMR/Info.plist index 90a0507..078b880 100644 --- a/MTMR/Info.plist +++ b/MTMR/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 0.27 CFBundleVersion - 434 + 448 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion diff --git a/MTMR/ShellScriptTouchBarItem.swift b/MTMR/ShellScriptTouchBarItem.swift index 13da0cc..668a4e3 100644 --- a/MTMR/ShellScriptTouchBarItem.swift +++ b/MTMR/ShellScriptTouchBarItem.swift @@ -78,7 +78,11 @@ class ShellScriptTouchBarItem: CustomButtonTouchBarItem { func execute(_ command: String) -> String { let task = Process() - task.launchPath = "/bin/bash" + if let shell = getenv("SHELL") { + task.launchPath = String.init(cString: shell) + } else { + task.launchPath = "/bin/bash" + } task.arguments = ["-c", command] let pipe = Pipe() diff --git a/MTMR/SwipeItem.swift b/MTMR/SwipeItem.swift index baf7949..3142eca 100644 --- a/MTMR/SwipeItem.swift +++ b/MTMR/SwipeItem.swift @@ -51,7 +51,11 @@ class SwipeItem: NSCustomTouchBarItem { if scriptBash != nil { DispatchQueue.shellScriptQueue.async { let task = Process() - task.launchPath = "/bin/bash" + if let shell = getenv("SHELL") { + task.launchPath = String.init(cString: shell) + } else { + task.launchPath = "/bin/bash" + } task.arguments = ["-c", self.scriptBash!] task.launch() task.waitUntilExit() diff --git a/MTMR/Widgets/VolumeViewController.swift b/MTMR/Widgets/VolumeViewController.swift index b46f0f5..6ac5945 100644 --- a/MTMR/Widgets/VolumeViewController.swift +++ b/MTMR/Widgets/VolumeViewController.swift @@ -10,7 +10,7 @@ class VolumeViewController: NSCustomTouchBarItem { super.init(identifier: identifier) var forPropertyAddress = AudioObjectPropertyAddress( - mSelector: kAudioHardwareServiceDeviceProperty_VirtualMasterVolume, + mSelector: kAudioHardwareServiceDeviceProperty_VirtualMainVolume, mScope: kAudioDevicePropertyScopeOutput, mElement: kAudioObjectPropertyElementMaster ) @@ -66,7 +66,7 @@ class VolumeViewController: NSCustomTouchBarItem { var volume: Float32 = 0.5 var size: UInt32 = UInt32(MemoryLayout.size(ofValue: volume)) var address: AudioObjectPropertyAddress = AudioObjectPropertyAddress() - address.mSelector = AudioObjectPropertySelector(kAudioHardwareServiceDeviceProperty_VirtualMasterVolume) + address.mSelector = AudioObjectPropertySelector(kAudioHardwareServiceDeviceProperty_VirtualMainVolume) address.mScope = AudioObjectPropertyScope(kAudioDevicePropertyScopeOutput) address.mElement = AudioObjectPropertyElement(kAudioObjectPropertyElementMaster) AudioObjectGetPropertyData(defaultDeviceID, &address, 0, nil, &size, &volume) @@ -86,7 +86,7 @@ class VolumeViewController: NSCustomTouchBarItem { var address: AudioObjectPropertyAddress = AudioObjectPropertyAddress() address.mScope = AudioObjectPropertyScope(kAudioDevicePropertyScopeOutput) address.mElement = AudioObjectPropertyElement(kAudioObjectPropertyElementMaster) - address.mSelector = AudioObjectPropertySelector(kAudioHardwareServiceDeviceProperty_VirtualMasterVolume) + address.mSelector = AudioObjectPropertySelector(kAudioHardwareServiceDeviceProperty_VirtualMainVolume) return AudioObjectSetPropertyData(defaultDeviceID, &address, 0, nil, size, &inputVolume) }